“番茄花园”事件是我们应该给予 Linux 更多关注的一个信号?

这几天的“番茄花园版Windows XP作者被拘留”的事件想必大家都知道了,用一句话说这个事件就是:中国当地警方应微软等投诉将在国内很流行的番茄花园 windows xp 修改版的作者洪磊抓捕。网上对此众说纷纭,有说是微软收网,有说是盗版团体的内讧,见:番茄花园作者被捕 是微软收网还是盗版阵营内斗;还有说是微软与番茄花园之间达成的阴谋,见:番茄花园站长洪磊被抓是否是一个骗局?等等。但不管怎么说,有几点可以肯定了:微软投诉了番茄花园,中国政府执法部门采取了积极的配合态度,番茄被摘已是不争的事实。

这其中的复杂细节我们先不去研究,作为用户,我们能嗅到一种什么样的气味呢?不管是微软还是政府,都已经开始对盗版 windows 下手了,我们盗版的使用者也在感受着杀气的步步逼近。在上面的“番茄花园版Windows XP作者被拘留”网页上有一个调查,显示近70%的网友使用过盗版windows,而近80%的网友支持洪磊。从这一个数据试想一下,中国那么多的PC,该有多少盗版windows在使用啊。有一种言论认为,盗版普及了中国的信息技术,比如:用买正版软件的钱来购买PC,再装上盗版的软件,那么同样多的钱我们就可以多装很多台PC,所以,盗版有益于中国的发展。我先不说盗版对国产软件厂商的扼杀,也不谈对国民道德自觉性的麻痹,也不谈对整个国家创新能力的抑制(参见本人拙文:政府推动 Linux 应用有利于中华民族的复兴),就对最现实利益的层面来说,套用据说1998年比尔盖茨说的一句话:“要用10年时间用盗版让中国人上瘾。”(参见:中国企业家离比尔·盖茨有多远),因为中国的盗版装机量,就算以前是“中国是windows盗版最大的获益者”,那么现在及以后,中国或将成为windows盗版的最大受害者!基于盗版windows培养的中国整个信息产业对微软是如此的依赖,微软已经占领了中国的整个信息命脉,尤其是教育部门!作为一个加入世贸好几年的国家,作为一个正在崛起的大国,无论从法律上还是面子上,中国政府应该都将越来越严厉的打击盗版,或者有一天,警察会到我们家里来搬电脑。那么,就算失去所有其他国家的市场,中国这一池微软花时间养肥的鱼也够微软享用N年了。这就是我头脑里的中国盗版情况的现状及任其发展的后果!

我们就这样沿着这条windows之路向前发展我们国家的整个信息产业吗?都要我们丢掉自己的旧电脑去买新的来装上微软推出一款接一款新的庞大操作系统吗?不,我们还有另一个选择,一条看来更自由、更光明的道路,那就是 Linux 的自由世界!我在前面提及的“政府推动 Linux 应用有利于中华民族的复兴”中有详细的阐述。Linux 桌面版(像 Ubuntu , SUSE , Fedora 等等 )已经能够满足绝大多数的应用了,它的技术上已经非常的成熟,之所以不能满足我们全部的应用,缺的就是一些本地软件厂商的支持。但是,由于前面的所述,linux 在我们国家的使用率是相当的低,据Pingdom 网站根据搜索量作为依据的一个全球 linux 流行情况统计数据,中国并不在使用Linux最流行的国家之列,使用 Linux 最流行的是印度、古巴、俄罗斯等。考虑到中国庞大的网民数量(pc量),那么,可以说,中国的Linux和开源的发展还相当落后,在中国推广 Linux、开源,任重而道远

我认为,现在,阻挡 linux 流行的原因很大程度上是整个国家对信息产业的战略制定问题,而不是什么使用习惯,软件厂商的支持少。也不是中国的电脑使用者道德水平差得很(如有报告称德国40%以上学生使用开源Linux系统,难道我们国家的学生的道德水平和知识能力就比他们差这么多吗?)。试想,如果国家在加大宣传教育的同时,引导整个产业链向 linux 和开源发展,比如,在linux平台就能使用全部功能的QQ(有基础功能的官方Linux版本QQ已经发布了),UC,网上银行等等。那么中国的整个信息产业就会柳暗花明了。中国是个有着巨大信息产品需求的国家,我们应该有能力改变自己的未来,并且,随着中国对 linux 和开源的强劲需求,对全世界的 linux 和开源事业都有强劲的推进作用。那么,整个信息世界都将因此而改观。

当然,作为强大的微软这个以盈利为目的商业巨人,它肯定也不会这么甘心它这么多年苦心培养的这一池鱼跑掉。它会以各种手段强化中国信息产业对它的依赖,甚至让利与中国老百姓。但是,如果我们不作其它的选择,恐怕就“搓圆搓扁随便它”了。

衷心祝愿世界走好,中国走好,中国的信息产业走好,中国的老百姓走好,像番茄花园 windows xp 修改版的作者洪磊这样的技术高手也走好。哦,对了,还有 Linux 、开源和微软等软件巨头们走好。

