所有发表于 2006-03 月的文章

再一批 Office 2007 截图

女大18变,Office 变了好几次,还是越变越漂亮

[tags]office[/tags]

Tags: ,




自由移动 无限漫游

无线网络已经多到烦人的地步;无缝使用还是同志仍需努力的状况。

在让人们更容易使用 WLAN 方面,Intel 的新举动之一是 IRAP, International Roaming Access Protocols。为什么这个缩写看上去很像 Iraq 呢?!

虽然 WiFi 普及率 已经很高(美国)/正在提高(中国),但在从机场到酒店,从陆家嘴名不副实的Starbucks到美罗城可以被揩油的一茶一座,无数热点中,似乎没有哪个是非常容易使用的,他们支持的传输速率,加密标准,认证,费率,各种设置都有不同,很容易让人觉得混乱,不一致。基本上,每次接入一个新地方,多少得动手调整笔记本设置。现在有一些应用可以帮助改善这种情况比如 ThinkPad 标配的 Access Connection,可以记住并根据情况“努力地”自动应用不同profile。除了应用外,根本性地努力在协议层次上,比如 IRAP。

英雄习惯在美女辈出同时也饥渴难耐的年代出现。
IRAP 定义了标准网络连接和安全协议的实现,目标是让人们的连接简单,快捷,安全。严格讲IRAP还在开发阶段,不过技术工作已经完成,最近的一次大规模展示就在刚刚举行的今年春季 Intel Developer Forum IDF 上。
在IRAP许诺提供的新特性方面,漫游是一项。人们已经习惯省级/国际手机漫游,不用重新配置手机,不用面对莫名其妙的不同运营商的帐单,IRAP 将来可以实现类似的 zero-configuration,只要配置笔记本的无线设置一次,以后在任何地方接入,无需再费心。当然,前提很简单,无线网络运营商要能和此前的移动运行商一样,达成协议,允许漫游。除此之外,如有费用发生,IRAP 可以帮助用户只和自己的服务商打交道,无需应付不同帐单和术语,在美国这个需求尤其明显。
安全方面,IRAP 定义了实现无线安全协议的标准方法,可以改善无线接入时的安全状况。

IRAP 另一个独到特性是集中管理每人的WiFi ID。这是个从手机应用中借鉴的概念。在最近法国戛纳的3GSM World Congress上,Intel 宣布和 GSM Association (GSMA) 合作,加速把 SIM 卡集成进笔记本的工作。显然,作为包含个人数据和可标识信息的老革命,SIM 卡在未来的无线网络中可以发新光新热。插入笔记本的SIM 卡由中央服务器识别,在server端寻找帐户信息,并追踪其无线使用情况。
这次San Francisco的IDF, 200多名记者和分析师试用了IRAP,在Moscone Center广阔的大厅和酒店2个街区以内,可以自由漫游并无缝访问无线网络,连接到不同无线区域时,不需任何手工配置。Intel 和 iBahn, Priority Networks, Syniverse 还有 Smart Communications 合作展示了在 San Francisco 的6个地方之间进行seamless access。基于SIM的WiFi访问是由 Smart Communications 提供的,这是一家菲律宾运营商。

对比不同国家不同企业的做法,只能重复发现我们在跟利用历史积累形成之垄断地位的,习惯吃老本,天生反创新,骨子里反进步的企业打交道,他们看不得破坏现状的新技术和新发展,对一切可能打破霸王优势和攫取暴利之便利条件的东西都暴跳如雷,放到全球视野下观察他们对技术创新的敏感度,成熟度和参与度,会看到歌德巴赫猜想面前的一只三叶虫。对新技术要么招安要么扼杀的态度,只有这种懒惰不思进取的企业做得出,因为习惯了不对新形式做思考和发觉,所以不能发觉新技术带来的机会。我看够了可笑的BT,P2P,VOIP的争论和做法,其指鹿为马混淆黑白的本事让人叹为观止,流氓的架子做到天上人间般的壮阔气势,也是一绝--赶紧着,申报联合国非物质文化遗产!

[tags]wireless, wifi, irap, intel, mobile[/tags]

Tags: , , , , , ,




新广告

