2009/4

准备换用docbook

最近在写《C语言编程艺术》时越来越对office感觉不满了,看着那排版是越来越丑了……想了半天决定换docbook,其实以前是想换LaTeX的,但是我这的中文环境一直没有搭好,在笔记本上还得重新弄,挺麻烦的,算了。换docbook带来的另一个好处是可以通过版本控制系统来发布了。虽然工作量大,但还是值得的。慢慢来吧。

下面是我在学习docbook的过程中发现的一些不错的教程,和大家分享:

DocBook: The Definitive Guide
DocBook XSL: The Complete Guide
DocBook 文件写作入门
Docbook 指南
DocBook 学习

还有就是关于图形界面的docbook编辑器,这里有一个列表,我试了几个,发现conglomerate还不错,挺简洁的;Quanta+和XXE比较庞大,很多东西不知道怎么用。。。

继续学习……

Intel SMM 缓存中毒攻击

一大早起来上网就看到这么一条劲爆的新闻。其实这个漏洞由来已久,以前至少见过两次对它的介绍,而今天,我们终于看到实实在在的exploit了。

我把官方的paper和exploit代码通读了一遍,发现这个漏洞的原理其实很简单,大体如此:

1. 把SMM内存区域设为write-back模式,这需要修改mtrr(/proc/mtrr)。很明显,在linux上这一步是需要root权限的。也就是说,这里也就已经决定了这个漏洞不是用来给你提升权限的,而是用来隐藏rootkit等东西的。

2. 对SMM内存区域写入你自己的攻击代码,因为上一步已经把cache设为了wb,所以写入的代码其实是暂时存放在cache中的。而在一般情况下,这块内存显然是uncachable的,而且不会让你随便写入的。

3. 马上进入SMM模式,这时,SMI中断处理程序会从cache中读取相应的代码去执行,而不是从内存中。攻击目的达成!而且系统根本不会检测得到!

这里面隐含了非常关键的一步,那就是需要知道SMM内存中SMI处理函数的偏移(详细见Intel官方手册Vol 3 24.4.1),官方paper中给出的方法是:把上面的手法反过去,去读出SMM里面的内容进而得到那个偏移,非常巧妙。:-) 这个漏洞好啊,SMM那个地方风不着雨不着的,而且权限还不低,更可恶的是攻击代码在缓存中,几乎不太可能检测得到!tmd绝了!

Update: 根据这篇文章,TSEG其实就是物理内存的最后一块,可以根据自己机器的配置和/proc/mtrr的输出来判断。

这里有几个概念可能不太好理解,

1. SMM,System Management Mode。Intel CPU的一种模式,和我们通常所说的实模式,保护模式类似。它和实模式差不多,只是寻址是32位的。设立它的目的是给BIOS和firmware使用的。详细描述见Intel Vol 3, Ch 24。

2. MSR,MODEL-SPECIFIC REGISTERS,一些特殊的寄存器,有特殊的用途,比如sysenter。这些寄存器可以通过rdmsr来读取,通过wrmsr来写入。详细描述见 Intel Vol 3 8.4。

3. MTRR,MEMORY TYPE RANGE REGISTERS,MSR中的一类,设置内存块的缓存属性,比如上面提到的缓存策略。具体描述见Intel Vol 3 10.11,也可参考Linux内核源代码arch/x86/kernel/cpu/mtrr/中的代码。

生死之城

我今天特意跑到电影院里把这部电影看了。看的人不多,不知道是因为不是周末的缘故还是因为这种题材的电影没有多少人喜欢。

整部电影130分钟,非常压抑,看的过程中我都没敢大声喘气。电影院的音响效果很好,里面的枪声感觉很震撼,炸弹爆炸时的震动坐在电影院里都可以感受得到!如临其境!

我觉得这部电影的中文名没英文名好,所以我这篇文章直接把英文名翻译过来作标题了。里面给我印象最深刻的是日本小队长角川的一句话:活着比死更艰难。用这句话概括整个电影非常恰当,即使这个杀人如麻的日本兵最后也是受不了良心的折磨而自杀。