而我,都将持续的关注 Linux 和开源在中国的应用,并分享自己关于 Linux 和开源方面的心得和思索,欢迎常来我的博客:学习日记。我也将把中国在Linux和开源方面的困难、进步和经验通过英文博客Learning Diary和全世界的 Linux 和开源关注者、爱好者们分享与交流。

谢谢。

(这篇文章的英文版本点击Is the "Tomato garden event" a signal of we should pay more attention on Linux?。)

Ubuntu 下挂载U盘的3种方式

因为我需要在Ubuntu下挂载的U盘能够同步写操作,所以对Ubuntu 6.06 LTS下U盘(台电1G)的3种挂载大致实践了一下。这3种方式分别是:gnome下的自动挂载,pmount命令,在/etc/fstab中设定。

1、 gnome下的自动挂载
据搜索,gnome 下的自动挂载是利用hal(HAL, Hardware abstraction layer)实现的。只要把U盘插上,就会在桌面上出现一个 名为"usbdisk-1"的U盘图标。这种方式有两个地方可以进行相关设置。

一个地方是设置自动挂载时的相关参数,例如:同步写标志sync,不更改文件访问时间标志noatime等等。在文件“/etc/hal/fdi/policy/preferences.fdi“中设置。原来的所有设置都是注释掉了的,如果添加sync、noatime 标志需要修改这个文件。我在“match key="volume.size" compare_lt="1000000000"”这行走了点弯路,意思是小于1G就添加相应的参数。可是我没有注意到我的U盘实际上比这里的1G稍微大点(sudo fdisk -l /dev/sda 中查看),为1010826752字节,结果设置的参数不管用,无意中才发觉这个问题。最后干脆去掉这一个条件,只要是这种"storage.hotpluggable"和"storage.removable" 为"true"的都加上"sync"和"noatime"标志。

另一个地方是开始菜单中的“系统->首选项->可移动驱动器和介质”,把相应选项勾上。

不对“/etc/hal/fdi/policy/preferences.fdi”修改时的/etc/mtab相关内容如下:
/dev/sda1 /media/usbdisk-1 vfat rw,nosuid,nodev,quiet,shortname=mixed,uid=1000,gid=1000,umask=077,iocharset=utf8 0 0

添加了sync和noatime标志后的相关内容:
/dev/sda1 /media/usbdisk-1 vfat rw,nosuid,nodev,sync,noatime,quiet,shortname=mixed,uid=1000,gid=1000,umask=077,iocharset=utf8 0 0

挂载点 /media/usbdisk-1是自动的。

2、用pmount 命令
在不登录入桌面的情况下,另登录一个控制台,在命令行下输入命令 pmount -sA /dev/sda1 也可以挂载U盘,效果同添加了sync和noatime标志的gome下挂载是一样的。挂载点 /media/sda1是自动的。

查看 man pmount,可知它的默认挂载参数是: async,atime,nodev,noexec,noauto,nosuid,user,rw
如果在UTF-8的locale下utf8的iocharset是默认的。
另外,在man pmount 下提示在Debian下,使用pmount 的用户需在plugdev 系统组。不过,我的Ubuntu装好就把我的使用用户自动加入了这个组。

3、在/etc/fstab中设定
要达到上面的效果需要一大串参数,如下:
/dev/sda1 /media/flash vfat rw,nosuid,nodev,sync,noatime,quiet,shortname=mixed,uid=1000,gid=1000,umask=077,iocharset=utf8 0 0
然后: sudo mount /dev/sda1

4、注意:
当在/etc/fstab 中设置了/dev/sda1的挂载选项(不论是否已经确实挂载了),gnome下的挂载方式和pmount 命令都不起作用了,这两种方式可能都会去检查/etc/fstab文件;
当使用了gnome下的自动挂载方式或pmount 命令的挂载方式,那么,这两种方式中的另一种方式将不起作用。不过,这时手工的sudo mount /dev/sda1 -t vfat -o rw,nosuid,nodev,sync,noatime,quiet,shortname=mixed,uid=1000,gid=1000,umask=077,iocharset=utf8 /media/flash 却仍然可以用。

Ubuntu 6.06 LTS 下用Wine安装 IE 和 QQ 的一些要点备忘

首先,Ubuntu 6.06 LTS 有自带的 Wine,不过,我在上面安装了QQ后不能使用。所以,使用winehq 官方提供的最新版本 wine(现在我机器上的wine是wine-0.9.59)。详见:Wine - Ubuntu中文,下面是一些要点:

关键是添加winehq 官方的源:
sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/dapper.list -O /etc/apt/sources.list.d/winehq.list
然后,执行:

sudo apt-get update
sudo apt-get install wine

还有一个关键处是:
由于 X locale 的问题, 默认 wine 会轮询 x core fonts ,使得 wine 很慢,请先执行::

sudo sed -i -e '/GBK/,/^}/d' /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE

安装QQ:

原来的LumaQQ、MilyQQ、gaim(QQ部分)不能用很久了,下面是在 Wine 下安装QQ的情况。
我是参照 Ubuntu利用wine安装QQ 这篇文章做的,只不过,我用的是QQ2007II 正式版,没有那个TIMPlatform.exe,只有TXPlatform.exe,改不改这个文件名好像没有什么区别。

试用了一下,基本的功能差不多都可以用,包括图片验证。不过常出现异常退出的情况,界面上的少数菜单文字有乱码现象。

我还编译安装了最新版的Pidgin 2.4.0 (即gaim的后续版本),在不需要图片验证码的时候应该是能用,不过群的名称统统是现为“NULL”,好友列表只现在线的。相比而言,还是Wine 下的QQ好点。

安装IE

我是参照在 Eee PC 上使用 IE 在 Wine 下安装IE的。假设已经安装了前面的Wine。下面是我安装IE的几个要点:
首先,在 http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
处下载最新版的ies4linux(现在我机器上的 ies4linux 是 ies4linux-2.99.0.1,还有一个老的ies4linux-2.0.5也能用)。

还有一个问题,安装时总是报告好像是一个CAB文件错误之类的信息,不能完成安装,使用上面参考的文章中的方法:修改lib/functions.sh也不行。最后,在ubuntu下离线安装ies4linux处找到需要的每个CAB文件的下载地址,把需要的CAB文件手工下载下来,放在合适的地方,再按照上面参考文章的方法执行安装就行了。

另外,在浏览到有flash的页面时,ies4linux 在配置低的机器上会花较长时间完成flash插件的安装,内存太少(含交换分区)的话还有可能不能完成安装!

试用了一下 Linux 的这个“IE”,也只能说是“聊胜于无”,针对那些特别“IE-ONLY”的网页还是没有办法,如:四川移动网上营业厅;还有如建设银行网上银行的USBKEY也不能用,但是,如果不用ies4linux,就连登录建行网银也是不行的!

另外,在浏览一些嵌入式的网页时,会使用到一个 Wine 下的Wine Gecko,不知怎么一回事,自动安装 Wine Gecko 好像没有成功,总是显示“HTML rendering is currently disabled”,在网上搜索了一下,如:
[分享]安装 Wine Gecko(已经更新过,没解决问题的来看)
,好像都是说要改“注册表”什么的,结果我在Wine中的注册表中根本就找不到相应的项,最后,在这篇帖子中Wine Gecko packaging找到解决的办法,把在http://downloads.sourceforge.net/wine/wine_gecko-0.1.0.cab 下载的 wine_gecko-0.1.0.cab放在目录 /usr/share/wine/gecko 下面(没有就自己手工建立),然后执行如:“ wine iexplore http://www.google.cn”就自动把wine gecko 安装上了,不用修改注册表什么的。(安装 wine gecko 的过程记不太清了,也许有出入)

Ubuntu 下移动 /var 目录到单独分区后出现的一些问题,如:mount: special device /var/run does not exist

前几天,我的Ubuntu 6.06 LTS 的 / 分区空间紧张,于是把 /var 目录移动另一个分区。偶然一次,在没有挂载 /var 分区的情况下,发现原来根分区 / 下的 /var 目录仍然有 /var/run 和 /var/lock 目录,以为这是重复的,就顺手把根分区 / 下面的 /var/run 和 /var/lock 目录删除了。

后来,问题就出来了:包括网络不能启动,ADSL 不能自动连接;Wine 的 QQ 登录后停止响应;图形界面常常停止响应,像死机,只能 CTRL+ALT+BACKSPACE 重启图形界面,等等。然后是,启动信息里出现如下一些文字:
Can't create directory "/var/run/network"
mount: special device /var/run does not exist
mount: wrong fs type, bad option, bad superblock on /dev/shm/var.run
等等

先还以为是移动 /var 目录到新的分区时,也许无意中把目录的权限修改了,对照机子上的 DeLi Linux检查了一下,移动后的目录权限应该没有什么问题。后来,甚至怀疑是用“sudo apt-get upgrade”命令更新了系统的原因。最后,上网在Google上用关键字“mount: special device /var/run does not exist”搜索资料,在 mount: special device /var/run does not exist 上找到答案,原来,不管你的 /var 目录在不在单独的分区里,/var/run 和 /var/lock 这两个目录一定要在根分区 / 里面!

然后,我从机子上的另一个 linux (Puppy Linux)启动系统,在 Ubuntu 6.06 LTS 根分区 / 下添上了两个目录: /var/run 和 /var/lock 就一切OK 了。

所以,我要把网络这个便利的工具充分运用起来,在一些实际的应用性问题上,自己经过适度的思考和尝试解决,失败后,就应该利用搜索引擎这个便利的工具了;如果还不能解决的话,就可以上论坛和等场所向别人请教了。当然,一些基础的知识平时就要主动的掌握。