Download.com 是CNET备受欢迎的正派下载网站,流量和知名度都很高。通常,在download.com看到的广告大都是各种软件的,有时根据所在的不同category不同,也会有诸如数据存储,网络安全,图片样例等等这样的服务类网站,不过不管怎么说,都还是“技术圈内”的相关内容。
今天瞎逛的时候,看到很有意思的东西,吉列 Gillette。

老吉除了打上大幅banner广告外,还赞助了几个类别软件的TOP RATED栏目,像什么 TOP RATED Business software, TOP RATED Design & Photo software,TOP RATED Internet software。
这是有点出乎大家通常意料的状况,收归宝洁P&G旗下的吉列以前似乎和 HiTech 圈子很难扯上关系。所以,我们得佩服吉列--或者其广告代理公司--的眼光和魄力。或许那帮聪明的家伙敏锐/切身地意识到,干吗不改变思路,在男士容易聚集的downloading集中地推广宣传自己。通常认为,男性比女性对高技术更敏感,使用电脑时也更喜欢尝试寻找新软件--而且,吉列也用了更容易吸引这些 HiTech guy眼光的方式--打HiTech牌,这次放在download.com 的广告是最新的 Gillette Fusion 和 Fusion Power ,极具技术含量,当然,重要的还有--看上去很酷。
吉列这一票应该干得很不错,或许不久以后,各色惯常讨论iPod 和 Wireless 的geek们碰头时,会讨论一个在自己下巴上逡巡的新玩意,Gillette Fusion 。

临了说一句,觉得 download.com 的逻辑组织和 artworks 都非常出色,真的。

[tags]ad, gillette, 吉列, cnet[/tags]

Tags: , , , ,




到底还是iPhone

我们当然希望 Apple Ideas 里的愿望能早点实现。

Smarthouse 文章 iPod Phone Confirmed ,David Richards - Tuesday, 21 March 2006。

来自台湾手机制造商Benq的内线人物说,过去几个月,Apple 负责采购的高管已经同多个台湾手机制造商接触,就关于 iPod Phone 制造买卖谈判。

Apple 将发布“一款具有电话功能的iPod”--这话挺起来怪怪的,可能是因为我们听惯了 SONY ERICSSON 说“一款具有iPod功能的电话”这样的言词儿--就在后几个月内。iPod Phone 肯定definitely 会到来。当然,Benq 不会是制造商,因为他是Apple的竞争对手(竞争什么?MP3?不够格;笔记本?算不上;那么…数码相机?…杀了我吧)。不过,Benq的一些供应商倒是有可能。

宏海Hon Hai Precision 可能是设备制造商,J.P. Morgan 香港分析师 Johnny Chan 说。而Morgan Stanley 台北分析师Ellen Tseng认为 Apple 还未决定是否把被称为 iPhone 的设备制造合同给宏海或其他制造商。一名拒绝透露姓名的台北分析师说,Taiwan Green Point Enterprises,制造iPod塑料外壳的企业,正在同 Apple 接触,希望能在这个电话单子里扮演个角色。
J.P Morgan 的 Bill Shope 相信,Apple 会在第四季度推出这款产品。而 Piper Jaffray 分析师 Gene Munster 上周告诉客户,他估计有 75% 可能,Apple 会在12个月内推出iPhone。

分析师相信,如果推出音乐播放手机,受影响最大的会是Motorola,美国手机制造商的排头兵。如果 Apple 打算攫取全球预期达到9亿的手机市场的,哪怕,1%,即便只是随便秀一秀自己的多媒体手机,mota 的利润立马会被削弱。

看来推不推不是问题,不论时间如何,到底还是 iPhone。

或许是这个样子

[tags]iphone, apple, mobile, cellphone[/tags]

Tags: , , , ,




Happy Birthday, Mr Cool

OS X 5岁了。

这两天 Ars Technica 的 SPOTLIGHT 是 Five years of Mac OS X -- Mac OS X 发布至今,5年了。

无意直翻,仅为兴趣,所以别苛求我,谢谢。

2001年3月24日,接班 Mac OS 9 的 Mac OS X 10.0 发布。用作者 John Siracusa 的话说,OSX的发布,不光意味着很多事情的开始,同样意味着无数个终结--首先,也是最重要的就是,技术圈里,跳票时间最长,最紧扣人心的死亡曲线的终结。相比历史学家和华尔街的看法--他们认为是iMac,这个新鲜大胆的工业设计造就了Apple的转折点--John觉得,iMac 这堆半透明塑料拯救不了Apple。世纪之交的Apple需要,太需要的是,一个新的,全新的OS。