看完回去后同学问我这部电影的主角是谁,其实这部电影没主角,四个主要人物的特写为我们提供的是四种视角来看待整个故事。而且这四个人物都是小人物,没有英雄,我觉得正是这几个小人物的经历才反映了整个大屠杀的过程!因为,“人民的经历,才是时代的经历!

网上有很多人置疑看这部电影的目的,其中一个理由就是不应该再让旧的仇恨充斥在年轻人之中。这当然没错,我们去看这部电影也不是为了去和日本记仇,更不是鼓励年轻人们都去复仇,而是,历史就摆到那里了,它不由得你去不去面对!面对历史,我们还是谦卑些为好!

他们太有才了

好久没上网聊天了,今天和以前的几个同事聊了聊。下面是和m@rco的聊天:

[20:59:26] m@rco: hi
[20:59:41] … worker
[20:59:51] … so you are doing what you like finaly
[21:00:05] Américo Wang: hmmm, definitely yes
[21:00:06] … :)
[21:00:17] … how are you, Portuguese guy??
[21:00:18] … :D
[21:00:24] m@rco: and you are now on a big city
[21:00:31] Américo Wang: TOOOOOOO big
[21:00:42] m@rco: :) living alone ? or with friends ?
[21:01:02] Américo Wang: alone, but i have many friends also in beijing
[21:01:08] … they live in their schools
[21:01:11] … ;)
[21:01:25] m@rco: nice… now is time to search for a girl ;)
[21:01:31] … and have lots of little wangs :D
[21:01:42] … (dance)
[21:01:44] Américo Wang: :D
[21:01:50] … OMG…
[21:02:10] … THAT IS ALMOST EXACTLY WHAT I AM THINKING!
[21:02:15] … (devil)

聊到这里我都快笑喷了。。。后面还有呢,接着看:

[21:05:21] m@rco: i’m planing to build a football team
[21:05:29] Américo Wang: LOL…
[21:05:31] m@rco: with my wife
[21:05:41] Américo Wang: you will have, at least, 11 babies…
[21:05:43] … hmmmmmmmmmmmm
[21:05:47] … excellent
[21:05:51] … but not easy
[21:05:52] m@rco: indoor soccer :D 5
[21:05:53] Américo Wang: :D
[21:06:10] m@rco: or just a ping pong team :) 2 :D

到这里我都笑得快不行了。。。。还有Carlos,

[21:47:00] Américo Wang: then I will begin to think about what I should bring to you and your wife-in-the-future…
[21:47:03] … ;)
[21:47:34] Carlos: not a kid :| ok?
[21:47:40] Américo Wang: :O
[21:47:48] Carlos: I will do that
[21:47:49] Américo Wang: oh my god…
[21:47:50] Carlos: :)

总之就是m@rco要当爸爸了,Carlos要结婚了!嘎嘎,听到这些真是太高兴了!所以俺计划着明年飞到葡萄牙去参加Carlos的婚礼呢,听说在他们那的婚礼可以大吃上一个星期……0_O 然后还要和m@rco家的“足球队”踢场“友谊赛”……哈哈哈哈

恩,还有那个循规蹈矩,忠厚老实的老好人Ricardo,他的生活其实没啥好说的,一直都那么单调,可他还说他妹妹Ana无聊,哼,所以现在我见了他都开玩笑地说,谈你太无趣了,咱还是谈谈Ana吧,哈哈!这兄妹俩现在都挺好,那我就放心了。

太想念那些葡萄牙的朋友了!明天给他们寄几张北京的明信片去~

P.S. Ricardo同学说其实他偷偷地用google translate看我的博客呢!-__-! 我对翻译质量表示严重的怀疑。。。。

在北京那些事儿

来到北京得一个多月了,一直忙着折腾生活,以至于没时间更新博客了。:-)

说实话,来北京之前对北京真没什么好印象,人那么多,车那么多,去了不是添堵么?来到北京住了一段时间才发现其实没那么糟糕,北京人是多,人多的一个好处是聚会热闹!所以你在豆瓣上可以经常看到北京有各种各样的聚会,都是年轻人,虽然互不相识但聚到一起聊聊天挺有意思的。所以,在这里,见一个网友比其它地方要容易的多。