在中国推广 Linux、开源,任重而道远

前言:
因为我既非IT从业人员、也不是全面的知道全国的Linux和开源现状,仅是从自己的身边的情况和一些网上的材料写出下面的一席乱谈,谨希望对一些朋友正在做的事能够提供一点思路,作为事实上的旁观者,是清是浊,欢迎大家交流评说。

正文:
前几天,我在2008年第1期的《读者》杂志上面读到一篇文章《直面中国的慈善事业》(文/司金 陈建利),在这里有转载。讲的是中国的慈善事业现状,中国的慈善事业规模还太小,好像说的是算是还没有真正起步。其中还对比了中国和美国的慈善捐款的人群分布比例,中华慈善总会每年的慈善捐款10%来自国内平民;美国的个人捐款比例为85%。也就是说,慈善事业,在中国大多数人中还没有兴起来。我不由自主的由此联想到,要在中国推广 Linux 、开源,任重而道远。

我觉得,Linux 和开源,在某一个角度上就算是一种慈善事业,也可以看作是一种信息基础平台的社会福利。

有的朋友认为中国的开源不兴,是中国的经济落后,程序员都忙于生计,没空来搞开源。不过,我原来读过一篇好像是Sun公司的一位工作人员的博客,他指出,实际上,国外好多搞开源软件是由公司牵头在做的,做开源的程序员也会在他们所在的公司拿工资的,而不是一些想像的全凭个人兴趣的无私奉献(另外,参见这篇文章:Q: Who Really Creates Linux? A: The Enterprise)。

上面好像说明一点,中国的开源不兴,可能是因为在中国做开源,不管是个人还是企业,都没有什么回报,大家就不愿意做了。

而谁能给搞开源的人以回报,我想主要应该是使用开源产品的人吧。

而据我的观察,仅限于在自己周围的情况和在网上听说的情况,使用开源产品的人少,而使用了开源产品而想到回报开源作者的人也不多。以操作系统上的使用为例吧。

如果从现状来看,要让中国的全部PC都用上正版操作系统,可能推广linux是现在唯一的道路。但是,我们许多人好像不大愿意走这“唯一”的道路,我在网上曾看到类似这样的言论:中国人爱用盗版的windows,不用正版的linux,那些预装linux的机器,干脆就什么都别装。

所以,习惯力量和环境使然,中国就没有多少人使用linux,甚至在服务器上,我就曾在网上看到一位国外主机服务商好像很奇怪的说:中国人怎么不喜欢用linux主机啊。

从《读者》上的那篇文章上面,我看到的中国慈善事业的落后,我就想到,基于类似的“善意”的举动,在中国主动回报开源软件的人也不会多吧。我在网上一个搞类似共享软件的朋友,他对在网上做类似事情时挂上接受捐赠按纽的做法时说,在国外,这种模式有用;在中国,没用。由此可以猜测,他的捐赠按纽可能也没有什么效果吧。不过,我也感到心里过意不去,尽管我使用Linux、开源产品有几年了,至今,在经济上我也没有对Linux、开源回报过一分钱。

所以,总的感觉是,在中国,推广linux很有必要;在中国,推广linux的社会、文化基础环境很恶劣。

我感觉,在中国推广linux有赖于整个社会中“感恩”文化的培养,“慈善”文化的培养等。在改革开放、走向市场经济的过渡时期,我想,我们现在的思想和道德观念的一些不良状态也应该是一种过渡时期的表现。中华几千年的文明一直以来都是提倡“文明”、“知恩图报”、仁义道德的。我想,我们的思想多半可能走向良好的状态,而不会这么大一个中国彻底的变成只知吃喝享受、只知物质、不知精神,只引进了西方的拜金主义,没引进与中华文化有相同之处的“感恩”文化等高级动物的元素的可悲的国家的。我们是动物,不过前面有高级二字,如果我们都成了只是“动物”的动物,那么我们这样的动物就只会被别的高级动物所圈养着了。。。

在中国开源走向光明的过程中,在linux、开源在中国不景气的现在,我想对在中国推广linux、开源的朋友提点自己的想法。

我觉得可以在如下几个领域重点推广 Linux和开源:

1、服务器产品。
Linux的强项还是在做服务器上面,据我在网上的耳闻,Linux服务器在国内发展的空间非常之大。关于它的性能,我曾有过粗简的了解,一款采用Linux作为服务器的网吧无盘系统,在同样的硬件条件下,它所带的客户机数量和稳定性比windows主机的服务器要多、要好,以至于在一篇相关的文章上用了这样的词“由于先天的条件”云云,据我的理解,它那里“先天的条件”就是使用了Linux服务器平台;

2、在计算机知识上有强烈探索欲望和创新精神的人。
计算机专业的学生应该深入的了解Linux,融入世界开源环境,改造Linux,构建用于Linux环境的软件,在实际中运用Linux环境下的相关软件,使其切实的提高生产效率和造福人们。说实话,Linux 、开源世界的东西应有尽有,材料太丰富了,只要您愿意,您可以用它们烹调出最可口的“饭菜”;