90年代的后一半,Apple 实在太渴望解决自己OS方面的问题了,甚至在那时还考虑过让NT或者Solaris成为下一代 Mac OS的可能基础。
回顾历史,让人难以致信地可笑的是,一个浪子,20年前被踹出自己创办的公司,然后花了12年时间苦心经营自己的偏门技术,熬到归来的一刻,用它拯救把自己扫地出门的东家,哦,他还把一家没人要的视觉效果实验室整成了地球上最厉害的动画工作室--据说是在,业余时间。这个现在人到中年的浪子是 Jobs,扫他出门请他回来被他拯救的是阿甘眼里丹上尉帮他投资的一家水果公司,至于那家工作室,不会不知道吧?Pixar

所以,Mac OS X 也标志着Apple历史上的黑暗时代结束--可惜也是那个空前进步和创新的10年的结束。John 怀疑,自己是不是还能再有机会见识像 Macintosh 发布那样如此具有变革性又如此突进的技术事件了。从字面上将,整整一代人,从那个显示着绿字和闪烁光标的黑色屏幕,一下进入了新世界:充满活力,白底黑字,窗口,图标,按钮,滚动条,菜单,还有一样让人发狂的东西:鼠标。
John 现在能碰到的Mac 用户比OS X发布前的时代要多得多,不过几乎没多少人记得(计算机)最开始的时候是什么样子。他们没有过与坚持“只有玩具电脑才用鼠标”的家伙争辩的经历,他们没有花过以年计算的时间去想为什么要坚持MS-DOS--他们,生活在未来。

老Mac的时代在2001年3月24号结束。Mac OS X 10.0 是“曾经的Mac”的顶点,“曾经的Mac”乃Mac-That-Was ,来自 Joss Whedon 的科幻小说 Firefly 中的 Earth-That-Was。
It was the end of the ride for the original Mac users. In many ways, it was the end of the Mac.
后面5年,老Mac的世界渐渐消逝,同样逝去的,是一些古老的Mac玩家。Mac OS X 10.0 传达着信息:the Mac is dead。

Mac OS X,凤凰般从 Mac-That-Was 的灰烬中升起--OK,更像一只受伤的凤凰,当然,Apple 没有把它放到火上烤。
John 的前半生看够了那些最聪明有才干的家伙因为环境原因或偏见而放弃Mac,所以,现在能生活在后 Mac OS X 时代,实在太让人满足了。每当他碰到一个技术圈儿里的大腕或geek时,总是假定他们用的是Mac--而且,大多数时候,John 都猜对了。即便,嗯,你知道,Linux狂热者,如果不用Mac OS的话,也会用Apple 笔记本。

媒体上,Mac 和 Apple 也摆脱了商业版令人压抑的头条新闻位置,关于他们的feature story,喷涌而出,到处都是。那些充斥着其他平台消息的传统要地,也沦陷在 OS X 的半透明拳头下。看看Slashdot,从Linux话题的天堂,变成了人们常常提到的“an Apple news site”。当然在 Ars Technica,情况也差不多,这个1999年开始的“PC Enthusiast’s Resource”,早已徜徉在 Apple 的内容中。

就John本人来说,他亲身参与经历了Ars Technica的这个变化,看看他雪崩般的文字就知道了,事实上, Mac OS X 要对此负责--是的,Apple 优良的硬件对此有份,不过是软件,最终赢得了那些顽固的PC geek。Apple 的软件和硬件一样shiny,但是如果没有一样东西的话,这会什么都不是,这件关键东西就是,尊重。
Mac OS X 让 Mac 赢得了alpha geek 人群的尊重。就John来说,从绿字黑底页面的PC老窝转到清爽,明亮的Apple 新闻消息与评测之家的过程,不过是解释Mac OS X 是什么,打哪来,往哪去。剩下的就很自然了。It’s Unix. It’s a Mac. It’s pretty, stable, novel, innovative, and different. Mac OS X 以前是,现在还是 powerful geeknip。
Mac OS X 的头几年,John 的评测大约总有 What is Mac OS X? 这样的一章开头。回头看来,这么做真是有点奇怪,不过那时确实有此必要。

