这个冬天真冷

这是一篇寒假生活的补记。

2007 年的冬天不是一个一般的冬天,它可能给很多人留下了深刻的回忆,包括在路上的和不在路上的。“五一”长假的取消和大雪封路的威胁也让买张回家的火车票成为一件很奢侈的事情。回家前和我的导师聊天,他说:“买张回家的卧铺票就好比发篇好点儿的论文,都是一年一次,都是难上加难。”幸好因为国家的某些政策,学生能享受提前许多天买票的优惠,才让这个过程显得没那么困难。

我回家的前日家里还飘着雪花,但抵家的凌晨天色就放晴了。刚下火车时从暖暖的车厢中出来还没有感觉到寒意,一到家里就支撑不住了。尤其是在北京习惯于暖气开放的宿舍和教室,也没有着厚厚的衣衫,回到豫东平原上这小小院落的家中,便感觉异常的单薄寒冷。于是自从回家那天起就开始躲被窝中轻易不肯起来,但因活动太少而吃得太多太杂引起的胃胀嗳气几乎困扰了我一个冬天。常年孤单一人在家的妈妈看到在外地求学的两个孩子都回到自己身边,自然是开开心心又买这又买那的,零食一大筐,结果我是看着眼馋还不敢多吃,好生郁闷。

半年未见的家中房屋器物又显得破败了几分,因为爸爸去世的早,我和妹妹又在外地上学,反正也没有人用,我妈一个人也顾不上去修葺它们,所以我回去就得修修电话、开关、插座等一些零碎的东西。这次回家还有一个变化是在我的强烈要求下,家里安装上了卫星电视接收机,这样我们总算不用再忍受地方台的垃圾电视节目了。我知道,在中国这种做法是违反某些广电总局的法规的,但是对于一个贫穷的母亲来说一次性 200 块钱的消费总好过于初装 300+ 再加上每年 120 元的有线电视费。我妈之所以愿意装这个也是因为我开始读研究生了,而且自己能打工挣钱,不用再花家里的钱了,否则两个大学生的学费怎么是一个贫困地区小学教师能承受的了的啊!

阔别三年的于洁妹子说要给我抓一些治口腔溃疡的中药,所以二月三四号那两天又去了趟我读高中所在的商丘市,见了几个好友,聊了很多八卦。自从读研究生以来我就感觉自己自闭了许多,有些疏远好友,不过见了面还是那么亲切。每个人都奋斗在自己选择的道路上,我相信那些临时的困难都会过去的。

在仍然有着很多传统习俗的中原地区,过年总免不了走亲访友一番,尤其是像我们这种根在农村的大家族。叔伯兄弟还能认得准,因为我是这辈分里最小的,那些侄子外甥们就不知道有多少个了,谁能认得清啊?都说只生一个好,可家里的哥哥们都是忍着计划生育罚款也是不生男孩不罢休,那么多孩子怎么能养得过来。以前大伯不在家,我们回家也就到其他的几个伯伯家坐坐就走了。这两年大伯从甘肃退休回家住着,在老家的老院子里,一家人才能聚在一起热热闹闹的吃顿饭。

回京的时候买票倒还方便,我托小力姐在商丘帮忙买了张卧铺票,坐的时候也不挤,顺顺当当地回来了。

Google Reader 的一点问题

Google Reader 是我非常喜欢的在线博客订阅器,自从发现这个服务之后我就结束了尝试 N 个离线博客订阅软件的历史。用 Google Reader 看别人的博客好像看邮件一样,而且可以抓取一些国内无法访问的国外博客系统的 feed,很方便。

自从使用以来它就一直很稳定,不过这两天我发现 GR 貌似出现了一些小问题:一个是抓取我的博客 feed 有错,订阅的 http://feeds.feedburner.com/solrex 的条目中忽然多出了十条和我同一服务器的某个博客条目,而 feedburner 的原始连接中并没有这十条内容;二是抓取 feed 的时候没有通知订阅用户数,所以我的 feedburner 和 feedsky 显示的订阅用户一下子少了一大半,本来就只有一百多人订阅,现在显示的订阅数就更可怜了。

本来我以为这可能是个别问题,可是著名博客和菜头也在文章中说某些用户的订阅在 GR 中显示为乱码。这就叫人奇怪了,为什么 GR 在这几天发生那么多问题?难道是 GR 在测试新功能?

虽然 GR 这两天出了那么多问题,我仍然要推荐它,下面简单介绍一下我觉得比较好的特色:

1. 共享阅读。一种方法是把共享阅读块放在自己的主页上(看我的博客右侧栏),另一种是在 GR 的阅读视图里与 Google 好友共享阅读条目,还有一种方法就是把条目直接 email 给别人。

2. 快捷键操作。GR 有很多键盘快捷键,比如:j 阅读下一条,k 阅读上一条,n 移到下一条,p 移到上一条,o 打开列表项,这样操作起来非常方便。

3. 使用安全连接(https)的 GR,避免连接被重置。在中国国内某些网络条件下,明文传输的网页是会被过滤的,如果订阅的博客文章中有敏感词条,路由器就会重置网络连接,比如经常看到的浏览器提示“与服务器的连接被重置”就是由于这个原因。使用安全连接的 GR https://www.google.com/reader/view/ 能避免此类状况的发生。(此方法同样适用于 Gmail 的连接不稳定现象)

4. feed 阅读趋势。GR 可以统计你的阅读情况,并提供一些阅读趋势排行榜,以供你了解自己的阅读习惯。

免费电子书《使用开源软件-自己动手写操作系统》Revision 1 发布

最后更新时间:2008年02月21日19点08分

免费电子书《使用开源软件-自己动手写操作系统》的官方主页为:http://share.solrex.org/WriteOS/ ,您可以到这里下载 pdf 格式电子书和随书源代码。

我叨叨了一个多月的这本书总算能发布第一个版本了,娘啊,费了老鼻子劲了。好多工作要花费在排版上,因为希望整得效果好点儿嘛!而且写了才知道,把自己知道的东西清楚地表述出来真不是件容易的事儿。啥也不说了,看图,还有目录。

免费电子书《使用开源软件-自己动手写操作系统》(无法看到此图,可能因为您无法连接国外网站)

写在前面的话i
序言vii
第一章计算机启动1
1.1 计算机启动过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 磁盘抽象物理结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 硬盘. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 软盘. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 启动扇区. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 使用虚拟机. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.1 VirtualBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2 Bochs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 使用软盘镜像. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.1 制作软盘镜像. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.2 用软盘镜像启动虚拟机. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
第二章最小的“操作系统” 19
2.1 Hello OS world! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1 Intel 汇编转化为AT&T(GAS) 汇编. . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.2 用连接脚本控制地址空间. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.3 用Makeˉle 编译连接. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.4 用虚拟机加载执行boot.img . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 FAT 文件系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.1 FAT12 文件系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 启动扇区与BPB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.3 FAT12 数据结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.4 FAT12 根目录结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3 让启动扇区加载引导文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.1 一个最简单的loader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.2 读取软盘扇区的BIOS 13h 号中断. . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.3 搜索loader.bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3.4 加载loader 入内存. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.5 向loader 转交控制权. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.6 生成镜像并测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4 本章全部源代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

1月28日,1303次回家

致歉: 因为某个众所周知的原因,我的博客 http://blog.solrex.cn 的托管服务器在前两天并将继续在一段时间内无法正常访问,请见谅!如果想一直保持正常阅读本博客的内容,请使用 RSS 阅读器(比如 Google Reader, 抓虾鲜果)订阅本博客的 RSS Feed: http://feeds.feedburner.com/solrex 或者 http://feed.feedsky.com/solrex

由于做学生享受的一些小小特权,早就买好了回家的票,可以比煎熬在北京的工作人士们早回家两天。也结束了在北京的半年研究生生活,总的评价是,累!

作为一个责任心很强的人,要保持一星期 4 天读书,3 天上班,每天和女友视频 2 个小时,仅有的两个多于 2 天的假期都在南京度过,用脚想也能知道我这个学期的状态。我室友就特别羡慕我能睡那么少的时间还能保持一整天的精神,没办法啊,那都是被逼的,我不喜欢被窝吗?

