收到微软的电话,百感交集

一个普通的上午。手机响起。
“你是Zongjian? Can you speak English?”
“Yeah”
“This is Holly Barbacovi from Microsoft Windows Server Shanghai。”
……
感谢XiaoXie的引荐,收到了微软Windows Server组的面试电话。但是……
“I’m sorry, but my tutor asked me to do some research work for him, so I’m afraid I do not have enough time to ……”

大四一年在Micorsoft的实习让我感受到了微软的魅力与激情。自从去年离开了Microsoft GTEC …

more ...

关于COM教学的一些想法

有时候我一直就在想,COM相关的技术我们整天都在用(不用怀疑,Windows就是COM插起来的,VB6,ASP,JScript等下面都是COM),但是很多人都觉得COM难学,我觉得是不是对COM的教学走了歪路了。C++有C++的对象模型,COM有COM的对象模型,.net 和java都有自己的对象模型(当然.net跟java的对象模型对用程序员来说是透明的,MS跟sun不需要也不想让程序员了解)。只是因为COM的对象模型的部分特征看起来跟C++的对象模型比较相似,所以大多数教材都在用C++讲述COM的原理,(《COM本质论》,《COM技术内幕》是“罪魁祸首”),原理固然挺重要,但是这样一来搞得COM的起点相对很高,一定要深入理解C++的内部机制和对象模型才可以看得懂那些书写的是什么意思,而且看懂了之后,让自己动手写个能用的COM组件,还是很多人写不出来。

我就想对COM的认识是不是也可以从感性到理性,就像我们不懂得进城线程,虚存,MMU,调度算法,一样用Windows操作系统用的也挺好。不懂得POP3,SMTP协议,整天也在网上发邮件一样,可不可以讲COM不从C++将起,用vb6,用ATL,甚至用当年的Visual J++都可以先写几个COM先用起来,或者就干脆用VB用人家写的COM …

more ...

Windows CE下的网络体系结构


《自然辩证法》与软件工程

  • 程序员
  • 软件

当年《电子游戏软件》的“电刑室手记”上有这么一篇小短文:
某日上政治课,老师讲量变,质变,全班人迟迟不能理解,某一玩友徐徐曰:“量变者,升段也,质变者,转职也”。全班顿悟。且欲撰一奇文,题曰《马克思主义与RPG》。

这个段子后来大概因为是涉及政治问题,没有收录到“电刑室手记”完整版本里,但是电子游戏里面的升段和转职的确符合哲学里面对量变与质变规律的描述。看来哲学规律的普遍性和对具体科学(电子游戏也算是科学吧,否则国家863项目怎么投钱开发网络游戏引擎呢?)的指导意义真是非同小可。

今天刚刚考完期末考试,最后一门是《自然辩证法》,起初以为这门课跟毛思邓论一样,属于考记忆力背书的的东西,后来在这半个月疯狂的背书过程中,发现还真是如课本所说的自然辩证法“有助于提高理论思维能力和科技实践能力,更好的参与现代化建设”。书中对自然观,科学技术方法论和科学技术观的一些描述,还真是与程序员日常接触的东西有密切的关系,(不知道算不算得上模式),摘录一些如下:

  • 自然辩证法的层次观:

层次表征了系统内部结构的不同等级和水平,揭示了系统之间的纵向和垂直的联系。

层次的特点:低层次系统对高层次系统有构成性关系,低层次系统之间存在相互作用。

层次结合能递减规律 …

more ...

拥抱嵌入式时代

This has been a great year moving towards the digital lifestyle.

I’d say it’s going even faster than we would have expected.

–Bill Gates

2005全球消费性电子产品博览会

我们在描述未来生活的科幻小说中经常可以看到这样的场景:

周末的早上,珍妮被放在枕边的手机放出的轻音乐从睡梦中唤醒。睡眼惺忪的她刚刚从床上坐起来,桌上的电脑已经自动开启,清晰的语音从电脑音响里面飘了出来,内容是今天的天气情况和珍妮所关心的新闻,消息。珍妮被其中一条动物园的优惠信息吸引了,她想利用今天的空闲去逛逛动物园,珍妮告诉电脑,订一张动物园的门票,电脑一切照办并使用珍妮的银行账户存款购买门票。

早饭过后,珍妮坐上去动物园的公交车,在车上,珍妮使用手机登录自己的电子信箱,发现有朋友的新邮件,珍妮口述邮件要回复的内容,手机帮助珍妮撰写邮件并回复。

动物园到了,动物园的门禁系统知道珍妮已经预购了门票 …

more ...

Windows CE下的Flat Virtual Address space

On 6/10/05, song titan wrote:

常看到书上这么说:Flat虚拟地址空间。加上上次聊到的,WINCE下进程里的私有数据保护。这个”平板式”的意思,我刚想了一下,是不是可以这么理解?

因为嵌入式的存储 介质有很多:RAM,ROM
,FLASH等,所以MMU把这些都映射到一个flat的虚拟地址空间上。这样不连续的内存就可以通过页表连续起来。所以称之为
flat

还有上次的你说如果选了Enable kernel
debug,就没有了slot的边界,进程的私有数据也就无法保护了。我记得在桌面版的WINDOWS下,是MMU来控制这种权限的读写的吧,那这里就是把这种权限机制解除掉了?

我觉得平板的意思就是所有的进程都共享一个地址空间吧。
Enable Full Kernel
Mode之后Slot之间的界限就解除了,就像所有的32个进程其实是一个进程一样,但是MMU的保护还存在。例如某段内存在进程A里面是只读的,那么所有的进程都可以去读这段内存。但是如果有进程去写这段内存,那么就会违例。

more ...