Mac OS X 已经到了逃逸速度escape velocity(第1,第2,第3… :-) )。5年的时间,5个都很胜任的major release,Apple 可以多花点时间在Mac OS X 10.5 Leopard上。用户们也需要从升级周期中来个突破。看看对这些东东的抱怨:finder,文件系统元数据,UI 响应性… 5年了,是到偿还大家忠诚的时候了吧。
Mac OS X 可以更好,对 John 这样的人来说,满足可不是他的风格,Apple 仍然被高标准要求着。他甚至开始担心Apple 的下一场OS 危机。可能是被 Apple 90年代末那场死亡之舞吓着了吧--也或许,John 和Apple 都学到了重要的一课。

5岁的Mac OS X,在达到它的前任的年纪之前,还有10年的路可走,甚至可能,在彻底摆脱最初 Mac 的影子之前,要更久。很高兴,我们都在这场旅程中,一道。

[tags]apple, mac, osx, story[/tags]

Tags: , , , , ,




24 倍无耻?

最近上海电视台新闻娱乐频道开播《24小时警事》,OMG,这是第一部让我看得直留哈喇子的电视剧,我的智商猛撞南墙,提醒我低估了人可以达到的寡廉鲜耻之地步。FOX极具开创性的电视剧集《反恐24小时》能被搞成这副孱弱,松软,有气无力,外加装腔作势样子,实在功力菲浅。如此生猛的抄袭,造就这样一个 bad copy ,一个字,吊!

把从大脉络到小细节,从对白到…到乃至办公室布置,都抄个严严实实,堪比玻璃板下点灯泡的工笔临摹!我多年没犯的胃痛胃酸胃涨的老毛病,给这样的一通扯淡和胡来一刺激,立马1234,重伤不治。
我说,您最好能把 Cisco 电话的铃声,HP/Dell 的电脑牌子也模仿了,专业嘛不是。画面给到电脑屏幕的时候千万记得,那台机器好歹要装 linux 或者 bsd,那家伙,多能唬人呐,别露个游戏画面出来,寒碜。。。哦,对了,找个看上去敲键盘专业点儿的主儿,别以为现在噼里啪啦狂摁就能蒙人让别人以为您是高手了,老百姓没写过程序难不成就没聊过QQ?不是有句话说,没见过您跑还没吃过猪肉?
小丑们找不到总书记,哦准确地说,总书记候选人来保护,肯定为难了很久啊,难得,出了个CXO顶替,不知这位O身边有没有Sherry?进而Keith,Nicole?
其实我最希望能捣鼓出个George Mason来,我喜欢看这个周星星式洋胡子那混沌而无厘头的眼神,嘿嘿,不过考虑到警事的编剧推出核弹危机有点心虚,这个愿望我不当真。
拜托让中国版Tony有点个性,人家是Masters of Science, Computer Science - Stanford University,别搞得跟发育不全的小太监一样,谢了哈。
哦,对了,最后一点,可不可以找个至少和Kim差不多漂亮的女儿,不要损害大家已经脆弱的理智了。

唉,居然还浪费青春为这个XX写这么多字,罪过罪过。

[tags]24, tv[/tags]

Tags: , ,




floAt’s Mobile Agent

我有没有说过floAt’s Mobile Agent ?简称FMA。

最近手机的摇杆坏了--这玩意儿的意义确实和人的“腰杆”一样重要--丧失能力就全然失去进行上下左右操作的可能,急死人。5向摇杆立按是进主菜单,现在坏了就没法子了,最常用的通讯录,查看发送短信都歇菜;收到短信时用soft key可以进回复短信的界面,可是摇杆不开恩就没法上下左右选汉字,真是呕死人呐。剩下的那俩soft key加clear和back,再加12个电话按键,再怎么努力也就只能接听挂断,从history里用数字快捷键选选联系人。。。。。。肚子里放着融汇了千百人智慧的百万行代码加各色RF,DSP,RISC,Flash芯片还有制模封装等等高技术的塑料小玩意儿就这么瘫痪。

在找到中意手机之前(仍进行中,欢迎提供宝贵意见),幸好有FMA可以顶一下。