前些天参加了一个单身聚会,和一大堆人玩了一下午的杀人游戏,然后一起去吃饭,坐在一起聊了很多,这些人做什么的都有,聊起来特别有意思,就像其中一个人说的,好久没和这么多人一起吃饭了,哎,我又何尝不是呢?看看坐我旁边的“半仙儿”大姐,比我大那么多还能这么乐观,这种心态就值得我学习。我回去把这事儿和我那些非单身的同学一说,他们相继表示要假装单身来凑热闹……切,好事儿哪能都让你们占了,也该我们单身的占一次了吧?

北京有很多吃的地方,在这里可以发现全国各地的小吃,但是在北京找正宗的小吃可不是一件容易的事儿。我现在没事儿就盘算下一顿该吃什么,去哪找吃的,逛来逛去还是没把北京的小吃给全部发掘出来……

鼓楼东大街有一家涮肉,非常棒,用的还是那种老式的火锅,味道很不错,而且还挺便宜的;
同一条街上还有一家香锅,辣得变态,我们虽然只叫了一个微辣的锅但还没吃完就已经把我辣得不行了,口味重的人可以去试试;
烤鱼吃过好几家,感觉还是成府路上那家比较好,皂君东里那的那个烤鱼居然没有汤,而且还会把点的菜和鱼一起做,我觉得应该叫“香锅鱼”才是;
西单的重庆酸辣粉还算不错,就是中午在那里吃的人好多好多;
东四北大街上有个不太容易找到“小彻甜品店”很好,又吃了一次广州的肠粉,感觉还是没有在广州时老大那边的村子里吃的好,不过双皮奶挺好的,感觉比南锣鼓巷的那家要嫩一些;
灯市西街那有家上海城隍庙小吃,感觉还可以;
知春里这的柳州螺蛳粉店没找到,据说已经搬了,我又跑到团结湖那边的“净心莲”吃的,不过我去得晚,人家卖完了,在这么一个奇特而又比较奢侈的地方我大胆地只叫了一碗面就出来了,估计服务员都无语了;
在北京吃过三次臭豆腐,都不好吃,不臭,吃起来也没那么香,现在好怀念在长沙吃的臭豆腐;
别人请客吃了次小肥羊,相当爽;
住的附近有两个很有个性的餐馆:小吊梨汤,完全模仿民国风格,就是里面的菜普遍偏甜;风波庄,可以去庄里当一把好汉(女的叫女侠),边听“笑傲江湖”边看小二“乾坤大挪移”;
小区门口有家西安小吃,还挺好的,经常进去怀念一下西安的小吃,尤其是凉皮;斜对面有家重庆小吃,罐罐牛肉面超赞,我经常在晚上九点多去里面要上一碗热热身。
……

北京有个最不好的地方就是夜宵没那么丰富,起码我住的这边如此。在西安,晚上十二点多了我们还可以去吃路边上的烧烤,而北京就不行了,晚上才九点多门口那些小摊就收了,为了吃上夜宵,我还得跑到附近的公交车站去找吃的,一般是吃个煎饼果子或者鸡蛋灌饼。所以我就说,我现在的娱乐活动基本上只剩吃了。8-)

北京这逛的地方挺多的:后海一定要去,看看北京的文艺青年们聚会的地方,我都去三次了,恩哼;附近的南锣鼓巷要去,里面的小店很有个性,还有烟袋斜街;呃,地安门要去,没听那首歌里唱的嘛,“走在地安门外没有人能不动真情”;故宫还和四年前去没啥差别,还是无论什么时候都是那么多人,不过看看慈禧和溥仪(去此之前最好看看电影《末代皇帝》)住的地方还是不错的;颐和园是个不错的地方,不过要去您就别指望能逛完一圈了,那园子修得太大了;前门修得不错,挺有北京味儿的;奥运那儿其实也没啥意思,白天时鸟巢在外面看起来就一破铁架子,水立方就一破盒子;国图新楼挺好的,可惜里面的书真的不咋的,起码计算机的书还没我们西邮的图书馆好;要逛大学的话,清华园还是值得逛的;北大就算了,就一个未名湖,一向号称开放吧,进去还查身份证,靠;人大不错。