不过谢天谢地,终于能回家歇歇了。可是回家也有打算,我准备至少完成我计划写的一本开放下载的书《使用开源软件自己动手写操作系统》的前三个章节。把计划写在这里就是要给自己点儿压力,如果开学后第一个 revision 还没有放到我自己的网站上提供下载的话,相当于承诺的话没有兑现,我会觉得很没面子。

本来好几天都想写博客了,但使用我自己域名的独立博客所在的服务器被封让我感觉很沮丧,就好像三个孩子中最疼爱的那一个忽然被人绑架,总觉得茶饭不思,天天望着大门口等着他回家。今天总算恢复了一点儿,我就少罗嗦几句吧,免得一会儿又不能访问。

搜索引擎和我的博客

今天想起了两件比较有意思的搜索引擎的事情:

1. Google PageRank 没有停止更新。

我今天忽然发现我的博客 http://blog.solrex.cn 的 PageRank 变成了 3,而去年 PageRank 在传说中停止更新半年后恢复时我的 PageRank 才是 2。这说明 Google 没有再次停止更新 PageRank。PageRank 是 Google 对网页重要性的意见,虽然一个数字代表不了什么,但是看着自己的网站被 Google 欣赏总是开心的事情 :-)。

2. 百度服务器资源紧缺是真的。

由于域名服务器问题,我的域名 solrex.cn 在 07 年末到 08 年初有 6 天时间无法解析 IP 地址。我发现问题后曾经尝试过在 Google 和百度搜索和我相关的关键字,Google 给出的结果没有什么差别,而百度却没有一条来自 solrex.cn 相关的记录。但是在 IP 解析恢复一天后,再百度搜索“solrex”,blog.solrex.cn 就成为搜索记录的第一条。这说明:一,百度服务器资源确实短缺,否则它没有必要删除一个仅仅6天不能访问的网站,不然要百度快照干什么?二,百度抓取蜘蛛反应很快,才恢复一天的网站就已经被重新收录了。

天下没有免费的午餐

前两天才说过希望免费的 IPv6 服务能一直继续下去,谁知道今天就发现了原来 IPv6 免费电话不是无限制使用的,大概是给了能打多长时间固定电话的优惠,然后就不能打了,不知道这个限制是按月给的还是像 Skype 一样只是一个初始优惠。

不过还好的是 IPv6 免费电视还是能继续看下去的...

汇报一下近况吧,从南京回来之后就恢复了以前的生活,课程只剩下一节,周末依然去公司兼职。公司才建立了一个内部知识库,前两天都在添加一些和调试有关的词条,以便于一个新来的同事能更快的了解调试相关的知识,这也是为什么前面一篇文章是关于 TWiki 语法的介绍。其实在学校时候也在自己电脑上安装过 TWiki,是在 Linux 上装的,但是装好之后那个侧栏一直是拉在主页面的下面,很诡异的问题,就没有用。

在学校时就是为考试复习复习,有空看看电影,再写点别的东西。我准备把那个 hacking《自己动手写操作系统》系列继续写下去,但由于博客页面限制,所以打算将此系列排版成一本 pdf 电子书。LaTeX 的模板已经编辑好了,现在正在为前面已经发布的内容增加图片和更详细的介绍,不知道能不能在回家之前发布第一个 revision,尽力吧。

南京移动推出了定向漫游服务,在定向漫游城市接打电话只需要 5 毛,这就更动摇了我换号的决心。我决定把北京的动感地带卡号卖掉,北京移动太差劲了:资费贵、网站服务不完善、不能异地充值、服务种类少。再说我现在用手机打电话最多的就是给女朋友,北京号到南京了也不好用,干嘛换号啊?所以朋友们注意了:我现在仍然使用的是我三年前开通的南京移动手机号,不要删除哈。

yo2 开通了邮件发文服务,这下我就可以只发一次邮件同时更新我的三个博客了,不错不错!但是我的主博客还是这里哈,欢迎多来逛逛!

Twiki 语法快速指南

最后更新时间:2008年01月14日01点00分

摘要:

这份文档主要给出了一些常用的 TWiki 文章编辑方法。TWiki 是一个广泛使用的开源 wiki 系统,通常被企业和组织用户用来共享知识等。更多介绍请看它的官方站点:http://twiki.org

这只是作者的一份编程笔记,其实与网上早期版本的 TWiki 文档中文翻译有些重复,需要更多内容请查看参考文章和链接。

目录

1. 基本语法
1.1 话题
1.2 标题和段落
1.3 字体
1.4 列表
1.4.1 无序号列表
1.4.2 带序号列表
1.5 表格
1.6 链接
1.6.1 词条链接
1.6.2 外部链接
1.6.3 页面内锚点
1.6.4 图片和附件链接
1.7
图标
2. 页面编辑技巧
3. 参考文章和链接

1. 基本语法

[1.1 话题]

Wiki 的精神就是用词条描述世界,所以 TWiki 也是这样,它内部对内容的管理是用一个一个 WikiWord 来分类的。WikiWord 就是像前面这种两个单词构成的连接在一起的词组,里面大小写交错。

TWiki 的话题(topic)推荐用 WikiWord 来建立,如果用户输入的新话题不是一个 WikiWord,那么建立新话题的按钮就不会被激活。但是 TWiki 允许用户使用非 WikiWord 建立词条,需要手动勾选上允许使用非 WikiWord 建立话题。

[1.2 标题和段落]

1.2.1 标题
TWiki 中可以使用分级标题,分级标题的语法如下:
---+
---++
即在行首三个"-"和一个"+"代表一级标题,三个"-"和两个"+"代表二级标题,以此类推。当用户使用规范的标题记号建立好话题之后,可以很方便地使用"%TOC%"标记建立一个标题目录。如果用户不想某个标题被包含,只需要在标记标记后加上两个感叹号"!!",比如:

---+!! 目录
%TOC%
这样目录这个标题就不会包含在自动建立的目录里。

1.2.2 段落
TWiki 的段落分隔和 LaTeX 有点儿类似,段落之间需要空一行。如果想输入不被 TWiki 格式化的原始文字(比如源程序等),需要用标签将这些段落包起来,主要有以下两种标签:
<verbatim></verbatim>
<pre></pre>

区别是 <verbatim></verbatim> 中间的代码以完全原始方式显示,<pre></pre> 中某些 HTML 标签依然起作用。

[1.3 字体和分隔线]

1.3.1 字体
TWiki 使用字体的方式比较像 HTML 的标签,就是在字符串两头加上某些标记。比如:
*Bold Font* 粗体
_Italic Font_ 斜体
__Bold Italic__ 粗斜体
=Fixed Font= 等宽字符
==Bold Fixed Font== 等宽粗体字符
最最需要注意的一点是:这些标记"*_="必须内侧与文字相连,外侧为空格,标记之间也不得有空格。

1.3.2 分割线
TWiki 的分割线是在行首输入连续的多于三个的减号"-",例如
----

[1.4 列表]

1.4.1 无序号列表
无序号列表的格式是:
*
*
即三个空格加"*"所进一层,六个空格加"*"缩进第二层,以此类推。

1.4.2 带序号列表
带序号列表的格式是:
1.
1.
即三个空格加"1"所进一层,六个空格加"1"缩进第二层,以此类推。注意,这里的"1"代表用阿拉伯数字编号列表,其它编号方式有"A"或"a"大小写字母标号,"I"或"i"大小写罗马字母编号。

注意:这里后面的小数点可要可不要,可以一直使用"1"编号,也可用"1,2,3"递增编号,效果无区别。

[1.5 表格]

表格的建立是用竖线"|"分隔,比如:
|T1|T2|T3|
|A1|A2|A3|
就建立了一个两行三列的列表。单元格内部的左右对齐是利用和竖线的距离实现的。

[1.6 链接]

1.6.1 词条链接
如果是规范的多词 WikiWord 话题,可以使用双方括号直接括起来,例如:[[my wiki topic]]就会直接引用 MyWikiTopic 词条;如果是非规范话题,或者引用说明和引用话题不一样,需要使用引用与说明分开的格式,例如:[[MyWikiTopic][my WIKI topic]]。

1.6.2 外部链接
外部链接可以直接使用类似与词条链接的方式来引用,例如:[[
http://blog.solrex.org][Solrex
的博客]] 。