FMA,即所说的外部TE--见笑,待了一年多,没学会什么,外部TE倒是知道了,嘿嘿--电脑上运行的软件,通过数据线或者红外或者蓝牙总之一种连接方式和手机连接,从电脑操作手机。大白话些,就是,从电脑上发短信,收短信,编辑同步通讯录,操作手机上目录/文件比如铃声图片等等--正好适合我目前手机几乎无法有效操作的状况。当然,让我们说清楚一下,接拨电话,收发短信等一切对外沟通之操作仍是从手机走运营商网络,与从手机操作本质上没有丝毫差别,不用担心其中有各色ISP,自然也不需要电脑上网,费用也和从手机操作无二致,放心,放心。

从电脑上查看和回复短信真的要方便得多,而且收发的短信存在电脑上,不用担心手机存储限制;短信聊天尤其有感觉,像早期QQ的样式,每收到短信就弹出一个窗口,也可以在一个窗口看着你来我往的聊天内容往上滚动,可以窃笑对方肯定在纳闷自己在手机上输汉字的手法也忒娴熟了些;收到短信后会有语音和窗口提示;超长和flash类型短信都支持,flash类型是指接收方看了就消失不保存的短信--非常适合“明天我请你吃饭时间地点忘了就不算”这样好话不说二遍类型的内容;短信中中文支持没问题;通讯录中文显示大部分时间好的,有时会抽风,忍了;可以同步手机目录,传递图片铃声文件和在文件管理器中类似;手机信息方面可以显示电压电量,设置profile,查看电池类型,制造商,model,软件版本和serial NO.等。至于outlook集成,orginazer操作我基本用不上,就没管了。

现在用的是2.1.x版本,早先碰到retrieve手机目录时死循环,可以先从手机中把中文目录改名为英文再试试;和手机连接并自动同步电话簿后,PC端电话簿仍然可能不全,可以在电话簿处单击右键,选“Download Entire Phonebook…”,这样就好了。我用Native Bluetooth直接连接从来没成功过,要么软件中选项是灰的,要么根本连接不上,所以现在是指定走蓝牙串口,从生成的COM7,COM8之类的小兄弟连接到手机,使用一直很顺利,这样省了专用数据线的钱,也不用受红外的距离位置限制。

早先FMA发端时是以Sony Ericsson为目标的,不过考虑到大多数手机里对3GPP相关spec的支持程度,其他牌子的手机也没有问题,论坛里有足够的用户反馈证明。

NOKIA手机似乎都已经配了PC客户端,除了踅摸一根数据线或者蓝牙适配器,基本可以不用费心了。

所以,如果看到一个人,放着手边100克立即可用的手机不用,要臭显地拿出2.5公斤的笔记本,花5分钟开机进Windows,启动软件,建立连接,用10秒种敲字并发送一个短信,千万不要,鄙视他,我可能就是这种情形下的,那么个衰人。

[tags]float mobile agent, cellphone, software[/tags]

Tags: , , ,




访问 Windows XP on Mac 竞赛获胜者 Blanka

Well, Show time…

已经连续两篇关于 Windows XP on Mac 的blog了,再接再厉,这次更进一步。

AppleTalk Australia 有个 Windows on Macs 系列文章,在第3篇中,他们有幸抓到了Jesus Lopez --也就是NB两人组合中的 blanka --接受采访。哦,顺便说明一下,这个AppleTalk可不是Apple 那个协议,名字而已,此网站和Apple没有任何联系的哈。

这个由6个问题组成的专访--好像太短了点儿是吧--包含了很有意义的内容,,这是获胜者第一次谈论自己的经历,和昨天《细说 Intel Mac 安装 Windows XP 》中的Clay在自己的blog上所说内容还是不同的。加之NB二人此前一直没有更多关于他们这次竞赛的信息,AppleTalk的访问可以稍微满足一下人们的好奇心。

访问:
AppleTalk:尝试这个项目的动机是…?
Jesus:这个项目吸引我兴趣的原因有好几个,包括(无次序关系):
。这是件能让很多人受益的事情
。过去几个月里,我一直在构思一个自己的项目,而Mac Mini 是适合这个项目的绝佳perfect 电脑--这个项目即搭建一部车载电脑car computer (carputer,zhou:ApplTalke原文写得是craputer,想是笔误,扣奖金!),有GPS,Internet,Media Library等等。不过恼火的是,大多数carputer软件都是为Windows编写的。
。人们都说在Mac上运行XP是不可能的。证明那些被认为是不可能的事情完全可以做到,实在是非常吸引人--zhou:享受伽利略的心理待遇而不用遭受布鲁诺的肉体遭遇当然爽啦。
。有很久我没做有意义的底层编程了。要记住那些过去的好时光哟。
。奖金可以回报我投入其中的时间。