四月是北京看花儿的季节,可以去玉渊潭看看樱花;去元大都遗址公园看看海棠,还有旁边的中日医院;想着去植物园看花还没去;还有中科院植物所……我现在越来越喜欢拍这些花花草草了……

我在这里的同学很多,光在中科院的就四个,然后还有两个声称是在北京其实离都在五环以外的同学,人家每次进城都得两个小时……一个女程序员晓静同学在离我很近的地方上班;有个失散了多年今天才见面的女同学在人大;一个同学的同学在央财;还有三个分散在北京没联系;最夸张的是有一个毕业以后就消失了没人能联系上的据说也在北京……阿元声称要来北京;另一个哥们现在在上海据说七月份要来北京。所以啊,我现在见了谁都是忽悠着他/她来北京!瞧,多热闹啊!恩,我们饭局也很多,周末没事叫着晓离去晓静家蹭饭吃,那次吃她做的炖排骨,这次又去她家吃自制火锅。晚上没事群发短信:有空没?一起去xxx吃yyy吧?猜怎么着?中科院的人连回复的短信都基本上是一样的:不去了,做作业呢!

前两天报名当志愿者了,去当老师辅导员,我发现我能教的真少,教计算机吧,可人家也不用linux啊,英语没问题,数学复习复习还行,语文就算了,其它特长没有,有的那些千奇百怪的嗜好没一个能算是特长的,算来算去我还是教英语比较合适……悲哀啊!

今天去见人大那同学了,晚上顺便跟她去上课了。她的专业让人听了巨无语。。。。。党史!不过跟她上的这节选修课不错,人大挺有名气的辛逸教授讲的,讲三农问题,我都听得懂。他讲课挺幽默的,而且相当“左”,我很惊讶这种课居然也能在大学里有,打算长期去人大蹭这课听了……

就写这么多吧,生活还得折腾,不是么?你不折腾生活,生活就折腾你啊!

P.S. 去“小彻甜品店”吃饭时看到店主在门口写着”Dreams come true”,很感动,北京有多少像这样来寻梦的年轻人啊!恩,我们没钱,我们没房子,但我们都有梦想!有梦想谁都了不起!

P.P.S. 有四个陌生人问过我路,我居然都回答上来了……

Got a new job

Since some people may be still wondering where I will work…

Well, after a rather long-time interview, finally, I got a very nice job from Redhat Beijing as a junior kernel developer. So working on Linux kernel will be my formal work, instead of a hobby in my spare time. This is really a challenge for me. How nice! :)

I want to thank every people I met in Redhat, especially, I want to give my HUGE thanks to Eugene Teo! Without his recommendation and encouragement, it is impossible for me to get this job.

Last but not least, I would like to thank all of my friends in Beijing, thanks for their kind help during my stay in Beijing!

I am just a lucky dog! ;-)

《天国王朝》

前几天看完了这部电影,今天在google reader上看到一句话,发现用来评价这部电影再合适不过了:

Men never do evil so completely and cheerfully as when they do it from religious conviction.

人们只有在奉宗教之名时才会如此彻底和愉快地进行邪恶之事。

— Blaise Pascal




影片中一位德高望重的十字军将领的一句话也道破了这场战争的本质:“我原以为是为上帝而战。后来明白了,我们是为财富和土地而战。

当然了,通过这部电影你也可以了解关于耶路撒冷的一些历史,知道为啥那两个国家为了它争得那么嗨皮了吧~!

强烈推荐阅读:http://www.douban.com/note/25026019/

每天都是愚人节

在这样“一个由封建阶级统治的用资本主义生产方式发展的被定义为社会主义国家的奴隶制国家”里,我感觉天天都跟过愚人节似的!

有人说韩寒是一个拧巴的好青年,最近刚读了《他的国》,他的国不就是这个国家吗?我们这个国家又何尝不是一个拧巴的国家呢?

哎,多难(NÁN)兴邦。