零碎

By , 2008年11月28日 4:49 下午

最近比较累,想要休息一段时间了。订了星期一到三亚的机票,打算先晒几天太阳,等到公司局势明朗一点了再回来。

说起公司,挺让人郁闷的。听说我们公司在银行里的存款还有30亿美元左右,但是我们的市值只有20亿美元了。换句话说,我们这三万多名员工,都是公司的负资产,大概人均价值为负的3000美元多一点吧。裁员6000人的决定已经做出,过些日子我们这些负资产的绝对值还会往上涨一涨。同事们都开玩笑说大家一起凑够20亿美元把公司买下来算了,这样马上就可以净赚10亿美元。

两个星期前终于读完了《The Tao of Physics》。本来想写一点读后感的,但是一直都没有时间。最近在读《西厢记》,真真是好文章 — 说起来都脸红,咱都这么大了,四大名剧竟然一直都没有读过。以前有时间的时候不好好读书,现在想读书了总是觉得时间不够,少壮不努力啊老大徒伤悲。

经济危机的时候你在做什么?这些时间和一些朋友聊了聊,发现好多人都选择去读书 — 不一定是全职,也不一定是图个学位,就是要学点东西。

Linux文件系统学习笔记 (2)

By , 2008年11月26日 9:28 上午

明白了Linux内核的编译和部署过程之后,我们就可以进入文件系统的部分。在进入详细的技术层面之前,我们先简单地熟悉一下操作层面的一些技巧。

将下载到的samplefs.tar.gz解压缩到你的home目录:

cp samplefs.tar.gz ~
cd ~
gunzip samplefs.tar.gz
tar xvf samplefs.tar

编辑Linux内核源代码目录中的fs/Kconfig文件(sudo gedit fs/Kconfig),在if BLOCK语句后面加入下面这些内容:

config SAMPLEFS_FS
tristate “Sample filesystem (EXPERIMENTAL)”
help
Samplefs is a sample filesystem for learning how to build
a simple Linux filesystem

If unsure, say N.

config SAMPLEFS_DEBUG
bool “Additional debugging statements for samplefs”
depends on SAMPLEFS_FS
help
Enabling this option adds a few more debugging routines
to the samplefs code which slightly increases the size of
the samplefs module and can cause additional logging of debug
messages in some error paths, slowing performance. This
option can be turned off unless you are debugging
samplefs problems.  If unsure, say N.

然后运行如下命令:

sudo make menuconfig

用箭头键在菜单中移动,选择File Systems,在Sample filesystem (EXPERIMENTAL)选项前面按M,表示我们要将我们自己的文件系统作为独立编译加载的内核模块,然后存盘退出。

按照Steve的教程编译第一个文件系统模块:

sudo make M=~/samplefs/day1

编译完成后在~/samplefs/day1目录下多了一些文件,其中samplefs.ko就是我们需要的模块文件。我们可以用insmod来加载这个新模块:

sudo insmod ~/samplefs/day1/samplefs.ko

用下面这个命令来看看samplefs模块是否已经被加载:

sudo lsmod | grep fs

用下面这个命令在卸载samplefs模块:

sudo rmmod samplefs

顺便说一下,如果你的Linux内核是使用MODVERSIONS=1参数编译的,那么你在编译samplefs模块的时候需要加上同样的参数,也就是:

sudo make MODVEFRSIONS=1 M=~/samplefs/day1

Linux文件系统学习笔记 (1)

By , 2008年11月24日 10:22 上午

打算系统地学习以下Linux上的文件系统,最近可能会根据学习的进度写一些学习笔记。选用的平台是Ubuntu 8.10,参考教材是IBM公司Steve French的演讲稿Linux File Systems in 45 Minutes,同时也参考Veritas公司Tigran Aivazian撰写的Linux Kernel Internals。

准备过程:

0 下载并安装Ubuntu 8.10
1 下载Linux File Systems in 45 Minutes以及相关源代码
2 下载Linux Kernel Internals

Ubuntu 8.10安装完成之后,需要安装一些做Linux内核开发所需要的软件包:

sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev

然后下载和安装Linux内核源代码:

sudo apt-get install linux-source

然后检查一下你的/usr/bin目录,应当有linux-source-[version number]和 linux-headers-[version number]这样的目录。譬如说我下载安装的内核是2.6.27-7版本的,在我的/usr/bin目录下我看到了三个子目录:linux-header-2.6.27-7,linux-header-2.6.27-7-generic和linux-source-2.6.27。

为了使make程序能够方便地使用同一个特定版本号的内核源代码和头文件,我们在这里需要做一个符号链接:

sudo ln -s linux-headers-2.6.27-7 linux-headers-2.6.27

这样我们做Linux内核开发的环境就准备好了,我们接下来开始编译Linux内核。

sudo cd /usr/src/linux-source-2.6.27
sudo cp /boot/config-$(uname -r) .config && yes “” | make oldconfig
sudo make menuconfig
sudo make-kpkg clean
sudo make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers

在上面这条命令中,可以将-custom替换成你所需要的标示符号,譬如-qyjohn-001。需要注意的是,必须保留第一个’-‘符号,并且只能够使用小写字母,不能够使用空格。接下来就是漫长的内核编译过程,根据你所使用的计算机配置,你可能需要去喝一杯咖啡,或者是去睡一觉再回来看看。

编译完成之后,在你的/usr/src目录下应该有两个文件,类似于linux-headers-2.6.27.2-custom_2.6.27.2-custom-10.00.Custom_i386.deb和linux-image-2.6.27.2-custom_2.6.27.2-custom-10.00.Custom_i386.deb。我们可以用下面的命令来将刚刚编译好的内核镜像安装到系统上。

sudo dpkg -i linux-headers-2.6.27.2-custom_2.6.27.2-custom-10.00.Custom_i386.deb
sudo dpkg -i linux-image-2.6.27.2-custom_2.6.27.2-custom-10.00.Custom_i386.deb

检查一下/boot/grub/menu.lst,可以看到在启动时可我们能够选择用我们刚刚编译完成的新内核来启动系统了。

sudo shutdown -r now

系统启动之后,检查一下正在运行的内核版本:

uname -r

可以看到类似于下面的信息:

2.6.27.2-custom

现在我们已经完成了Linux内核编译和部署的过程。接下来就可以开始学习文件系统的部分了。

小心有蛇

By , 2008年11月17日 10:15 下午

今天下午去清华大学深圳研究生院做关于无线传感器网络的讲座。讲座结束之后我们的校园大使王名俅带着我在深圳大学城里面逛了一小圈。深圳大学城包括清华、北大和哈工大三个研究生院,呈三足鼎立状。在哈工大那边的一个小山坡上,拍到了树荫下的这个小牌子。

深圳大学城总的来说风光秀丽,就是缺点人气。在这里的师生都开玩笑地说,假如你在非高峰时间在校园里看到活人,那么他一定是位清洁工。 三个学校的教学区遥遥相望,生活区更是被安排在各自地盘的边角上。三个学校虽然挨在一起,但是彼此之间缺乏交流。一言而弊之,就是缺乏设计,缺乏规划,缺乏人文关怀。

最近各地都在郊区建设大学城。在我去过的多个新校区里,四川大学的新校区是给我印象最为深刻的,一看就是精心做过设计的。尤其是那条小河,还有那几个小湖,不由得让人想起琼瑶奶奶笔下的故事。其他地方的大学城,基本上就是房子的堆砌,缺乏可圈可点之处。清华在深圳的研究生院甚至弄了个假日晷放在草坪那里,又装模作样地造了个面朝北京的大门。这手法若是放在唐朝还有点意思,放在如今却不免要让人贻笑大方。

利用Sun SPOT驱动一个简单的直流马达

By , 2008年11月12日 4:36 下午

这是一个最简单的直流马达,从废旧电脑上拆下来的,原来是处理器上的散热风扇。 只有两条引线,红的是电源正极,黑的是电源负极,正常工作电压为12伏。在这个简单的示范程序中,我们将使用Sun SPOT上面的5 伏电源为它供电。这虽然有点勉强,但是还可以工作。

接线说明:

(1)将Sun SPOT上面的5 伏引脚连接到Sun SPOT上面的VH引脚
(2)将Sun SPOT上面的地线引脚与马达的电源负极相连接
(3)将Sun SPOT上面的H0引脚与马达的电源正极相连接

程序片段:

IOutputPin[] pin = EDemoBoard.getInstance().getOutputPins();
ITriColorLED [] leds = EDemoBoard.getInstance().getLEDs();
leds[0].setRGB(100,0,0);                // set color to moderate red

boolean running = true;
while (running) {
    leds[0].setOn();                    // Blink LED
    pin[EDemoBoard.H0].setLow();
    Utils.sleep(5000);                   // wait 5 seconds
    leds[0].setOff();
    pin[EDemoBoard.H0].setHigh();
    Utils.sleep(5000);                  // wait 5 seconds
}

如上程序片断控制LED 0和直流马达交替运转5 秒钟。由于电压比较低的原因,马达的运转有点慢,有些时候需要晃动一下才能够转起来,不过程序是可以正确运行的。由此可见,利用Sun SPOT去控制一个简单的直流马达是多么的简单。

如果要解决马达工作不畅的问题,可以考虑采用一个工作电压为5 伏左右的直流马达,接线和程序都不需要做任何改动。也可以考虑用一个12伏的外部直流电源, 程序不需要做任何改动,但是接线需要修改如下:

(1)将直流电源的正极与Sun SPOT上面的VH引脚相连接
(2)将直流电源的负极与马达的电源负极相连接
(3)将Sun SPOT上面的H0引脚与马达的电源正极相连接

过几天再写一个稍微复杂一点的马达的驱动。

是不是我啊?

By , 2008年11月7日 6:09 下午

某日,妈妈问清扬婉兮:“你说谁是咱们家的头?”

清扬婉兮问:“头是什么意思啊?”

妈妈解释说:“就是咱们家谁说了算?”

清扬婉兮说:“是不是我啊?”

Peter Pan后遗症

By , 2008年11月3日 6:35 下午

前些时间看多了Peter Pan,今天睡过午觉之后小人赖在睡袋里头说:“爸爸,我想要一只能够给小孩盖被子的小狗。”

如果真有这样的小狗,我也想要一只。

零碎

By , 2008年11月2日 9:31 上午

都是昨天的事情了。

因为我出差,咪咪只好带着清扬婉兮在学校食堂吃饭。不小心被鱼刺噎住了,跑到清华校医院去求助。那里没有耳鼻喉科,医生随便看了看说鱼刺噎住了不要紧的,等到明天如果有问题了再去别的医院看看。咪咪只好打车到北医三院,终于把鱼刺给取了出来。

晚上吃饭,做东的是我在UIUC读书时候的室友M 先生,当时公派到UIUC去做访问学者。中国大陆公派到美国的访问学者,通常都过着游手好闲的生活,平时就是上上网,聊聊天,打打游戏,或者是生个孩子。M 当时给我的印象不错,因为他愿意花时间去旁听各种课程,回国的时候还背回了一些资料。现在M 在成都的某大学当教务处处长,据说在本地的财经圈子里赫赫有名。还有三个人不认识,据介绍其中两位是中铁T 局的核心,另外一位是本地园林景观设计施工方面的老大。杯盏之间,谈的当然都是生意。地震之后,成都人对生命苦短似乎有了新的认识。谁也不知道下一次地震是什么时候,有权不用,过期作废,悔之晚矣。

正吃饭的时候,中铁的G 总收到一条短信,说是属下某单位在某隧道进行施工的时候发生了重大恶性安全事故。我也曾经学习过好多年的土木工程,知道“重大恶性安全事故”的定义,那就是死了一些人。按照国家的规定,如果死亡人数达到或者超过3 人,就必须报国务院备案,相关负责人要追究领导责任。G 总一边吃饭一边打电话了解情况,最后确定为2 人死亡,1 人重伤 -- 看来可能有一些人虽然已经在这次事故中失去生命,但是为了和谐的需要暂时还不能够正式算是死去。G 总还打电话给负责生产安全的领导,要求尽快组织各部门进行生产安全教育 -- 但是不要提起刚刚发生了施工事故。