AppleTalk:Boot Loader/CSM 是怎么工作的?
Jesus:简单地说,它完成的工作有:
。重新配置i945和ICH7(zhou:北桥和南桥)芯片组,这样就能映射通常的BIOS内存区域。
。将这些区域写入自己写的“BIOS”。这个BIOS用16位实模式汇编写成。通过切换进32位保护模式和调用CSM代码,它实现了所有中断(legacy ACPI调用)。
。CSM代码通过调用适当的EFI API,实现了legacy中断的功能子集。其他未实现的中断通过break进内置的调试器处理。
。实现legacy boot protocol:通过参考 El Torito, MBR 和Boot sector ,找出要执行什么代码。
。一旦目标代码完成并加载进了memory,bootloader 回到16位实模式,将控制权交给这些代码。

这是几个要点,此外,Apple硬件,与现代PC常用的标准legacy AT 架构之间,有些细微差别,所以还必须patch一些Windows代码,否则Windows会排斥这些区别。
。没有8042键盘控制器
。没有VGA文本模式(目前,还没有办法把VGA硬件切换到基于字符的文本模式,尽管我们相信这是可以的)。

AppleTalk:开发过程中最大的挑战是什么?
Jesus:每次Windows不能按预想的那样工作时,要找出原因。不论freezing,或者黑屏,或者重启。非常,非常难调试。

AppleTalk:第一个release之前的开发花了多长时间?
Jesus:2006年1月25号,我从narf 那儿得知了这个比赛。当天,我说服他买了台17寸 iMac --zhou:看来blanka绝不是蒋干这个level的说客,有一手,这样NB二人的条件和开发效率比Clay确实要好得多--narf一小时后下单,Amazon 次日送达,剩下的就是历史了。

AppleTalk:目前驱动方面有很多问题,你认为这些问题会被最终解决吗?
Jesus:我得说,自从项目向社区发布后,人们对此倾注的努力让我印象非常深刻。wiki.onmac.net 上的wiki 有相当多的信息。人们每天都在尝试新驱动,我也已经得知人们愿意帮忙解决任何尚存的驱动问题。我相信,在Apple硬件上运行完全加速的3D video只是个时间问题(zhou: FAQ 中说明 ,在能工作的video驱动出来之前,要不损害性能,最好把硬件加速拨到无,)。

AppleTalk:感谢抽空和我们聊聊。
Jesus:谢谢你们对这个项目的关注,这才是让这个项目成为可能的关键。

[tags]windows, mac, osx, intel, apple[/tags]

Tags: , , , , , ,




请cnBeta和网易因应动作

这两处网站使用了本人的《Intel-Mac 安装 Windows XP》。

cnBeta 提到了出处,但是改动了原文,没有符合文章的授权协议 Creative Commons Attribution-NonCommercial-NoDerivs 2.5 ,你问我为什么要坚持ND,因为我太清楚允许Derivative Works会把本来还有点样儿的内容搞成什么鬼样子了。
网易 copy 了 cnBeta,而且专业而且敬业的编辑们“碰巧”去掉了cnBeta 里指向我这儿的出处说明。
鄙人已经留言或email联络了能联络的主儿,请采取相应动作,本人能保留的权利自然都保留着。

以前还有驱动之家copy过我这儿关于PS3的文章,篡改了标题,未标明我这里原始出处,email交涉后,删除了文章。pconline论坛等转贴top website的文章则事先联系过。
我知道自己没老罗那么影响大,能把XXX网站使劲整(case 1, case 2 ),不过我也会好好地跟你们玩。已保留截图和页面代码。

UPDATED:cnBeta 已联系并致歉,并更新了转载的内容。

[tags]刀枪Blue, 网易, cnbeta[/tags]

Tags: , , ,




细说 Intel Mac 安装 Windows XP

