Friday, February 29, 2008

becoming linux kernel hackers (advice from Andrew Morton)

excepted from kernel trap.
interview took place on Feb. 14.

1. 做事情需要有目的,不能光看代码,需要动手,这就需要一个理由。
2. 现在的Linux开发的情况和2000年也许又不相同了,很多大公司加入
进来了。加入这些公司去开发内核可能才是可行的路径。
3. Andrew Morton最后一句话说的好,“There are many things to do,
and Linux doesn't really need thousands of people adding even more code.”
更多的人需要去做测试,做QA,做Bug fix.

What advice can you offer to people just learning to become kernel hackers?

Andrew Morton:
There is a great amount to learn, and you don't learn it by reading the
code, or by reading the mailing list. You have to actually get in
there and change something. It's only when you try to do the hands-on
things that you realize how much you don't know.

And to get hands-on, you need a *reason*.

Profile the kernel, try to fix a performance bottleneck.

Pick a neglected bug report off the kernel list, work it with the
originator, see if you can fix it.

Pick a neglected device driver or filesystem, try to improve it.

There are new block and net driver interfaces coming through in 2.5 -
pick a driver for which you have hardware and take care of it.

Don't spout off opinions on the kernel mailing list.

Ignore what the kernel developers say about C++.

If you need to write, say, a net driver then don't! First, take an
existing one and make it beautiful, or more correct, or twice as fast,
or add a feature. Then take that knowledge to the new driver.

One hot tip: if you spot a bug which is being ignored, send a
completely botched fix to the mailing list. This causes thousands of
kernel developers to rally to the cause. Nobody knows why this
happens. (I really have deliberately done this several times. It works).

Write a really good filesystem and VM performance measurement suite
which models real-world workloads. The existing ones are almost
useless for this, and this gap in the toolset makes it much harder to
tune filesystems, and to discover performance improvements and
regressions.

There are many things to do, and Linux doesn't really need thousands
of people adding even more code.

Hotspot@HOME and T-mobile's UMA plan


UMA简单来说就是GSM+Wifi的双模手机。允许用户在适当的时候
将通话在GSM和Wifi网络之间切换。现在T-mobile已经在北美开始
提供这种服务,Cingular是第一家。

我这里关心的是通过Wifi+Internet的链路网络是否会发生拥塞?
是否有区别服务?

Wednesday, February 27, 2008

vim中的中文行重排

今天进入博士论文写作的第2天,由于之前emacs编辑器无法输入
中文,只好新换了vim编辑器。

原来在emacs中C-q可以对段落进行重排,保持每行字符数不超过80个
英文字符。换到vi以后发现对应的命令是gq), 但要想实现中文重排,
还得安装一个插件。

从Edward G.J. Lee的vim介绍第3.6节摘录如下:


重排的功能本不是編輯器的主要功能,而是文書排版軟體的工作,
但簡單的重排也是很方便,對於中文而言,處理上得多花些工夫,
對於希望有中文重排功能的朋友,可下載 Vim script 來使用:

http://info.sayya.org/~edt1023/vim/format.vim


這是修改自日本朋友的貢獻。把他置於 $VIMRUNTIME/plugin 目錄下,
重新開啟 vim 就會生效,對於 J 及 gqap 都會考慮中文的細節。

Tuesday, February 26, 2008

Skype中D-Bus的使用

D-Bus是用于应用程序之间通信的一种方式,如果一个应用程序
支持D-Bus的话,意味着这个程序的某些API可以被export
出来了,其它应用程序可以通过D-Bus协议调用这些API。
(感觉这个功能优点类似RPC),另外应用程序还可以向D-Bus
发送消息,其它程序可以向D-Bus注册接收该消息。比如,
pidgin可以将用户上下线事件做为D-Bus消息传输出来。

对于skype而言,可以由其它应用程序调用打给某个用户打电话。
一种方法:

dbus-send \
--session \
--type=method_call \
--print-reply \
--dest=com.Skype.API \
/com/Skype com.Skype.API.Invoke \
string:NAME\ hello\ string:PROTOCOL\ 5\ string:CALL\ echo123


另一种方法:

skype-action-handler skype:echo123?call

其中skype-action-handler可以在Skype API on Linux
下载。

上面这些方法没有在skype 2.0 beta上测试成功。总的来说,
D-Bus还是优点用处的。因为它能调用应用程序内部的API,也能
监听程序发出的消息。

Sunday, February 24, 2008

WAPI 大事记

引子:2003年5月12日无线局域网国家标准WAPI由信息产业部报送国家标准化管理委员会正式颁布。11月26日,相关部门发布公告宣布强制性国家标准自2003年12月1日起开始实施,并规定到2004年6月1日,未获得强制性产品认证证书和未施加中国强制性认证标志的无线局域网产品将不得出厂、进口、销售或者在其他经营活动中使用。相关国内国外厂商必须和经过认证的国内企业进行技术合作才能获得加密标准。