3、在教育、慈善、宗教等领域推广Linux和开源。
这些领域都应该算是人类灵魂的工程师聚集的地方,应该在这些领域推广Linux和开源。我想,这些领域的机构或个人在预算有限的情况下,完全可以使用开源产品代替昂贵的Windows平台产品。而且,开源精神与这些领域的价值观也有相合的地方,应该容易得到推广。

也许,当Linux、开源推广开来,也许人们会说:不是我想用盗版的windows平台产品,而是Windows的东西太贵了,我也不知道原来还有Linux和开源这么好的东西。当然,以上这些事情都需要一个前提:大量的Linux各种级别、各个领域的人才。

另外,我以前在电视上曾看到过信息技术的电视讲坐。为了推广Linux,我觉得可以在电视多多举行有关普及Linux、开源的各种电视讲坐,让人们了解除了windows,还有另一个Linux、开源世界。

最后,还是我在一篇日记中想的那样:政府推动 Linux 应用有利于中华民族的复兴,政府在这个事情上所需要作的就是:营造适合Linux、开源推广的思想、文化、社会环境。我想,假设这个环境营造好了,也许中国的好多事情都好了,如前面提到的慈善事业的发展,说不一定,连三农问题也不成其为问题了?还有,我在日记开头提到的文章的最后一段大意是说:某机构作了调查,国内有90%以上的人有回报社会的意愿。。。,可为什么这些人的意愿没有成为实际的行动呢?我想,可能是政府在基础构架方面的东西还有待建设吧?在中国推广Linux、推广开源,是不是也是同样的道理?

因为我既非IT从业人员、也不是全面的知道全国的Linux和开源现状,仅是从自己的身边的情况和一些网上的材料写出上面的一席乱谈,谨希望对一些朋友正在做的事能够提供一点思路,作为事实上的旁观者,是清是浊,欢迎大家交流评说。

在Ubuntu 6.06 下安装305(sn9c110,0c45:612a)摄像头的经历

上周,我试着在我用的Ubuntu 6.06的机器上安装305摄像头。下面记录一些经历,供备忘和朋友参考。

实际上,我没有把这个摄像头安装成功,但是我也知道问题的所在了。

我这个摄像头用lsusb命令显示为:Bus 001 Device 003: ID 0c45:612a Microdia

在windows下安装随带的305驱动,识别为SN9C110摄像头。

1)、根据网上google的结果,尝试安装gspcav1-20070508。最后根据这篇文章:
UbuntuHelp:Spca5xx才编译成功, 网上有点文章介绍的方法往往丢了关键的一个步骤:
ln -s /usr/src/linux-headers-`uname -r` /lib/modules/`uname -r`/build
在我的机器上,即建立一个到/usr/src/linux-headers-2.6.15-23-386 的软链接: /lib/modules/2.6.15-23-386/build
安装完成了,可是在安装的撮像头软件camorama里测试,撮像头还是不能工作。一看源文件里的README文件,原来这款0c45:612a 没有被这个驱动支持。查看了一些资料,想通过修改源码来安装,结果没有成功,这款摄像头在windows下识别为SN9C110,可我在 http://www.sonix.com.tw/sonix/family.do?f=3 下查了一下,没有这款产品的数据了。而在网上链接到这个网站关于sn9c110 的资料好像原来是应该有的。后来,我把摄像头拆开,查看它的芯片型号,芯片上写的是305,还有其它一组字符串,忘了。我想得到相关参数来试着修改源码,结果也没有成功。

2)、尝试升级内核解决这个驱动问题

用文章如何编译一个内核 - Ubuntu方式-xxlinux.com介绍的方法编译的(2.6.24.3)内核不能引导系统,也不知是不是跨度有点大的原因,后来,我没有用文章中介绍的“Ubuntu方式”,而直接用内核源代码里README介绍的通用的内核编译方式编译安装了内核,发现还是不能启动,安装了一个initrd-tools包,用mkinitrd命令做了一个initrd.img-2.6.24.3 文件放在 /boot,修改了/boot/grub/menu.lst新内核才启动成功。结果,新内核里也没有支持这款撮像头的驱动。

3)、安装sn9cxxx的闭源驱动

在网上查了, http://www.linux-projects.org/ 上说他的驱动支持SN9C110,下载了试用版本,结果是Ubuntu 发行版的版本不一致用不了,他上面是用于7.04和7.10的。而我也不是要用这个摄像头,在 linux 安装摄像头只是试验一下而已,也暂时没有升级Ubuntu的打算。所以,我在Ubuntu下安装305(sn9c110,0c45:612a)摄像头就最终以暂停结束。

另外,我看到网上也有一些朋友的这种摄像头在linux没有安装成功。谁知道这种摄像头在linux下的安装方法还请说一下哦。

Ubuntu 6.06 LTS 上挂载fat32分区和ext2分区的一些测试