上周六简单说了在Intel Mac上安装Windows XP的方法,只涉及如何操作,关于怎么实现并没什么多的言语,当时许诺周日写点多的,忙累加上懒,就推到现在才有--当然,你看,我还知道是男人就要守承诺哈,虽然晚了点。

按理说,narf 和 blanka 能写得更多,不过估计得胜的幸运儿正数钱数得手抽筋,所以到底还是只缺时间不缺能力的Clay来得厚道,只差一步也不影响小伙儿的心情和热心,他在自己的blog上写了Dual-booting Windows XP and Mac OS X on Intel Macs

Clay 的做法和获胜的narf 及 blanka (这二人正好可简称NB,果然NB)非常类似,都用了自己的EFI CSM driver模拟legacy BIOS,这样XP就能启动了。Clay 只是非常好奇NB二人如何搞定VGA的。
这次经历Clay看作非常好的学习机会,到来时机也是相当的~~恰当。Intel汇编和保护模式编程刚刚进入Clay的兴趣视野,这可是数年前Clay 做DOS编程时认为非常具有挑战性的内容。在他开始这个项目之前几个星期,Clay就在阅读相关的书籍和资料了,主要是汇编和保护模式。
在这场XP上Mac的竞赛中,Clay也看着NB二人的进展,随着deadline的来临和目睹NB在flickr上发表的进步情况,他也加快了编码的步伐,没花太多时间考虑优不优美,好不好维护。当然,小子还是很为自己的代码自豪,简洁是一,还完成了相当的功能,感兴趣的读者可以细读(代码其实挺漂亮)。

主函数在OSXP.c里。代码内容包括,读取Mac OS X 所用的GPT partition table;写Windows要用的MBR;从El Torito 可启动CD加载bootloader。
从保护模式切换会实模式的代码在thunk.c和asmthunk.s。Clay的首个保护模式下汇编作品,不general,不过,管用 ;-)。
rmisr.s 里建立实模式中断向量表和相应的服务程序ISR,大部分其实复制了thunk代码,不过顺序是反过来的,从实模式切换到保护模式,然后切回实模式。要使用native EFI 函数(读磁盘扇区,打印字符等)模拟BIOS,这个反向thunk少不了。
pmisr.c 里是保护模式下的ISR,这是完成真正的BIOS模拟的地方,通过读写二道贩子堆栈上保存的寄存器上下文,在中断返回后和实模式代码交换情报。
完成thunk和这些ISR后,大约50%的工作完成。这些代码已经让Clay很happy了。第一次thunk进MBR代码时,程序工作得比Clay想象的要好,真的找到了激活的分区,然后从那加载并跳到了boot sector。boot到CD 的bootload也工作了--虽然挂在了诊测内存的地方。

除了享受代码工作的乐趣外,Clay还分享了一些自己调试方面的经历。在preboot环境下运行EFI程序可没那多的东西可用,比如至少没办法启动gdb,然后打上一堆断点,舒舒服服地开始调程序--深表理解和同情。
一开始,Clay 的方法--不说,你也知道--是写上详尽的debug输出,轰炸控制台屏幕。他的tester,Chris,负责运行程序并对屏幕结果截图。那时Clay甚至还没有一台真正的Intel Mac,所以进度很慢。这个方法用了很久。Clay甚至没有亲眼看过自己写的所有分区表代码(GPT 和 MBR)的运行情况,流程是Chris发来截图,Clay改动代码,重编,Chris重新下载代码并重启。Again and again,向Chris致敬。

当列出Chris的 Macbook Pro上的所有block IO设备时,Clay开始拿不定如何在EFI下访问CDROM了--因为这玩意儿根本就没出现。这时候出现了一位不需别人拯救,却拯救了别人的Ryan,他非常好心地把自己的新Mac Mini借给了Clay,Clay非常高兴地发现,只要CDROM中有盘的话,就能找到光驱--这是个问题吗?如果是,是Apple 还是Intel?--后面 Clay 也高兴地确认了自己的代码几乎毫无问题。