酒足饭饱之后,我告辞回去酒店休息。M 先生和G 总以及其他两位先生一起去打麻将,据说G 总第二天就要去检查生产安全了。

睡了一觉醒来,果然没有看到某地有在建隧道塌方的新闻。

Photos from Chengdu OpenSolaris User Group

By , 2008年11月1日 11:51 下午

On the afternoon of November 1st I attended the 3rd salon of the Chengdu OpenSolaris User Group (CDOSUG). The salon was held in a recreation room at Southwest Jiaotong University. Below are some of the pictures I took when walking through the campus.

What a vibrant community!

What’s special about this picture? Yes the girls are nice looking. But do you notice that 4 of them held a cell phone in his/her hand? Actually the 5th guy was also holding a cell phone but that was not seen in this photo. This is indeed a hugh market.

I actually talked to these pretty little girls. They were freshmen of this campus. Similarly, each of them had a cell phone, much more beautiful than mine.

The OpenSolaris User Group meeting was held in this building. The big sign on the top says “Southwest Jiaotong University, Workers Union Club”, and the fancy one on the ground says “Minority Flavor Entertaiment Club”.

On this fancy sign there was an A4 size paper.  It says “Welcome to the salon of Chengdu OpenSolaris User Group”.

Following that small sign we went upstairs, and that was the CDOSUG meeting. About 20 people joint the meeting, half of them were professional developers, and half of them were students. It was interesting that the students automatically sat on one side of the room, and the professional developers on the other side — they actually didn’t know each other before. The meeting started at 2:30 PM, with people introducing themselves. Rita (in the middle) then gave a 30-minute talk on various features of OpenSolaris 2008.05, followed by long discussion among the participants. At about 4:30 PM, I did a 20-minute demo with Sun SPOT. After that we became unconferenced again. The discussion went on until people became hungary — that was almost 6:00 PM.

At the end of the meeting, people agreed that they would like to come again next month. We also identified two speakers from the participants for our next meeting. One of them will talk about their view and practice in the open source space, and the other will talk about Sun Cluster. None of them are affliated with Sun except through our product and technologies.

In a word, I like this.

免费赠送OpenSolaris 2008.11安装光盘

By , 2008年11月1日 9:36 上午

opensolaris

Unix-Center.Net即将为我们的注册用户免费赠送OpenSolaris 2008.11安装光盘。OpenSolaris 2008.11版本安装光盘是一张Live CD,您的计算机仅需要有一个普通光驱即可顺利安装使用。

OpenSolaris 2008.11是OpenSolaris项目的第二个正式版本。与OpenSolaris 2008.05版本相比,它包含了经过改进的网络自动管理模块(Network Auto-Magic, NWAM)和软件包管理模块,使用了最新版本的GNOME 2.24作为用户桌面,更是集成了大量新增加的硬件驱动程序。据悉OpenSolaris 2008.11可能会提供实验性的远程安装功能,以及协助用户创建定制化OpenSolaris发行版的Distribution Constructor。

Unix-Center.Net的注册用户只需登陆到我们的论坛系统,填写报名帖子上方所要求的个人信息并按下“申请参加此活动”按钮即可免费索取 我们提供的OpenSolaris 2008.11安装光盘。请您务必完整地填写您的姓名、联系电话、工作单位(没有工作单位的用户可以填写学校名称)、电子邮件,以及详细的邮政编码和邮寄 地址(不需要额外写留言)。如果您提供的信息不满足如上要求,我们会拒绝您的申请。(如果您没有看到帖子上方有需要输入个人信息的地方,说明您尚未登陆我 们的论坛系统。当然,您需要成为Unix-Center.Net的注册用户方可以登陆我们的论坛系统。当然,注册成为Unix-Center.Net的用 户是完全免费的。)

报名链接:
http://www.unix-center.net/bbs/viewthread.php?tid=6592

此次活动自2008年11月01日开始,2009年01月31日结束。第一批光盘将在2008年12月01日后寄出。

感谢您对Unix-Center.Net的支持。

Panorama Theme by Themocracy