这篇日记记录在Ubuntu 6.06 LTS 上挂载fat32分区和ext2分区,测试系统umask值和mount fat32分区中的umask、dmask、fmask等参数的用法,并测试在 gnome nautilus 中创建目录、文件和在控制台下创建目录、文件的情况。

一、在Ubuntu 6.06 LTS 挂载Windows XP SP2下的fat32分区:

Ubuntu下是使用的 zh_CN.UTF-8 的locale,使用下面的命令挂载fat32分区:

sudo mount -t vfat -o iocharset=utf8,umask=022,gid=1000,uid=1000 /dev/hda1 /media/xp

这样,可以正确显示windows下中文目录(文件)名,在 Ubuntu 下创建的中文目录(文件)名在windows下也可以正常显示。奇怪的是,就算是登录gnome时选择了zh_CN.GB18030 的locale,挂载这个分区选择iocharset=utf8在nautilus中创建目录和文件才正确(能正常创建并在两个系统中显示中文名;但这时在gnome终端用命令行中不能创建中文名目录和文件),改成iocharset=gb2312 在gnome nautilus中创建目录和文件反而不行(在nautilus中不能创建目录,可以创建文件但中文名在windows下为乱码;但这时在gnome终端的命令行下可以正常创建中文名目录和文件,并且在windows系统下也能正确显示中文名)。而在原来使用的 Redhat linux 9.0 中,因为它使用的是GB18030的locale,这时,iocharset=gb2312才行,见:解决redhat linux9.0下挂载windows分区中的中文文件(夹)名乱码
。另外,两种locale下不设置iocharset参数也不能正常显示中文目录(文件)名。gid和uid是我登录用的帐号的组id和用户id,这样,fat32下面的东西的组和用户都成了我的登录帐号的了。如果,你又指定了 dmask 和 fmask ,那么,前面的umask针对目录和常规文件的屏蔽码就不起作用了。另,据说,dmask和fmask是后来才有的,早期的mount 命令是没有的。

二、挂载的fat32分区和ext2分区在创建文本文件时的权限上是不同的

比如,上面的umask 为022,在控制台下在fat32分区上创建的新目录和新文本文件和原来的旧目录和旧文本文件的权限都是755;而如果系统的umask值是022(/etc/profile中设定的)ext2分区以默认的参数挂载,在/etc/fstab中是:

/dev/hda10 /home ext2 defaults 0 2

,这时,在控制台下创建的目录的权限是755,而新创建的文本文件的权限却是644了,默认没有可执行权限。

三、在控制台下用命令和在如gedit等程序中创建的目录和文件的权限使用了系统umask值,而在图形界面的nautilus中用菜单或鼠标右键创建的目录和文件的权限则基本上不会理会系统umask的值(除了我测试过的在挂载fat32分区时创建目录)。

如,我用umask 020 改变了系统umask 的值,在控制台下在前面的ext2分区中创建的目录和文件是根据新的umask值来确定权限的,而在图形界面的nautilus中用菜单创建的目录或文件的权限却与没有改umask值前一样,即保持目录为:755,文本文件的权限为600。

而且,在用前面命令挂载的fat32分区上,在nautilus中用菜单创建的目录跟命令中使用的umask参数(如:设置 -o umask=021,或 umask=066)一致,而用菜单创建的文件的权限却一直都是600。

我在网上查了一下资料,gnome 的 nautilus 程序忽略系统umask的值好像是它的一个bug,见:idea #200: Umask and Permissions in Nautilusnautilus umask bug permissions problem on networkBug 327249 nautilus ignores umask。不过,这个问题的中文资料竟然没有搜索到。还有,也不知道这个问题现在解决没有?

上面的内容基本上就是一个linux下mount命令相关的,还有就是跟natilus有关,linux下的mount命令非常的强大,也非常的复杂,因为,linux几乎可以识别和挂载世界上所有的文件格式,每一种文件格式就有相关的挂载参数。所以,我觉得,作为一般的 linux用户,掌握一些最基本的参数就行了,到时要用到时,再去man mount,或者上网 google。

附一篇讲解 fstab 文件非常详细的文章:学会理解并编辑fstab

初试网众 linux 无盘系统

前一段时间有机会接触了一下网众科技的 linux 无盘系统:网众 NXD XP 5.6(上面写的是NxD XP 5.0,实际上现在的最新版本是5.6,可能是网众觉得主版本没升级就没有作更新吧,另外,在网上看一些资料,说网众技术上比较专注,但是服务上有待提高)。这是一款linux下的商业网吧无盘服务器产品,我初步感觉这款产品把 linux 服务器的特长:高效、稳定等体现得比较突出,故把自己接触到这款产品的一些知识分享出来,供自己备忘和 linux 爱好者及网吧业工作者参考。

你可以在网众科技的网站上下载他们的试用版本,上面有详细的操作指南,我根据他们的操作指南,用他们带加密狗的正式版本在普通的IDE硬盘上安装体验了一下。简要的步骤如下:

一、安装 linux 操作系统及网众无盘服务器(主要包括启动服务器和数据服务器)

1、网众官方使用slackware 这款 linux 发行版,他们的安装光盘也是这个版本的 linux。用光盘安装 linux 操作系统。选择你的根磁盘类型(IDE,SATA,SCSI,RAID),我这里是IDE,选择自动分区,一路回车就分好区了。默认分成了/, swap, /var, /mnt 四个分区。然后安装 LILO 引导程序,接着输入主机名,进行网络配置。这是一台服务器主机,自带两个千兆网卡,这里只使用一个。输入静态IP:192.168.0.100, 网关:192.168.0.1,DNS:192.168.0.1。然后进行 X-windows的配置,自动发现 ati 显卡驱动,选择分辨率1024x768,16-bit;然后是语言选zh_CN.gb2312;然后是安装nxp-5.6,安装目录默认是 /opt/netzone,服务器模式这里把“启动服务器(boot server)”和“数据服务器(io server)”都选上了。至此服务器端就OK了,基本上都是一路回车,安装过linux的朋友应该都没有问题。

二、安装无盘客户端的操作系统
在一台当作客户端的机器上安装上 windows xp。在其它的分区上有一些游戏。再在上面用安装光盘安装 nxp-5.6的客户端。勾选“辅助工具”和客户端的网卡驱动,我这里是8169,点击完成就OK了。

三、在服务器端挂载无盘客户端操作系统及游戏盘的映像
把安装好客户端系统的硬盘取下来挂在服务器上,启动服务器。以root用户身份登录(初始无密码),startx进入 X-windows,添加启动服务器,数据服务器等(具体的内容忘了,大家可以看指南)。不过,我记得用手工建立了三个目录(大概是: /mnt/nxp/swap, /mnt/nxp/wks,/mnt/nxp/disk)。再选择“磁盘管理”,选择从“物理分区”提取映像文件,我这里从挂到服务器上的windows系统盘提取了一个“系统盘”,再在游戏分区提取了一个“应用盘”。相关的磁盘映像和回写数据会保存到先前建好的几个目录下。添加了启动服务器,数据服务器后,接下来要添加工作站。如果你在前面的服务器选择了“在服务端自动添加工作站”。那么,客方端工作站会自动出现在启动服务器的列表中,然后添加工作站(其中基本设定:网络配置应该是自动填上的,选择默认服务器,启动盘,启动配置,应用盘等,还进行一些“其他设定”)。然后,当你把服务器和带pxe启动的客户机联好网后,把客户机设置成从lan 启动,不出问题的话,你的最简网众 nxp linux 无盘系统就完成了。

当然,实际生产系统中安装使用远没有这么简单。比如:实际的生产系统都是用几块硬盘组成阵列,如果 linux 认不出硬阵列就得设置软阵列;我接触到的生产系统中的swap分区是被禁止了的;客户端的系统往往是在服务器不停机的情况下用客户端的系统上传工具上传到服务上去的;客户端系统不一致需要建立多配置,还有一些特殊的情况需要处理,还有什么超级工作站用于添加、更新游戏,更新系统等等。详情请看我前面提到的网众官方操作指南

从我获得的信息,反映网众这款linux无盘系统性能很优秀。可见,linux下的商业系统也是大有可为和需要大力发展的。

另,我的一些心得和疑问:
1、当在超级工作站新加一种配置,数据服务器里当时就看得见,但是启动服务器还不能看见,需要在数据服务器的“磁盘信息”里点“刷新”才行;
2、新添加配置选择的“配置来源”要选使用这个配置的机器最接近的配置;
3、无盘客户端的分辨率可以在服务器端直接修改;
4、单网卡单IP、双网卡绑定、双网卡双IP,哪种配置用在nxp无盘系统最好?我在接触到的生产系统中是单网卡单IP,工程师说双网卡双IP出了问题不好维护;
5、无盘客户端系统是提取成一个映像文件好,还是分系统盘和应用盘分别提取好?我在接触到的生产系统中是一个映像,工程师说这样方便安装和维护;
6、网众的linux 无盘是不是基于一般的 linux 无盘技术(及pxe+dhcp+tftp+nfs等)?

以上的文字基于我对网众 nxp 无盘系统最初浅的实践和认识,部分是凭记忆写的,如有错漏还望多多指教。谢谢。

长毛兔养殖场的故事

在某地,有一家长毛兔养殖场,养殖场的王老板靠长毛兔身上的毛赚了不少钱。他给我们讲了他的经验。

实际,最初,他的长毛兔养得很差,长毛兔不长毛,整天无精打彩,呆在那里一动不动,一个个都是“戳一戳,跳三下”的模样,还不听招呼,到处乱拉屎尿。老王气呀,一天看到不听话的兔子就用棍子打。还边骂,这个兔子不卖力长毛,那个兔子不按时睡觉。。。