接下来就是硬骨头了,回到实模式,Clay 要编写并静静地花数小时审阅自己的代码(right,我们都这样 ;-) ),然后,下载,运行,再然后,机器令人沮丧地重启。因为不知道那条指令造成了重启,就在一块代码后加上死循环,重编,运行(right,我们还这样 ;-) );机器挂住说明前面代码OK;后移死循环,重编,运行……周而复始,直到找到代码里所有的bug(right,我们仍然这样)。Clay 说所有的代码都和语法而不是自己的逻辑有关,这个ATT老鬼转到Intel语法上确实有点不习惯。
一旦thunk和中断handler代码能工作。Clay开始解决为什么NTLDR在诊测内存的时候挂掉。NTLDR 有233k大小--中文版XP上251k,英文版244k,怎么Clay的来个233k?--反汇编出来有97000行左右。从最后一个BIOS中断调用的输出中,Clay找到了大概是在哪里挂掉的,只是,需要比较精确地定位到具体的routine。
看来Clay差点就要写自己的调试器了,通过handle INT 3,他的代码能随意地控制使用INT 3的NTLDR了。以反汇编为参考,Clay列出了所有可能造成停止的地方,然后写了个函数把这些代码替换成0xCC(INT 3的操作码),后面就好说了,写好INT 3的ISR,在这里头替换原来的指令,改变一下返回地址,就能在ISR返回后,执行改才的原始指令了--基本的软断点功能--还真的能工作了 :-)
此后Clay又做了点扩展,在INT 3中自动使能trap模式,这样就能在执行原始指令后再次把指令替换成0xCC,这样循环或者某函数被调用时,原来的断点还在。此后的再进一步是提供了断点选项,能让trap模式一直使能,这样就能得到两点之间所有指令执行的trace信息了。

最后是VGA text mode的难题了。标准的图形及字符framebuffer(0xA0000 and 0xB8000)根本就没有map进内存,读取VGA寄存器只得到一堆garbage。Clay 如果了解更多PCI编程的话,就能映射framebuffer,并配置IO了,只是Clay还不太了解。在此期间,他已经在load-time对NTLDR打了patch,能让其向Clay自己的字符framebuffer写东西了,在每次中断的时候,都扫描这段framebuffer,然后绘制一部分模拟的字符模式屏幕。这招儿就是太慢,也足够hackish。Clay 也清楚应该可以使能真正的VGA模式--narf 和 blanka 就做到了--不过Clay不知如何下手。

不管怎么说,总而言之,Clay 对自己的代码非常happy--即便没有赢得比赛。这次经历让Clay学到很多技巧,期待下一次,还是让我们面朝Mac,春暖话开。

后话。
虽然一定不是唯一以及不一定是最好的做法,Clay的实现提供的很有用的参考,happy reading。

获胜者之一的Blanka也在Clay的这篇blog上留言,悻悻相惜的一句Awesome work 后,Blanka简要说了如何搞定VGA。主要又3个步骤:
1. Disable IGD (internal graphics device) from decoding legacy VGA IO ports (PCI configuration on i945)
2. Enable legacy VGA forwarding on the PCIX bus (PCI conf i945 too)
3. Configure M56 to enable framebuffer at 0xB8000 (done through legacy VGA ports)
好像上面3条没什么好翻的。
再多可以去看看留言,Blanka 提到他们也会很快发布代码。

为Clay提供帮助的Chris在留言中留下了flickr地址,看看这两人合作的心酸血泪史…debugging via camera,多有意思 ;-)

在响应一位Galvanick Lucipher的留言时,Clay列出了自己阅读的数目:
Master Class: Assembly Language (Wrox Press) :关于保护模式编程的两章不错
Mastering Turbo Assembler (Sams):包含不错的i386汇编和中断处理程序的资料
上面两本书躺在Clay的书架上超过10年咯。
线上材料 Transition from Protected Mode to Real ModeAT&T Assembly Syntax (这个很有用);包含一些thunk代码的TianoCore EFI Development Kit ,在Edk/Sample/Cpu/Pentium/Cpu/Dxe/Ia32/Thunk.c。

[tags]windows, mac, osx, intel, apple[/tags]

Tags: , , , , ,




Feeds

Global: RSS for International Readers
China: RSS for Readers from China Mainland
Both feeds deliver exactly same content. The second one is provided for readers from China Mainland where FeedBurner is blocked.
如果您的 RSS 阅读器访问 FeedBurner 有困难,可以使用第二个 feed,内容完全一样。

Latest JPG Magazine

By Dorella RosiBy William TaylorBy Tim FoltzBy Shawn BarnesThe shades of nightThought Process