1.6.3 页面内锚点
在页面内可以定义锚点,这样可以使用链接在页面内跳来跳去。定义锚点的方法是在行首使用 #WikiWord,例如:
#FootNote Footnote is....
就定义了一个到该段的锚点。引用锚点和词条链接的方式也类似,例如:[[#FootNote][to footnote]]。如果引用别的页面的锚点,只需要在锚点前面加上该页面的话题名,例如:[[MyWikiTopic#FootNote][to another footnote]]。

1.6.4 图片和附件链接
如果引用在同一页面的附件或者图片(其实一般图片也是附件),链接的格式为:%ATTACHURL%/filename.extesion,比如:%ATTACHURL%/about.pdf;引用在不同页面的链接,需要在文件名前面加上该页面主题的名字,比如:%PUBURL%/%WEB%/MyWikiTopic/about.pdf

[1.7 图标]

TWiki 预定义了很多图标,直接在文中就可以使用,比如帮助的小 i 图标是:%H%,update 的图标是:%U%,new 的图标是:%N%。合理使用这些图标能增强文章的可读性。

2. 页面编辑技巧

[1] 建立话题时合理分级,有规律地规划父话题和子话题关系。
[2] 处理重复话题时使用 %INCLUDE{"XXX"}% 来包含已有的话题,比如我已经有了 PersonalComputer 话题,在建立 PC 话题时候,就应该直接在页面中使用 %INCLUDE{"PersonalComputer"}% 来避免冗余。
[3] 使用%TOC%自动创建目录:当编辑一篇比较长的文章时,建议使用标题标记建立分级标题,最后使用 %TOC% 在上方建立一个可索引目录。

[4] 合理使用字体和图标增加可读性。
[5] 合理使用 HTML 代码来加强页面排版功能。TWiki 可以直接支持 HTML 代码,为了格式的统一,一般不建议直接使用 HTML。但有些页面排版过于复杂,使用 HTML 可以直接达到要求。
[6] 使用注释的技巧:TWiki 没有装 footnote 插件时候是不支持注释链接的,但是可以通过一些技巧来实现。我们可以先在注释或者引用列表前建立一个锚点:
#FootNote

---+ Footnotes
1 aaa
1 bbb
当文中内容需要注释时,使用 HTML 和 TWiki 链接一起加一个上脚标:aaa<sup>[[[#FootNote][1]]]</sup>,这样 aaa 的右上角就可以出现一个方括号,里面是带到脚注链接的脚注编号 "1"。

3. 参考文章和链接

[1] 早期版本 TWiki 语法格式的中文翻译:
http://www.stlchina.org/twiki/bin/view.pl/TWiki/TextFormattingRules
[2] TWiki 官方语法文档:
http://twiki.org/cgi-bin/view/TWiki/TextFormattingRules

:tag: Wiki,TWiki

Cool IPv6

中科院通了 IPv6 试验网,现在我们可以用 IPv6 网络看免费的高速网络电视,将近四十个台。还可以用 IPv6 打免费电话,固定电话有点儿杂音,效果还不错,手机貌似不好打。最重要的是,连流量费都不算,哈哈!!!

希望免费的午餐持续时间越长越好!*_*

Year Beijing Olympics Problem

大概是我的域名服务商的服务器发生了问题,2007 年 12 月 31 日那天我所有的域名记录都被清空,导致我的 solrex.cn 以及以下的所有子域名都无法解析到 IP 地址,今天偶尔上网查看我的 Google Analytics 才发现这个问题,刚刚才又一一添加上去,也不知道忘记哪个了没。

yo2.cn 升级 WordPress 博客程序,原有更改后的模板也无法使用,只得先暂时使用官方模板,真烦,把速度整快点儿不行吗?升什么级啊!我回北京后得把模板改回到备份模板,然后把 feedsky 订阅改成我自己网站上的图片,这 feedsky 明明在国内为什么在教育网访问图片和 javascript 就是打不开呢?整个首页在 feedsky 订阅那被卡得死死地,faint!

女人不可信,兄弟不可信,组织不可信,服务商更不可信!

南京这些天真冷,没有暖气,又潮,没有太阳的时候跟冰窖似的。看着天气要回暖了,我却要回北京了。之所以现在才发现访问问题也是因为好多天没想起来写了,女朋友在身边谁想跟电脑作伴呢?这两个星期过得挺不错的,很开心,就是住得没有青年公寓爽!^_^ 不过没办法,还是要回去了,7 号晚上的 T66。

我的一些关于盗版的观点

前段时间我写了篇 扔掉你 Windows 操作系统中的盗版软件吧 的博客文章,那是因为我不得不使用 Windows 下的 QQ 来和我女友进行视频聊天,而我又不想在我的系统中再次塞满盗版软件,所以就尝试着完全使用免费软件来工作,结果我发现效果还很好。不使用盗版软件并没有影响我的工作,有时候反而能促进我的工作效率,所以我想打破“使用 Windows(正版) => 不得不使用盗版软件工作”这种神话。

我并不是一个无条件反对使用盗版的人。我认为版权保护的目的就是为了促进人类知识和智慧的发展,就像林肯说的那句话:The patent system added the fuel of interest to the fire of genius. (专利制度是为了用利益燃料来浇灌天才之火。) 而在当前的某些状况下,版权保护体系其实是在实现某些团体的利益,而阻碍了人类知识和智慧的发展。因为有很多后发国家,有很多落后社会,版权保护体系在它们和先进国家之间划分了一道巨大的数字鸿沟。从某种意义上来讲,这有点像垄断组织对资源的控制和对其它后起企业的挤压一样,虽然垄断组织也是从自由竞争中发展起来的,但是当它成为阻碍市场发展的力量时,它就应该被拆散。

所以说,我不反对“贫困却希望享有平等获得信息权利”的盗版行为(比如盗版音乐、电影、书籍),我也不反对“由需要而只能使用无法替代的应用”的盗版行为,但是我反对“了解到有替代的东西而不去使用它”的盗版行为,更反对“知道这一切却我行我素并不以使用盗版为耻”的盗版行为。总的来说我的观点是:如果一个人使用盗版,必须感到抱歉,认识到这是一种违法行为;如果某种东西无法替代,为了自身的发展,可以在很抱歉的情况下来使用它;如果某种东西可以替代,那么就应该采取行动避免使用盗版。

关于盗版不仅仅是道德层面的问题,还有一些其它的影响。这些警钟已经被敲过很多遍了,就比如关于 Windows:微软的新操作系统 Vista 引入了一些 DRM(Digital Right Management)的新特性,微软喜欢把这种概念叫做“可信计算”,有一个计划叫做“palladium”,后来改名叫做“NGSCB(下一代安全计算基础,Next Generation Secure Computing Base)”,意思是为了用户安全。但是关于这个说法,Richard Stallman 的一句话 说的很正确:

When Microsoft speaks of “security” in connection with palladium, they do not mean what we normally mean by that word: protecting your machine From things you do not want. They mean protecting your copies of data on your machine From access by you in ways others do not want.(当微软提到和 palladium 有关的“安全”时,它的意思不是我们所说的“安全”的通常意义:“保护你的机器,不做你不想做的事情”。他们的意思是:“保护你机器中的数据拷贝,在他人(和微软相关的企业或者组织)不允许的情况下,你不得访问。”)

那么这个的实际意义就是:你在 Windows 下用 QQ,不是你觉得“我相信 QQ,我要用。”你才能用,而是需要 Windows 说“我相信 QQ,你能用!”,你才能用。这才是可信计算的真正意思,可信计算组织要控制你访问自己系统资源的能力,所以不要相信什么带有安全芯片的笔记本电脑,那个安全和你的安全是不一样的。况且,任何国家生产的安全芯片,都是需要加入某些国家安全部门产品的。

这些大公司大企业(就是你正在侵犯他们版权的那些企业)并没有那么慷慨,盗版的代价迟早是要付出的。他们所做的是让你先陷入盗版的深渊,然后再剥夺你的自由权利,最终获取更大的控制权和更多的利益。Trusted computing 就是其中的一步,当每台电脑都被微软强制安上安全芯片后(这可能是由盗版用户的市场贡献给微软带来的特权),恐怕你运行自己写的程序也要先给微软发封电子邮件以得到许可了。

那么如何避免这种现象的发生呢?只需要提几个问题你就明白了:如果 Linux 占桌面市场操作系统份额 50% 以上,微软会/能这样做吗?如果 Loongson(龙芯) 在中国个人电脑芯片市场占统治地位,Intel 会/能这样做吗?如果世界前 10 名高性能计算机中 Lenovo 占一半以上,IBM 会/能这样做吗?

所以不使用盗版软件,也是你为后代人做的贡献,恐怕你不想听到你的孙子问你:“爷爷,为什么我爸爸要花掉收入的一半去买操作系统和其它软件的授权呢?”

扔掉你 Windows 中的盗版软件吧

——Windows 下常用盗版软件的替代免费软件列表

最后更新时间:2009年8月30日

本文不是一篇对开源软件或者 Linux 的宣传,本文仅仅针对那些在 Windows 下不愿意使用盗版软件,和不能忍耐寻找盗版软件注册码、注册机带来的麻烦的用户。本文的主要内容就是介绍一些用来替代 Windows 下流行盗版软件的开源和免费软件。请注意替代的免费软件并不一定比流行的盗版软件功能差,很多甚至比商业软件还要好。

当您看完这篇文章,我相信您完全可以把您 Windows 系统里安装的盗版软件清理干净而不影响您的任何工作。如果您仍然希望并且喜欢、享受做一个盗版软件用户的话,那也没有办法,但是请您记住,非常非常重要的一点:您已经不是一个历史清白的人,因为一打开电脑,您就在犯罪(侵犯知识产权,侵犯软件版权)。以后像“我是一个遵纪守法的好公民”这种话,想想再说吧!

目录:

1. 压缩解压缩软件
2. 文本编辑软件
3. 杀毒软件
4. 软件防火墙
5. 辞典软件
6. FTP 下载工具
7. 邮件客户端 & RSS 阅读器
8. 办公软件
9. 图片查看器
10. 集成开发环境
11. C/CPP 编译器
12. 科技文献排版
13. 图片编辑软件
14. 远程登录软件
15. 统计计算软件
16. 数学计算软件
17. 反汇编软件
18. 参考文献管理
19. 影音播放
20. 刻录工具

内容:

1. 压缩解压缩软件
流行盗版软件:WinRAR
替代开源软件:7-Zip http://www.7-zip.org

7-Zip 在 2007 年被 SourceForge 网站评为社区选择最佳项目奖,最佳技术设计奖。7-Zip 可以说是能完美替换 WinRAR(甚至更好),它可以解压所有流行压缩格式的压缩文件,可以解压或压缩 7z, ZIP, GZIP, BZIP2 和 TAR 压缩文件格式。注意,7-Zip 不可压缩为 rar 文件格式,这样做有版权问题。

2. 文本编辑软件
流行盗版软件:UltraEdit
替代开源软件:Notepad++ http://notepad-plus.sourceforge.net
文本比较软件:WinMerge http://winmerge.org

相信用过 UltraEdit 的人都会赞不绝口,因为它强大的语法高亮,十六进制编辑,文件对比等等功能令人爱不释手,但是可以的是,它是一个收费软件。那么开源社区有没有相应的替代品呢,答案是肯定的,Notepad++ 一定不会让你失望。更强大的语法高亮,更具扩展性的插件,除了文件对比功能还比不上 UE,我真的是挑不出来一点儿毛病,这篇文章就是在 Notepad++ 中写的,赶快去下载一个尝试一把吧。而且 Notepad++ 还带有很多插件,如果你的 Notepad++ 带有 Nppexec 插件,那么你就可以在 Notepad++ 中打开一个类似于命令行的窗口,想想用这个写 Latex 文档多爽吧,在侧栏中直接输入 latex xx.tex 就可以直接调用 latex 进行编译了,这总比打开一个新的命令行窗口要省事多了吧。

感谢 bbbush 推荐的开源软件 WinMerge,这是一个强大的文本比较和整合工具。

3. 杀毒软件
流行杀毒软件:Kaspersky, Norton, NOD32, Rising 等等太多了
替代开源软件:ClamWin http://www.clamwin.com
替代免费软件:AVG http://free.grisoft.com
替代免费软件:Avira AntiVir Personal http://www.free-av.com
替代免费软件:Avast Home Edition http://www.avast.com

相信大家对病毒都一直很头痛,杀毒软件这个东西,平常用不着,真到用着时候却发现起不了啥作用。上面推荐的杀毒软件中,第一款是开源软件,所以功能稍微弱一些,后面三款都是有商业公司支持的,包括收费版和个人用户免费版两种,所以软件的质量还是可以保证的。感谢 Abcx 推荐 Avira AntiVir. 我个人比较推荐 Avast,功能真的很强大,不比某些软件的商业版本少什么东西。

4. 软件防火墙
流行盗版软件:ZoneAlarm, 天网,瑞星 等等也太多了
替代免费软件:COMODO Firewall Pro http://www.personalfirewall.comodo.com

如果说 COMODO Firewall Pro 是“完美替代”瑞星防火墙,我都觉得侮辱它了。COMODO Firewall Pro 曾获得 Web User 杂志 2007 年金奖,它不仅仅是一个防火墙,而且还可以监视系统文件的更改,它监视文件范围之广泛简直都让我崩溃了,总之它是一个防火墙,但是包含了一些杀毒软件才有的功能,至于它的强大,用了才知道。用 COMODO Firewall Pro 和 Avast 可以帮你打造一个不逊于任何杀毒软件和防火墙组合的安全系统。COMODO 在 2009 后将杀毒功能也引入了防火墙功能中,它的安全套件目前显得比较臃肿,已经不太适合追求简约的用户使用了。

5. 辞典软件
流行盗版软件:金山词霸
替代开源软件:StarDict(星际译王) http://stardict.sourceforge.net
替代免费软件:灵格斯词霸 http://www.lingoes.cn
替代免费软件:谷歌金山词霸合作版 http://g.ciba.com

如果你用过 StarDict,我相信你不会再夸金山词霸好。StarDict 可以自定义辞典库,仅仅中英互译辞典你就有二十多种选择(其中包含金山词霸的辞典库哎),还有其它很多语言的辞典库,而且翻译中有很好玩的词义发散树。为什么它叫译王呢?因为它还有全文翻译功能,动心了吧,把金山词霸删了吧,换 StarDict,我保证你不会失望。

感谢 SteamedFish 推荐灵格斯词霸,这也是一款相当不错的辞典软件,尤其适合 Windows 下的用户习惯。灵格斯和星际译王最大的问题是没有解决好辞典的 license 问题,尤其是灵格斯词霸,这是它以后发展的隐忧。

2008年5月 Google 联合金山公司推出谷歌金山词霸合作版,虽然自带辞典少了点儿,但是有在线辞典功能。也许你想尝试一把!

6. FTP 下载工具
流行盗版软件:FlashFXP
替代开源软件:FileZilla http://filezilla-project.org
替代免费软件:UltraFXP http://www.click-now.net/html/UltraFXP.htm

FTP 下载工具,其实这个东西没什么讲头,大家用起来都差不多,只是换一个软件换一个使用方式而已。窗口布局,菜单内容变一变,基本功能都没差别。世事真的很多变,我以前强烈推荐 SmartFTP 在 2008 年 7 月全面转向了收费软件,这件事让我很伤心,因为这个软件我用的很舒服,sigh!不过幸好我们有开源软件 FileZilla,FileZilla 也支持 IPV6 协议以及使用代理服务器,唯一有点儿不舒服的是它的窗口分布有点儿乱,不过相信会很容易适应的。

7. 邮件客户端 & RSS 阅读器
流行盗版软件:Outlook, FeedDemon
替代开源软件:ThunderBird http://www.mozilla.com/thunderbird

ThunderBird,其实算是 Firefox 的兄弟,两者同是 mozilla 的开源项目。要说邮件客户端,ThunderBird 可能不是最优秀的,但是要说邮件客户端 + RSS 阅读器,恐怕直接支持两者的不太多吧。我之所以用它有一个很重要的理由,ThunderBird 是一款跨平台的阅读器,这样我就不用在 Windows 下和 Linux 下分别设置两次邮件客户端了,只需要把一个平台下的数据文件拷贝到另一平台下,就完全可以使用了。

8. 办公软件
流行盗版软件:MS Office
替代开源软件:OpenOffice http://www.openoffice.org
替代开源软件:AbiWord http://www.abisource.com
替代免费软件:WPS Office 2007 个人版http://www.wps.com.cn
替代免费软件:永中 Office 2009 个人版http://www.evermoresw.com/webch/product/personal.jsp

MS Office 我就不说了,有几个人不是盗版?正版 Office 2007 可是最便宜 400 多美元一套呢!用微软的口吻来说,您可是每年给微软带来好几百美元的直接经济损失啊(再加上Visual Studio, Windows 呢,上千美元了吧)!OpenOffice 现在虽然不敢说完美支持 MS Office 文档,但至少大部分兼容是没有问题的,而且 OpenOffice 文档可以直接保存成多种文件格式,像小气的微软在 2007 里还需要安装插件支持输出 pdf,太吝啬了吧。所以呢,OpenOffice 给你提供了替换 MS Office 的绝大部分功能,为什么还做一个盗版者呢?下载一个吧,至少可以当作一个 pdf 转换工具,要知道低于 2007 的 MS Office 可必须得安装 Adobe Acrobat 才能实现转换 pdf 功能,sigh,又是一个盗版软件!

对于中文用户,在这里我特别推荐金山公司的 WPS Office 套装个人版,对 MS Office 文档的支持到让人吃惊的地步,也没有 OpenOffice 一些启动速度慢等一些问题,非常适合一般用户使用;永中 Office 也在 2008 年 10 月 13 日宣布了个人版免费这一令人振奋的消息,这一消息使得 Linux 用户们有福了,因为永中不仅有 Windows 版,也有 Linux 版,对中文的支持要比 OpenOffice 好很多。但是从测试效果来看,Linux 版本对文档字体兼容性不如 Windows 下的 WPS,不知道 Windows 下的永中表现怎么样。

9. 图片查看器
流行盗版软件:ACDSee
替代开源软件:IrfanView http://www.irfanview.com

其实我对图片浏览软件并不感冒,因为 GFans 都是用 Picasa 嘛!但是看到很多人用 ACDSee 就让我很不爽,IrfanView 挺好的啊,而且速度更快。note:第一次看到有人用 IrfanView,是西门子公司 PSE 的工程师演示流程图。

10. 集成开发环境
流行盗版软件:MS Visual Studio, Intel C++, Turbo C, Delphi
替代开源软件:Eclipse(Almost Every Language) http://www.eclipse.org
替代开源软件:Code::Blocks (Only C/C++) http://www.codeblocks.org/
替代开源软件:NetBeans (Only JAVA) http://www.netbeans.org

如果你是个程序员,还没听说过 Eclipse?太老土了吧。先别说 eclipse 好不好,就拿现在大部分软件公司(尤其是JAVA软件开发公司)都在用 eclipse 来说,你也应该使用它。别给我说 Visual Studio 更顺手,我宁愿用 Notepad++ 写代码再调用命令行编译也不愿意用 Visual Studio 的代码编辑器(当然我这里指 Visual Studio 6.0,俺太土,就用过古董)。Eclipse 强大的插件功能,代码管理功能,自动补全功能,支持多种程序语言...好处我就不列举了(因为我发现自己总是经常不经意发现 Eclipse 的优点,点点惊喜太多了),自己用吧。

但是 Eclipse 最大的缺点就是“慢”!Code::Blocks 作为一个跨平台的 IDE,在速度上要比 Eclipse 好上很多。Code::Blocks 某些版本自带 C/C++ 编译器,如果您是个 C++ Programmer,您可以选择 Code::Blocks。

11. C/C++ 编译器
流行盗版软件:MS Visual Studio, Turbo C
替代开源软件:DevC++ http://www.bloodshed.net/devcpp.html

其实这个真的不好说,我没用过 DevC++,因为我基本上不在 windows 下写 C 代码了。但是 DevC++ 的编译器基础 GCC,我是太经常用了,我不相信你没听说过它,所以我就不解释了。为了写一段 hello world 满世界找注册码,找盗版光盘,值得吗?而且 VC6 对 C++ 标准的实现那么差,而 VS2003 以上动辄几个 G 的大小,相比而言 DevC++ 要比它们好很多。

12. 科技文献排版
流行盗版软件:MS Word
你应该使用的开源软件:LaTeX http://www.latex-project.org
中文 TeX 套装:CTeX http://www.ctex.org

如果我说 LaTex 是 MS Word 的替代软件,肯定有人会骂我:“有没有搞错?MS Word 能算科技文献排版软件?”所以对于那些习惯于用 word + Mathtype(哦,又是一个盗版软件!)写论文的同学,温习一下 LaTeX 的历史吧。你可以仔细看一下下载的 ieee, acm 论文,pdf 文件请看属性,有多少是用 word 的 adobe acrobat 插件生成的?又有多少是 TeX 相关程序或者 dvi, ghostscript 转化成的?当然了,中文的垃圾杂志就不要看了。如果是写中文文章,你可以更欢迎 CTeX 这一省去很多中文配置的套装,学了 LaTeX 你就会知道,什么叫做漂亮的科技文献排版!

13. 图片编辑软件
流行盗版软件:Photoshop
替代免费软件:Paint.net http://www.getpaint.net
替代开源软件:Gimp http://www.gimp.org

用 Linux 的人对 Gimp 不陌生,这是 Linux 下标准的图片编辑程序,这里指其 Windows 版本,Gimp 功能非常强大,但是编辑方式和习惯与 Photoshop 有些区别,可能需要稍微长点儿的学习周期。感谢 Cofyc 推荐 Paint.net,Paint.net 是一个更轻量级的图片编辑工具,功能比 Gimp 和 PS 都弱一点儿,但是编辑习惯和 PS 比较相似,用起来较为容易。有人会说,Photoshop 有这个,有那个,它们有吗?但是请问,你是专业的 PSer 吗?如果你是专业的 PSer,为什么不用苹果机再装个 Photoshop 进行处理呢?对于一般非专业人士的使用,我相信上面两款软件提供的功能足够你探索了。

14. 远程登录软件
流行盗版软件:SecureCRT
替代开源软件:Poderosa http://en.poderosa.org/

不喜欢 Putty 的黑色界面和难操作性?又不想使用盗版的 Secure CRT?这里像你隆重推荐终端登陆器 Poderosa,Poderosa 对 Telnet, SSH 各种登录方式均支持,还支持标签窗口,如果你电脑上还安装有 Cygwin,那么别再用那个黑黑的 Cygwin 启动窗口了,Poderosa 内建有对本地 Cygwin Shell 的支持,而且,Poderosa 支持插件扩展哦,你可以自己为它设置更多功能。

15. 统计计算软件
流行盗版软件:SAS
替代开源软件:R http://www.r-project.org/

大概学统计的学生都会很头痛使用什么软件做统计计算,SAS 那庞大的体积让人望而生畏,再加上用它的人不多,注册码和破解版也非常难找。其实你不必担心,R 软件在统计学领域的使用范围绝对要比 SAS 要广,因为不是每个教授都有钱买正版的 SAS 的,而且基于 R 开发的软件包也是多如牛毛,相信你一定能找到你需要的函数包,在这点上,SAS 要差一些。

16. 数学计算软件
流行盗版软件:Matlab, Mathematica
替代开源软件:GNU Octave+GNUPlot http://www.gnu.org/software/octave/ + http://www.gnuplot.info

虽然 Matlab 在数学计算领域非常流行,但是它的价钱也太贵了。这里我向您隆重推出 GNU Octave,一款开源数学计算软件,它兼容 Matlab 大部分语法,在它的发行版中您能找到很多 .m 文件,所以也许您写的 .m 文件都可以不加修改地在 Octave 上运行。如果需要画图功能,GNUPlot 会给您提供强大的画图工具支持。

17. 反汇编软件
流行盗版软件:Win32Dasm
替代免费软件:IDA Pro(旧版本) http://www.hex-rays.com/idapro/

其实 IDA Pro 更应该说是流行的盗版软件,但是 IDA Pro 的低版本是个人免费使用的,比如现在可以免费使用 IDA Pro 4.9 版,对于一般用户,旧的版本功能已经“非常非常非常”强大了。

18. 参考文献管理
流行盗版软件:Endnote
替代开源软件:JabRef http://jabref.sourceforge.net/

EndNote 是差不多 Windows 下文献管理的权威软件,某些学校可能会买下来这个软件给学生用。但是总有一些学校没钱,或者用户希望保持文献数据库在 Linux 下和 Windows 下的兼容性,那么 JabRef 可能是你最好的选择,因为 JabRef 使用 JAVA 语言编写,是跨平台的。尤其是对 bibtex 论文数据库的支持上,JabRef 已经相当完美了。

19. 影音播放
流行软件:暴风影音
替代开源软件:SMplayer http://smplayer.sourceforge.net/
替代免费软件:K-Lite Codec Pack http://www.codecguide.com/

其实暴风影音也是免费软件,但是暴风影音做的很多事情实在令人不敢恭维。因此我认为有必要推荐一下一些开源软件。SMplayer 是一个 mplayer 的前端,它将 mplayer 包装得更加用户友好,但是中文用户使用的话,有必要配置一下:字幕编码和文件缓存,否则在加载中文字幕或者高清电影时,会有一些问题。K-Lite Codec Pack 是著名的编解码库,很多播放器包括暴风影音、KMplayer 对媒体文件编解码都是使用的它。K-Lite Codec Pack 自带的 Media Player Classic 是经典的短小精悍型播放器,媒体加载速度极快,但是在控制功能上要少一些。

20. 刻录工具
流行盗版软件:Nero
替代免费软件:Nero Free Version http://www.nero.com/enu/downloads-nero9-free.php

本项内容是最奇怪的,盗版软件也是 Nero,免费软件也是 Nero。主要是因为 2009 年 Nero 推出了 Nero 9 的免费版本。我自己的刻录经验告诉我,很多看似很好的刻录软件都难以让人信任,很容易刻坏盘,而 Nero 是一款我足够信任的软件,它推出的免费版本包括了一般刻录时需要的基本功能,很值得使用。

本人的经验也就写到这里了,如果您有什么想补充的,您可以在本博客最底下的 CC 协议的基础上自由转载、修改或者添加内容。

雪和太阳

前天北京下了 2007 年冬天的第一场雪,不过意思意思就过去了,隔日又是阳光明媚。坐在教室中向外看去,忽然发现窗外的杨树叶子已经干净。印象中前次上课还是满满的绿叶呢,恍惚间觉得冬天才刚刚来到。

昨天上计算机网络课又睡了三个小时,而且梦中还在上课。结果老师说下课的时候,我迷茫机械地从教室走出,脚下直发软,觉得还在梦中,在一楼大厅里坐了一会儿才回味过来是真的下课了。我历来讨厌人多的教室,选的课程里就计算机网络人最多,所以这个也是听课听得最少的一门,也只有这一门课时最多,考得最晚,要到元月 23 号才考试。

圣诞节前会结束掉四门考试,隔一个月再考最后两门,所以南京之行又在计划中了 :-)。准备 26 号到南京,过了元旦假期吧,1 月 6 号左右回北京,多陪 xixi 几天。

现在在网上都不敢随便乱逛了,2G 的流量只够我和女友视频半个月,超过了还得交流量费,只好节省流量只聊天了。所以如果想限制自己上网的同学们,找个人视频吧!哦,那流量不限制的就算了~~~

今天才发现,原来 Ubuntu Linux 下使用摄像头都不用装驱动了,直接用 cheese 之类的视频管理软件打开就可以,真不错。那就意味着可以使用 skype 视频聊天了?有空试试。

推荐 "An Inconvenient Truth"

你真的应该看一看这部纪录片!!!

《难以忽视的真相》(An Inconvenient Truth),美国前副总统阿尔·戈尔(Al Gore)主演的记录片,这是一部讲述全球变暖和环境问题的影片,本影片曾获2006奥斯卡最佳纪录片奖,影片的片尾曲"I Need to Wake Up"获奥斯卡最佳原创音乐奖,影片介绍、评论和公众反应请访问 Wikipedia 相关词条 "An Inconvenient Truth": http://en.wikipedia.org/wiki/An_Inconvenient_Truthhttp://www.climatecrisis.net 为影片的官方宣传网站。

注:被禁止访问 Wikipedia 官方网站的国内用户可以访问国内镜像站点 http://www.mirrorin.com/wiki/ 并搜索相关词条,您也可以关注豆瓣的“维基百科”小组提供的 Wikipedia 镜像站点更新在 http://www.douban.com/group/zhwikipedia/

“难以忽视的真相”大部分内容其实是戈尔曾在世界各地做过的一个演讲,主要关于全球变暖和地球环境问题,影片中列举的例证和做出的预测令我震惊。你可以把它当成一个环保教育课,但是这门课非常非常值得你把自己浪费在浏览垃圾网站的时间匀出来两个小时静静地听完。我第一次感性地认识到阿尔·戈尔的个人风采,假如我是美国公民,看了这部电影之后我可能会投他一票 ^_^

还记得初中和高中的教科书里会经常提到全球变暖和环境问题,那时候的我是把这个问题放在自己的脑海中经常想到的。但自从进了大学之后,再没有人告诉你二氧化碳排放量正在急速上升,两极和高山冰川正在大面积融化,所以似乎这些问题都不存在了,脑子里很少再浮现类似的概念。人就是这样,没有警告就缩在壳里自欺欺人,世界上需要一些振臂高呼的勇士,来唤醒这些盲目的人们!

如果你看到这篇博客,我真的真的非常希望你能找到这部纪录片看一下,电影中文名为:《难以忽视的真相》或者《一个麻烦的真相》,英文名为“An Inconvenient Truth”,主演和唯一主演是阿尔·戈尔,导演是戴维斯·古根海姆(Davis Guggenheim),谢谢!

在 Ubuntu 上部署 Snort 入侵检测系统

最后更新时间:2009年7月1日

摘要:

这份文档主要描述了我在 Ubuntu 7.10 上安装部署 Snort 入侵检测系统和 acid 基于 PHP 的网页入侵检测数据库分析控制台的过程。

目录

1. 介绍
2. 安装过程
3. 总结
4. 参考文章

1. 介绍

Snort 是一款非常优秀的开源主机入侵检测系统软件,可以用来对主机的网络状况进行记录、分析和报警,并且支持用户自定义规则库。Snort 在 Windows 平台和 Linux 平台上均可运行,详细介绍请访问 Snort 的官方网站:http://www.snort.org

Snort的默认记录是存放在 log 文本文件中,而为了观察监控方便起见,一般使用 acidbase 这个网页控制台来查看(好像 MySQL 的 phpmyadmin)。所以整个过程需要:安装 snort 和相应包;安装 LAMP(Linux, Apache, MySQL, PHP) 服务器;在MySQL数据库中建立好Snort数据库并配置 Snort 使其将 log 存放在 MySQL 数据库中;为基于 PHP 的入侵检测数据库分析控制台 (acidbase) 配置好数据库连接。

2. 安装过程

[安装LAMP,Snort和一些软件库]

由于 Ubuntu 是 Debian 系的 Linux,安装软件非常简单,而且 Ubuntu 在中国科技大学有镜像,在教育网和科技网下载速度非常快(2~6M/s),就省掉了出国下载安装包的麻烦,只需要一个命令即可在几十秒钟内安装好所有软件。这里使用 Ubuntu 默认命令行软件包管理器 apt 来进行安装。

$ sudo apt-get install libpcap0.8-dev libmysqlclient15-dev mysql-client-5.0 mysql-server-5.0 bison flex apache2 libapache2-mod-php5 php5-gd php5-mysql libphp-adodb php-pear pcregrep snort snort-rules-default

需要注意的是在安装 MySQL 数据库时会弹出设置 MySQL 根用户口令的界面,临时设置其为“test”。

[在 MySQL 数据库中为 Snort 建立数据库]

Ubuntu 软件仓库中有一个默认的软件包 snort-mysql 提供辅助功能,用软件包管理器下载安装这个软件包。

$ sudo apt-get install snort-mysql

安装好之后查看帮助文档:

$ less /usr/share/doc/snort-mysql/README-database.Debian

根据帮助文档中的指令,在 MySQL 中建立 Snort 的数据库用户和数据库。所使用的命令如下:

$ mysql –u root –p

在提示符处输入上面设置的口令 test

mysql> CREATE DATABASE snort;
mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to snort@localhost;
mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to snort;
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('snort-db');
mysql> exit

以上命令的功能是在 MySQL 数据库中建立一个 snort 数据库,并建立一个 snort 用户来管理这个数据库,设置 snort 用户的口令为 snort-db。

然后根据 README-database.Debian 中的指示建立 snort 数据库的结构。

$ cd /usr/share/doc/snort-mysql
$ zcat create_mysql.gz | mysql -u snort -D snort -psnort-db

这样就为 snort 在 MySQL 中建立了数据库的结构,其中包括各个 snort 需要使用的表。

[设置 snort 把 log 文件输出到 MySQL 数据库中]

修改 Snort 的配置文件:/etc/snort/snort.conf

$ sudo vim /etc/snort/snort.conf

在配置文件中将 HOME_NET 有关项注释掉,然后将 HOME_NET 设置为本机 IP 所在网络,将 EXTERNAL_NET 相关项注释掉,设置其为非本机网络,如下所示:

#var HOME_NET any
var HOME_NET 192.168.0.0/16
#var EXTERNAL_NET any
var EXTERNAL_NET !$HOME_NET

将 output database 相关项注释掉,将日志输出设置到 MySQL 数据库中,如下所示:

output database: log, mysql, user=snort password=snort-db dbname=snort host=localhost
#output database: log, mysql

这样,snort 就不再向 /var/log/snort 目录下的文件写记录了,转而将记录存放在 MySQL 的snort数据库中。这时候可以测试一下 Snort 工作是否正常:

$ sudo snort -c /etc/snort/snort.conf

如果出现一个用 ASCII 字符画出的小猪,那么 Snort 工作就正常了,可以使用 Ctrl-C 退出;如果 Snort 异常退出,就需要查明以上配置的正确性了。

[测试 Web 服务器 Apache 和 PHP 是否工作正常]

配置 apache 的 php 模块,添加 msql 和 gd 的扩展。

$ sudo vim /etc/php5/apache2/php.ini
extension=msql.so
extension=gd.so

重新启动 apache

$ /etc/init.d/apache2 restart

在/var/www/目录下新建一个文本文件test.php

$ sudo vim /var/www/test.php

输入内容:

<?php
phpinfo();
?>

然后在浏览器中输入 http://localhost/test.php,如果配置正确的话,就会出现 PHP INFO 的经典界面,就标志着 LAMP 工作正常。

[安装和配置 acid-base]

安装 acid-base 很简单,使用 Ubuntu 软件包管理器下载安装即可:

$ sudo apt-get install acidbase

安装过程中需要输入 acidbase 选择使用的数据库,这里选 MySQL,根用户口令 test,和 acid-base 的口令(貌似也可以跳过不设置)。

将acidbase从安装目录中拷贝到www目录中,也可以直接在apache中建立一个虚拟目录指向安装目录,这里拷贝过来主要是为了安全性考虑。

sudo cp –R /usr/share/acidbase/ /var/www/

因为 acidbase 目录下的 base_conf.php 原本是一个符号链接指向 /etc/acidbase/ 下的base_conf.php,为了保证权限可控制,我们要删除这个链接并新建 base_conf.php 文件。

$ rm base_conf.php
$ touch base_conf.php

暂时将 /var/www/acidbase/ 目录权限改为所有人可写,主要是为了配置 acidbase 所用。

$ sudo chmod 757 acidbase/

现在就可以开始配置 acid-base 了,在浏览器地址栏中输入 http://localhost/acidbase,就会转入安装界面,然后就点击 continue 一步步地进行安装:

选择语言为 english,adodb 的路径为:/usr/share/php/adodb;选择数据库为 MySQL,数据库名为 snort,数据库主机为 localhost,数据库用户名为 snort 的口令为 snort-db;设置 acidbase 系统管理员用户名和口令,设置系统管理员用户名为 admin,口令为 test。然后一路继续下去,就能安装完成了。

安装完成后就可以进入登录界面,输入用户名和口令,进入 acidbase 系统。

这里需要将 acidbase 目录的权限改回去以确保安全性,然后在后台启动 snort,就表明 snort 入侵检测系统的安装完成并正常启动了:

$ sudo chmod 775 acidbase/
$ sudo snort -c /etc/snort/snort.conf -i eth0 –D

[检查入侵检测系统工作状况,更改入侵检测规则]

正常情况下在一个不安全的网络中,登录 acidbase 后一会儿就能发现网络攻击。如果没有发现网络攻击,可以添加更严格的规则使得正常的网络连接也可能被报攻击,以测试 Snort IDS 的工作正确性,比如在 /etc/snort/rules/web-misc.rules 的最后添加下面的话:

$ sudo vi /etc/snort/rules/web-misc.rules
alert tcp any :1024 -> $HTTP_SERVER 500:

这一行的意思是:对从任何地址小于 1024 端口向本机 500 以上端口发送的 tcp 数据包都报警。杀死 Snort 的后台进程并重新启动,就应该能检测到正常的包也被当作攻击了。

$ sudo kill `pgrep snort`
$ sudo snort –c /etc/snort/snort.conf –i eth0 -D

3. 总结

使用 Ubuntu 部署 Snort 入侵检测系统和网页控制台是相当容易的,因为 Ubuntu 提供了很方便的软件包安装功能,只是有时候定制性能太差,需要用户手动去寻找软件包的安装位置。

4. 参考文章
http://www.howtoforge.com/intrusion-detection-with-snort-mysql-apache2-on-ubuntu-7.10

生日倒计时

最近没什么写字的欲望,上上课,上上班,看看书,晚上回去和女友视频一会儿,日子过得挺轻松自在的。唯一比较痛苦的是考试的临近,已经定下十二月有四门课考试,不过,早考早超生 :-)。

由于 yo2 在调整服务器(鬼知道在怎么调整),我的 WordPress 博客间歇性地抽风,要么完全访问不了,要么从 500 到 504 的错误轮着来,没办法只能耐心地多刷新几次。今天更好,貌似 css 样式单没了,侧栏直接挂中心栏上了,快点调整完吧!

昨天心血来潮想给女友做个生日倒计时,Google 搜一下没找到合适的,不过一想用 Javascript 应该很简单,就自己写了一个,放到了我的 WordPress 博客侧栏最下方。下面是源代码,可以插入到支持 Javascript 的博客侧栏中,比如 Blogspot 或者自己用开源 WordPress 建的博客。

<div id="counter" style="padding: 5px 0px 0px 0px; background:
url(图片地址) no-repeat scroll 0%;  width: 200px; height: 130px; text-align: center; font-family: Georgia;
font-size: 14px; font-weight: normal;">
<a href="http://blog.solrex.org/articles/birthday-counter.html" style="color: #FF6600;">
<script type="text/javascript">
var today = new Date();
var birthday = new Date(today.getFullYear(), 生日月份-1, 生日日期);
var diff = birthday - today;
var greeting = "距离 某人 生日还有";
if (diff <= 0 && diff >= -86400000){
  greeting = "今天是 某人 的生日!<br />祝 某人 生日快乐!";
} else {
  if (diff < 0) {
   birthday = new Date(today.getFullYear()+1, 生日月份-1生日日期);
   diff = birthday - today;
  }
  greeting += Math.ceil(diff/86400000);
  greeting += "天";
}
document.write(greeting);
</script></a></div>

其实代码很简单,而且 Javascript 使用用户计算资源,不用加重服务器负担。唉,本来还想使用 Javascript 调整一下 div 的 css 样式可以支持每个月更换图片呢,只是好久没写过 web 程序了,老做不对,又没有个顺手的 JS 调试器,只好作罢 :-)。

PS: 今天买了一个据说是工包的森海塞尔 MX500 耳机,35RMB还送卷线盒,买过来后对着网上的的辨别真伪教程对比了半天(除了没拆开),分辨不出来真假。听了一下,就我这样的耳朵,居然觉得比 M6 带的据魅族官方说质量相当于MX500 的 PT850 声音效果还要好,中国人造假的能力真彪悍。

魅族 PT850 的设计是绝对有问题的:一是白色的耳机线不够柔软,弹性太好,黑色的稍微好些;二是耳机插头的根部内导线太容易断了,网上 n 多人抱怨,据说是魅族为了促销它的配件故意做成这样的。我第一根 PT850 只用了两个月,现在用的这根只好专门用胶带把插头根部缠上,不然估计里面也早断了;三是佩戴很不舒适,尤其是我这种耳朵眼小的,虽然看起来很好看。

电脑宅男

周杰伦出的新专辑“我很忙”中有一首“阳光宅男”,我就此歌名咨询了某资深动漫迷,得到的答案是:“宅男”,痴迷于某种东西而与他人隔离的族群,宅就是家的意思,指老呆在家中不出门。于是我回到宿舍,对着坐在电脑前的室友说:“电脑宅男同志,你好!”

在网上随便搜索了一下和自己有关的关键字,点点那些知道或不知道的链接,看看那些文字,有些是感动,有些是惊讶,总之都很有意思。比如我早先对龙芯的几句闲话被一个龙芯爱好者编辑的电子杂志“龙讯“作为评论引用上去,还有一些技术文章被别的网站或者博客引用,看到别人引用我的文章我是很开心的,因为那说明自己的文字没有白写。但是还有更好玩的是有人会从我的博客文章中截取一部分,然后换个标题作为自己的文章,这充分说明了我通常博客标题的辞不达意 :-)。无意中还搜索到了于洋师兄以前送我的几句话:

老弟此去京城,鹏鹤万里。京畿高朋如云,藏龙卧虎,胜江南一隅百倍,然旧友故人,心随君万里,亲切切而意期期,愿吾弟居京城得演天下,处翰院以震寰宇。此情依依,折柳依依,善自珍重。

这些值得纪念的文字,有趣的或者感动的,平时隐藏在互联网的某些角落里,搜索引擎就像考古学家一样,把它们翻出来放在博物馆里,当无意间走过那橱窗前时,会看到那闪光的历史。它告诉路过的人们,你已经陷进互联网很深了。

我在小百合的签名档里写:“珍惜时间,远离百合”,就是想告诫自己要远离网络。有那么容易吗?一个儿子,可能同时也是一个父亲;一个现实生活中的人,也有在网络中的身份。而且现实和虚拟的两种身份可能变得重合,或者同等重要。互联网上有很多我很欣赏的人,对我来说只是一个 ID 而已,我对他们的了解只是一篇篇漂亮的文字;而同样我相信,对于某些人来说,Solrex 比“杨文博”更具有明确的意义。

互联网本来应该只是人类社会活动的延续,但是它有太多的内容让人沉浸其中,反而忽略了真实的社会活动。那么以后打招呼的时候就需要说:电脑宅男们,你们好!

使用最新 ALSA 驱动解决 Ubuntu Linux Intel 集成声卡问题

目前用户所抱怨的 Ubuntu 系列的声卡问题,基本上归结为几类:一,找不到声音设备;二,不发声;三,耳机和音箱同时发声;四、话筒没声。大部分这种问题都是由笔记本上 Intel 集成声卡驱动引起的,关于这个问题的具体描述和解决方案,可以查看下面两个页面:

BUG:
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/131133

SOLUTION:
https://wiki.ubuntu.com/Gutsy_Intel_HD_Audio_Controller

其实大部分问题都可以通过自己动手编译安装最新 ALSA 驱动解决,解决方法上面两个链接中已经解释得很清楚了,我这里介绍一下我的思路:

第一,查看 ALSA 版本,如果最新,就不用重新安装了,仔细查看一下配置吧。

$ alsactl -v

如果打印出: alsactl version 1.0.20,那么 ALSA 已经是最新了。

第二,在 ALSA 官方网站 http://www.alsa-project.org 上,下载最新的 ALSA 驱动,怎么解压我就不说了吧。

$ wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.20.tar.bz2
$ wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.20.tar.bz2
$ wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.20.tar.bz2

第三,查看自己的内核版本和声卡解码芯片是否被支持。
查看支持的内核版本

$ less alsa-driver-1.0.15/SUPPORTED_KERNELS

查看自己声卡解码芯片(如果系统不能识别声卡,可能无法由下面两个查到,那么查看你电脑配置单吧)

$ tail -2 /proc/asound/oss/sndstat

$ head -1 /proc/asound/card0/codec#0

比如我的 DELL D630 就显示的是下面这个

Codec: SigmaTel STAC9205

在 alsa-driver-1.0.20/sound/Documentation/ALSA-Configuration.txt 中查找自己声卡解码芯片对应的 model 名字,比如我的 STAC9205 对应的就是:

STAC9205/9254
ref Reference board
dell-m42 Dell (unknown)
dell-m43 Dell Precision
dell-m44 Dell Inspiron

如果存在对应的 model,恭喜你可以继续安装了。

第四,准备好编译环境,安装 gcc, libc 等等工具,还需要下载 Linux header,这是编译 ALSA 驱动必须的。

$ sudo apt-get install build-essential linux-headers-2.x.xx-xx(你的内核版本)

第五,编译安装,一般的 ./configure, make, make install 流程。注意的是驱动编译时候需要 module 名字,就是第三步中找到的 modle 对应的 module 名字,去掉 snd-即可。比如我的 STAC9205 对应的 modle 是 dell-m44,对应的 module 是 snd-hda-intel,那么 configure 时候需要加上 --with-cards=hda-intel。编译安装时遇到问题请仔细阅读源码附带的 INSTALL。

$ cd alsa-driver-1.0.15
$ ./configure --with-cards=MODULE_NAME
$ make
$ sudo make install
$ cd ../alsa-lib-1.0.15
$ ./configure
$ make
$ sudo make install
$ cd ../alsa-utils-1.0.15
$ ./configure
$ make
$ sudo make install

第六,配置 ALSA。
如果以前系统中没有使用 ALSA 驱动,可能需要 alsaconf 来配置,还要将 ALSA 加入内核模块中,我没有经验;
如果系统原来已经有 ALSA 驱动,但是没有识别声卡或者声音驱动有问题。那么理论上只需要在两个地方做改动:

添加 /etc/modprobe.d/sound 文件,内容为:

alias snd-card-0 snd-MODULE_NAME
alias snd-slot-0 snd-MODULE_NAME

比如我的就是:

alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel

在 /etc/modprobe.d/alsa-base 中最后一行添加:

options snd-MODULE_NAME model=MODEL_NAME

比如我的就是:

options snd-hda-intel model=dell-m44

第七,重新启动查看效果,可以使用 alsamixer 调节声音设置。

其它都好,话筒没声
如果您已经安装了 alsa 驱动,话筒没声的问题可以通过设置解决。命令行输入 alsamixer:
1. Digital 那列,设置为 Analog I。
2. 点击 tab 制表键,在第一个 Capture 上点空格,显示出来红色的 "Capture, LR"字样表示选中,并把音量设置为 0。
3. Digital 那列,将音量设置为 67,这样能减少杂音。

由于各种各样的问题,比如 ALSA 驱动重复安装,内核版本,内核模块添加不全等等,本文并不保证能完美解决声卡问题。本人不是声卡驱动专家,本文只是阐述我解决声卡问题的做法,如果您在本文指导下仍然不能解决声卡问题,请您到熟悉的论坛上寻求帮助。请尽量不要发邮件给我,谢谢。

21 岁

历史上的今天:

1986 年 11 月 16 日凌晨,中国河南省东部平原上的一个小乡镇卫生院里诞生了一个男孩儿,那就是我。

今天是我公历 21 周岁生日。按照我喜欢总结和计划的毛病,本该写点儿什么的,但忙碌的一天让我懒得思考,还是算了。

前两天上课时用 M6 看《战争之王(Lord of War)》(我现在只有上课时才有时间看电影),里面有句话太赞了:

You can fight a lot of enemies and survive. But if you fight your biology, you will always lose.

虽然和很多谚语重复,但仍然听得我头皮发麻...