可是,老王越打兔子,兔子看见他就怕,一个个不敢乱动,可是,他不在的时候还是不听招呼。而且,可能由于兔子时刻在提防他是不是来个突然袭击,精神紧张的原因吧,反而越来越不肯长毛了。老王一天到晚愁得连饭也吃不下。

后来,老王到幼儿园去给孙子开家长会,会上听幼儿园教育专家的讲座,题目就是“赏识教育法”。大概内容就是多夸讲孩子,少批评孩子,激发孩子的优点和长处,淡化孩子的缺点和短处,等等。

老王回家后,把幼儿园听到的知识用在了养长毛兔上了。于是,哪个兔子听话,就给它吃胡萝卜,奖励一下。那些兔子看见听话就有胡萝卜吃,渐渐的,一个个都变得听话了,努力的给王老板长毛。而且,他在不在那些兔子都一样,都很乖。

在 Ubuntu Server 7.10 上安装 wordpress, shopex 和 discuz 的一些要点及问题记录

安装好Ubuntu 7.10 Server后,我在上面安装了 wordpress 2.2.1 带中文包,shopex V4.7.2 和 discuz 5.5 ,这里记录一些碰到的技术要点和疑问备忘。

1、修改 mysql 5.0.45的默认字符集,我准备统一使用 utf8 编码,所以改了服务器端和客户连接的默认字符集为 utf8。方法为:

在[client]下添加:
default-character-set=utf8

在[mysqld]下添加:
default-character-set=utf8

在控制台下用 mysql -hlocalhost -uroot -p 进入数据库后,status显示:

Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
当数据库的字符集是utf8是, 在[client]下添加:default-character-set=utf8,并且本地控制台的locale为utf8的,才能在控制台中正常显示中文。

但在wordpress中,使用默认的latin1字符集,它创建的数据表是用utf8编码,但是数据库的编码是latin1,好像也不影响使用?不知道Server characterset和Db characterset 对mysql数据库的实际应用上有没有什么影响?即只是数据库表用utf8编码,status显示上面的4个characterset是默认的latin1对数据库表使用的utf8编码有没有什么影响?

2、服务器时间设置

ubuntu server 默认使用 UTC 时间,比CST (中国标准时间)慢(重庆时区是慢8小时),如果安装的时候没有使用CST时间,可以这样改变:

sudo tzselect

然后按照提示选择地区(如亚洲),国家(如中国)国内地区(如四川), 然后在你的家目录下的.profile中添加一行TZ变量,如:

TZ='Asia/Chongqing'; export TZ

使改变永久生效。

在 wordpress 中需要在“设置”的“日期和时间”中选择时区,我这里选择“本 blog 的时区:

小时 (您所在的时区,比如北京时间就填 8。)”3、启用 mod_rewrite 模块,使 wordpress和 shopex可以使用URL伪静态化。sudo a2enmod rewrite

这里要注意在控制台w3m下面开启wordpress的 伪静态化不能生效,必须在图形界面的全功能浏览器下面进行!我在这上面折腾了好久,最后安装了一个X,在X下用firefox设置才发现问题;

然后,sudo vim /etc/apache2/sites-enabled/000-default下面<Directory />和<Directory /var/www/>中的“AllowOverride None”改为“AllowOverride All",其它的部分没有改(如<Directory "/usr/lib/cgi-bin">),在我的应用中使用正常。

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /apache2-default/
</Directory>

然后:sudo /etc/init.d/apache2 restart 重启 apache2生效。

4、启动压缩传输功能:

sudo a2enmod deflate

重启 apache2生效。

5、启用目录默认文件功能:

如:输入 http://www.mydomain.com/ 实际上使用的是 http://www.mydomain.com/index.php 文件。

a2enmod dir
vim /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>

DirectoryIndex index.php index.htm index.html index.cgi index.pl index.xhtml

</IfModule>
或者:

vim /etc/apache2/httpd.conf ,输入:

<IfModule mod_dir.c>

DirectoryIndex index.php index.htm index.html index.cgi index.pl index.xhtml

</IfModule>

也行。

6、使用 shopex 需要使用 Zend Optimizer 才能用
参见:在ubuntu环境中安装zend optimizer3.3.0

7、使用 shopex的上传图片自动生成略缩图功能和添加水印需要增加gd库

sudo apt-get install php5-gd

重启apache2 生效。

查看gd库生效没有可以调用一个写有一句phpinfo()的页面查看相关信息。

如名称为:phpinfo.php ,内容如下:

<?php phpinfo(); ?>

gd 库生效了会在其中显示相关信息,如:

gd

GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
... ...

等内容。

8、另外,还要注意一些目录的权限问题,在上面程序的安装说明中有。

还有,把wordpress的uploads 的所有者和组改为apache2的 www-data 就可以上传文件了,要不然把这个目录的权限改为777也行,个人感觉前者好像更好点?

9、另外,wordpress 和 discuz的邮件发送碰到一点问题: ubuntu server 下discuz 和 wordpress 程序不能用sendmail 正常发送非本地用户邮件的疑问 。解决了再补充一下。