2007年12月的存档

  • 11
  • 12月

过去的一周估计是我这学期过得最紧张的两周了。一周时间内看明白并修改一个Linux内核实在是一件相当挑战的工作。

事情还要从头说起,这学期我们开了一门bt的实验课,名字叫《系统软件分析与设计》,从第12周上到第15周,一周就两节,应该是个很小的课。这课课时虽少,老师出的题可不简单,整个课就研究一样东西Linux 0.11的内核源码,主要的问题有两个:

1.详细分析至少150行的一段代码

2.改造Linux内核,使其启动时能依次显示三个问题,由用户输入三个答案,然后退出。

初看起来两道题都不怎么难,因此前两个周我基本上都在看《linux011内核注释》前面的理论部分,没开始研究源码。到第三周开始看代码时真是服了——面向过程的典型非正交代码。代码之间有大量的交叉引用,想看明白确实不是件容易的事。

幸运的是之前囤的软件没有白囤,SourceInsight这款软件在分析源码时帮了我极大的忙。按住ctrl点一下就能转到引用处,在处理这种复杂代码时帮助太大了。

不过第二个问题就没那么简单了。内核毕竟不是应用软件,除了自己定义的函数可没有可以调用的“系统函数”(“系统”之中哪来“系统函数”?)。内核中定义了一个printk函数,输出问题不用考虑了。但内核里是没有任何类似scanf之类的输入函数的。怎么接收用户的输入成了难点。

一个在普通编程中简单到不能再简单的接收用户输入操作,放到内核里把我卡了好几天

(未完待续…)

  • 07
  • 12月

今天上课很高兴地收到了Ubuntu的正版安装光盘。从Isle of Man(是欧洲的一个国家)寄来的。在此显摆一下*_^

注:这些文字是在它的LiveCD下写的。不过LiveCD下没有中文输入法。幸亏多少年前在《电脑爱好者》上看到过有InputKing这么一个在线输入法平台。用Firefox打开才有了我熟悉的五笔。

图一:

包裹的正面,是我的收件地址。幸亏当初留地址时多留了一个心眼,把自己的地址用英文和拼音写了两遍,我那倒霉的同学只留了个英文,比我早申请的至今还没收到…

图二:

包裹的背面,左边应该是发包人填写的单据,TNT Post的包,邮费有0.88欧元(合10块多人民币左右呢!)。右边是一个致相关人士的说明(中文),看意思应该是给海关看的,最后一句话是关键:“事 实上这些光盘是无偿派送的宣传品而不是以盈利为目的的进口货物,因此应当免除进口关税。”

图三:

内装光盘袋的正面,版本:7.10 for PC。正是我申请的那张。

图四:

光盘袋反面。是一个《What is Ubuntu?》的介绍。最喜欢的是下面那行粗字:“Ubuntu is software libre. You are encouraged and legally to copy, reinstall, modify, and redistribute this CD for yourself and your friends. Share the spirit of Ubuntu!”可以“ modify and redistribute”哦!

图五:

光盘袋里面、光盘和附送的贴纸。光盘袋的右下角是这么一行话:“Pass it on! This CD can be used to install Ubuntu on an unlimited number of PCs, desktops and laptops. So install it, and pass it to your family, friends and colleagues!”-这张光盘我会给很多人装的:)。另外贴纸本来有四张,拿回来之前已经被同学抢走了一张:(

PS:终于打完了,不过不得不说的是InputKing这套在线输入系统做的还真不错。可以说完全达到了一个正常输入法的要求,而且浏览器兼容性非常好,在Firefox下功能完全下沉,在没中文输入法的时候还真管用。

  • 06
  • 12月

最近Gmail升级频繁,又增加了很多非常cool的功能。今天用Firefox登录居然发现那帮geek们把AIM的聊天功能也加入到在线版的Gtalk中了。再加上前些天的群聊、表情图片,Gmail中单单一个聊天组件都快成miranda这样的专业IM软件了。

再看看整个Gmail,邮件内容预读取、更人性化的操作提示,对附件中各种文档在线查看、编辑的支持……基于Ajax的Gmail在很多方面甚至超过了我用的DreamMail的功能。不得不承认,Google把Ajax玩到了一种极致。

但不得不说的是,在使用完Gmail关闭我的Firefox的时,我已经遇到了多次Firefox崩溃的现象。这使我不怀疑难道Ajax的极限到了?

Ajax的核心JavaScript毕竟只是一门基于浏览器的解释型语言,执行效率上本来就相当不怎么样。而浏览器经过这十几年的发展也已经变成了一个超级复杂的软件系统,本身就有很多bug。在bug多上跑效率低……

不过看来众多软件厂商早已注意到这个问题Flash、SliverLight、JavaFX都在争抢着下一代RIA开发者的眼球。

解决问题总是好的,只是希望新的方案能解决浏览器之间的兼容性问题,不要让我们再头痛于JavaScript那样的浏览器hack之中。

所有标签:.net Ajax Java javascript Linux map MySQL RSS TD-SCDMA Ubuntu vim web Win7 乱码 基础知识 备份 奥运会 希望泉 性能 缓存 编程