由此,西安西电捷通无线网络通信有限公司发起制定的WAPI无线局域网安全协议成为了中国自主知识产权标准化、产业化的一个焦点事件,进入公众的视野。随后,

1. 中国政府的强硬措施随即遭到了来自海外的强力抵制,2004年1月,美国无线局域网标准组织WIFI联盟主管埃顿向路透社表示,如果在6月强制执行的生效期限前没有折中方案的话,将考虑停止向中国销售WIFI芯片,这样的言论终于将矛盾引向全面升级。

2. 2004年年初,针对美国方面的芯片禁运压力,中国芯片企业开始拿出可以替代美国WIFI芯片的产品。

3. 4月22日,中美双方贸易谈判之后宣布WAPI标准强制实施被无限期推迟。

4. 2004年12月7日,SC6形成决议,将WAPI和美国IEEE 802.11i一同进入提案流程,并被列入明年2月的SC6,第一工作组的工作会议议程,有望成为国际标准。

5. 2005年12月30日,国家密码管理局召集20多个国内厂家开会,正式宣布将向全球公布加密算法。

6. 2005年12月30日,财政部、国家发改革、信息产业部联合印发《无线局域网产品政府采购实施意见》的通知。根据实施意见,各级国家机关、事业单位和团体组织用财政性资金采购无线局域网产品和含有无线局域网功能的设备时,应当优先采购符合国家无线局域网安全标准(GB 15629.11/1102)的产品。 美国网件公司北方区产品经理惠宏飞表示,目前无线产品主要应用于教育、酒店、SOHO三方面,其中只有部分教育采购被纳入政府采购范畴,大约只占整体市场的10%。

7. 2006年3月7日,由发改委、信产部及科技部三大部委牵头建立,22家企业参与的WAPI产业联盟成立。

8. 2006年3月8日,WAPI未能在国际标准化组织获得通过,IEEE 802.11i则以高票通过。

9. 2006年6月8日,WAPI代表团退出ISO针对WAPI标准投票结果召开的“投票分析会”。

其它一些事实:
“2004年公司进入WAPI与802.11兼容网卡项目样机测试阶段,标准推行搁置后,该产品项目就已停掉,等待进一步市场消息。” 其实“停止步伐”的不止武汉汉网一家。记者在调查中了解到,上海思波通讯、深圳朗科、上海昂凯软件、福建星网锐捷、四川南山之桥微电子等数家一度想在WAPI项目中有所作为的公司都基本将项目处于“静观其变”的状态。

一位不愿透露姓名的某公司负责人告诉记者,该公司大量投资都已付之东流。项目搁置两年后,很多人员离开公司。另外一些公司规模不大、管理松散,对技术文档、材料管理不善,想恢复到2004年的“状态”还需要一个过程。

Monday, February 18, 2008

alsa on linux

终于今天把linux下声音的问题解决了,原来之前
flash, mplayer播放不了声音是由于alsa-base
没有安装和配置的原因。

在etch下安装和配置alsa很简单,只需要安装
alsa-base,然后运行alsaconf就行了。

Sunday, February 17, 2008

aiglx and compiz/beryl under debian etch

终于在Debian Etch上安装了compiz 3D 窗口管理器,
Xorg 7.1 (aiglx enabled) + compiz 0.2.2.

0.2.2的compiz版本还比较低,但基本的3D功能都能实现,
现在唯一的缺憾就是因为没有鼠标滑轮,不能实现窗口透明度
的设置。

这里需要说明的是,Novell最先推出的xgl是一种比较独立的
X server, 不太容易安装。而Redhat推出的aiglx对Xorg的
改动比较小,因此就被集成在Xorg 7.1中了。所以,现在
安装compiz只需要安装compiz和mesa-dri,然后对/etc/X11/xorg.conf
进行一下简单配置就可以了。

安装的方法参照
[1] A short introduction about Compiz
[2] Debian HOW-TO: AIGLX+Compiz


P.S. 由于compiz的版本太低,效果太少,现在改成beryl 0.2了,
安装方法也非常简单,
参考
[1] Debian HOW-TO: AIGLX+Beryl

Tuesday, February 12, 2008

ThuThesis的安装

今天计划开始写博士论文了,使用latex的thuthesis模板来写。
thuthesis在debian下的安装还是比较方便的

1. 在source.list添加源
deb ftp://ftp3.tsinghua.edu.cn/mirror/debian/debian-unofficial sid misc

2. 安装latex-cjkaddons, latex-thuthesis-gbk, tex-cjkfonts

3. 从windows系统中拷贝6种所需字体,simsun, simhei, simkai, simli, simyou, simfang.
使用make-fpkg制作latex所需的字体文件,然后安装。

ok!