Damn Small Linux(DSL)为什么那么成功?

开源软件作为一种新兴的软件模式,它是基于“自由与分享、交流”之类的理念而产生。它的特性决定它采用一种不同于闭源软件的发展模式。它的发展有个人兴趣的推动、也有商业的运作和政府的推动。但是,经营得比较成功的开源软件、尤其是在国内的开源软件却并不多。

然而,作为一款迷你型的、仅 50M 大小的Linux “发行版”的 Damn Small Linux (以下简称 DSL)却发展得很好,从DistroWatch.com 上看,它近半年排在前10位,在许多著名的发行版(如:Slackware, CentOS, Gentoo, Knoppix 等等)之前,而且,从网络上对它的评论来说也是一个很好的 linux;它发行新版本的速度也是惊人的,几周前我还用它的3.4.4,现在3.x系列已经是3.4.7了!同时 4.x 系列也好像由4.0 升到 4.2 了。所以,我认为它是一款非常成功的开源软件。

DSL 为什么会那么成功呢?我的看法是有3点:定位准确、专业、商业运作;下面我从这3点分述如下。

一、定位准确

一个实用的当代操作系统可以做多小?DSL 给了我们答案,50M ;一个486 垃圾电脑可以运行有漂亮图形界面的功能全的现代操作系统吗?DSL 也给了我们肯定的答案;我想要一个在哪儿都可运行的操作系统:USB 优盘、光盘、硬盘、其它操作的模拟环境等等,有吗?DSL 它也自豪的宣称,I can! 是的,它就是这样根本不同于一般大型发行版的定位,而这极具特色的定位成就它与 Ubuntu 之类的 Linux 发行版同台现艺的地位。

二、专业

DSL 的主要开发者和运作者是两位: John Andrews 和 Robert Shingledecker,另一位好像是美工: Robert Lindsay has made much of the DSL art work。创建者John Andrews 不是 IT 甚至技术出身,但是是一个 linux 爱好者; Robert Shingledecker却是一位真正的 linux 专家。这样的核心组合形成一个极具威力的开发团队。

DSL 的专业性在软件本身体现在它的各种贴心的设计(如:保存设置,备份数据,硬件配置),丰富的软件库等等,还表现在丰富、完善的在线文档支持,快速方便的社区支持。它与一个华裔博士创建的 CDlinux 既缺乏文档又没有论坛支持的情况形成鲜明的对比。

三、商业化运作

我重点想讲讲它的商业化运作,我发觉这可能是国内的开源作者们所严重缺失的技能。

1、广告:它的几乎每一页都有广告,我对恰当的广告持肯定的态度恰当的广告是对社会的一种贡献。它可以沟通供求双方

2、卖相关产品:

Mini-ITX Store mini computers and components
DSL on a CD business card, 80mm, or full size
DSL on usb pen Bootable USB Pen Drives

他们卖装有DSL 的迷你型电脑、CD、USB优盘;

3、寻求商业合作

Merchants? here's opportunity knocking ...

你可以把DSL社区感兴趣的商品展示在他们的网页上,他们的要求仅是放两个他们的广告。

4、赞助

DSL 在不少地方都直接了当的提示人们,DSL 的发展需要大家的赞助。这种直接了当的提示用户回报对于受传统影响的中国人来说可能还有点不太适应,但是,在我们痛快享受他们的软件的便利的同时,我们怎么就不该作些回报呢?中国不是有“报恩”的传统道德吗?所以,我觉得应该赞同这种主动提示用户赞助的行为。并觉得国内的开源项目同样可以体面贴上赞助链接。因为,这同样给与了朋友们感恩的机会。而且,假设你用这种方式得到了较多的钱,你除了可以有更多的时间和精力投入软件的开发,你也可以把这些钱转赠给别的更需要钱的朋友们。于是,这就形成了一个人人知道感恩的美好的社会。。。

DSL 的作者也把他们用开源项目挣钱的经验分享出来,见:

Income Guide independent developers should read this!

当然,在分享经验页面的最后,有一句提示:“If this is helpful, please consider contributing” 🙂
Damn Small Linux(DSL)为什么那么成功?我的观点就这么几条,也许,还要考虑国家的开源大环境,我今天恰巧在 Linux Online 上看到一则新闻:Linux event planned for China,同样的新闻在Linux Foundation上的Linux Foundation Partners with Chinese OSS Promotion Union to Host Linux Developer Symposium in Beijing也有,在 中国开源软件推进联盟上也有公告:2008Linux开发者研讨会—-中国,这是不是说,中国开源软件正在走向春天?

同样,今天在 Linux Online 上看到 DSL 的创建者 John Andrews支持的一本Review: The Official Damn Small Linux Book

以上观点是我这位非IT出身的业余 linux 爱好者的乱弹之言,还望朋友批评指正,谢谢。

好玩易上手的轻量级 linux - Puppy Linux

简单试用了一下 Puppy Linux,我的 U 盘 linux 基本上就选上了它。在这里记录和分享一些心得。
Puppy Linux 以一只小狗为标志,启动时会“汪汪”的叫几声。

它是一款轻量级的、很有特色和自成体系的 linux live cd发行版(好像也可以以一般的形式安装在硬盘里),对硬件的要求也不高,但是比 Damn Small Linux 和 DeLi Linux 的要求高,好像最低要求是 586+128M 内存。而且它的中文支持比较好,现在有成熟的中文版可供大家使用了。我使用的中文版下载自:E-PUP Linux 中文项目 Puppy 217 NOP 中文版,上面也有一个精简版和包括一些额外软件的办公版。不过,我觉得试用的话就用这个 Puppy 217 NOP 中文版,精简版有些重要的功能没有:如可写挂载 Windows NTFS 分区,ADSL 客户端,五笔字型等等。

这里简单的总结一下我使用 Puppy Linux 的心得。

一、安装
包括U盘上的安装和硬盘里的非正式安装运行方式。
U 盘安装,很简单,把 U 盘格式化成FAT32格式(其它格式没试过), 然后用 syslinux 制作成可引导的 U 盘,并把那个下载下来的 iso 文件解开放在 U 盘的根目录,把 isolinux.cfg 重命名为 syslinux.cfg,并把其中的 “pmedia=cd” 去掉就行了;

硬盘非正式安装,把上述解开的 iso 文件下的东西同样复制到一个 FAT32 分区(估计ext2等也行,没试过)的根目录下,再在我已经有的 grub 菜单中加入 Puppy Linux 的启动项就行了。我在 grub 的menu.lst加的内容如下:

title Puppy Linux
root (hd0,8)
kernel /vmlinuz root=/dev/ram0
initrd /initrd.gz
boot

二、设置:
第一次进入系统之前需要你指定 X Windows 系统,先试Xorg,这样可以得到高的屏幕刷新率;不行的话试Xvesa,通用性好。我在3台台式机上试了,有一台可以用Xorg。
进入系统后,点击开始菜单Start -> Puppy Setup -> 网络设置 就可以设置好网卡和局域网。
点击开始菜单Start ->network -> Roaring Penguin PPPoE ADSL 就可以设置好 ADSL 客户端。

三、安装软件:
在开始菜单Start -> Puppy Setup -> Puppy 软件包管理器 就可以安装 Puppy 上的软件了,主要是那种 .pet 后缀的软件包。
还有一种不知道是不是叫软件包的扩展系统的方式,是下载一种后缀名为 .sfs 的文件,把它放在根目录下(和pup_217.sfs 同目录),系统启动后会自动发现它,你就可以加载和使用它了。如 E-PUP Linux 中文项目 上提到的适合办公用途的中文Office E-PUP Linux正式推出中的openoffice_217.sfs

四、保存设置
系统首次退出或重启时,会让你选择个人储存文件的大小,以后你就可以在安装了软件之后,或调整了设置后,当你退出系统时,系统就会自动保存你的设置。你可以在开始菜单Start -> File System -> 调整个人储存文件大小来增加这个文件的大小。这个文件保存在相同分区的根目录下,名称是 pup_save.2fs 。但是上面提到的精简版在桌面上还有一个保存设置的图标,是不是意味着精简版不能自动保存设置呢?我没有实验。

五、加载分区

你可以点击桌面“驱动器”的那个图标来加载你的系统里的驱动器,包括可写的 Windows NTFS 分区。

总之,Puppy Linux 是一个很有特色、易于上手、值得一试的很不错的 Linux 发行版。

DeLi Linux 中文翻译备忘录

DeLi Linux 是一个致力于为老旧电脑(486~PII)提供自由操作系统的轻量级桌面型 linux 发行版。它认为,扔掉那些老旧电脑是可耻的,一些不愿扔掉老旧电脑或者买不起新电脑的人可以用这些老旧电脑装上 DeLi Linux ,从而变为一台可用的系统。虽然,这些电脑也可以装上 Windows 95 类似的操作系统,不过,这些操作系统微软不再生产和支持了。针对于这些操作系统的软件也不再有了。所以,DeLi Linux 决定来承担这一使命。

我想说,DeLi Linux 的愿望是良好的,我赞赏他们的愿望。我试用了一下 DeLi Linux,确实,它能在我的 486DX100 + 24M 内存的机器上顺畅运行,但是,它的中文支持相当的差,我向DeLi Linux 的论坛提交了一则反映中文支持极差这个问题的帖子:Some experiments of using DeLi Linux with chinese,据 DeLi Linux 的作者 haary 回复,因为DeLi Linux-0.7.2 使用的是GTK1,GTK1 对unicode 没有支持,所以如此。DeLi Linux 未来的 0.8 版本将转换为使用GTK2,非 latin 字体将得到完全支持。所以,我想,DeLi Linux-0.8 的中文支持将有巨大的提升。

我觉得,如果 DeLi Linux 发展得好,那些老旧电脑的使用者将受益;如果 DeLi Linux 的中文支持发展得好,那么,老旧电脑的中文使用者将受益(包括我)。于是,当我看见了 DeLi Linux 的作者 haary 发的需要翻译人员的帖子:Translators wanted 后,我决定加入 DeLi Linux 现有的10种语言之一的中文的翻译。下面是翻译的网页地址:

DeLi Linux 英文主页 DeLi Linux 中文主页

DeLi Linux 英文WiKi DeLi Linux 中文WiKi

因为我的英文水平实在有限,错误之处在所难免。所以,如果你发现翻译中有什么错误的话,请点击这里反馈给我,谢谢。

在这篇日记的评论中记录我在翻译过程中碰到的一些问题。所以这篇日记取名叫备忘录。

把下面WiKi链接中出现的“chinese:” 去掉就是英文原文的地址。如果您对我的这些问题有什么意见或建议的话,请在评论中回复一下吧。谢谢。

Some experiments of using DeLi Linux with chinese (转帖)

转自:(Some experiments of using DeLi Linux with chinese

First, thank developers' effort. DeLi have a good goal: do a OS for that old machine, don't waste them, and make someone who can't afford new machine can use DeLi on a old machine, especially in some Third County.

Yes, it works well on my 486DX100 with 24M ram machine. But, when I try to use chinese on it, the big problem rose. I almost can't use any program in DeLi with chinese, except one: Dillo explorer. It isn't like some words in DeLi's homepage: "you can configure DeLi Linux to "speak" the language you want".

I have set "LANG=zh_CN.UTF-8" in /etc/profile with the help of Konqueror/Embeded enable unifont.

But, Konqueror can't display chinese too. Beaver can display and input chinese (I compiled a chinese input program called Fcitx on it successfully ) after set the font to chinese font, but it can't display or input english in Beaver :( . Abiword can't start simply when I set "LANG=zh_CN.UTF-8"

Firefox can display and input chinese, but it can't use the chinese fonts which I copied from Redhat Linux 9.0's "/usr/share/fonts" (Dillo can use it). Before use rehat's chinese fonts, I have executed "fc-cache -fv".

And, the chinese console enviroment "Zhcon + Screen + W3m" works well under my Redhat Linux 9.0 on my 486. But, when I try to compile Zhcon and Screen in DeLi, both of them faild.

Because the chinese issues is so much, it isn't necessary to write every error information of these program here.

I have read some posts in this forum of yours, you say: "Unicode is a big issue which I plan to address in the 0.8 release. Most current apps in DeLi don't have unicode support, because GTK1 has none." in Konqueror/Embeded enable unifont, so, I guess it will be better in chinese (and other non-english)language support.

I tried several mini Linux Live CD, CDlinux, puppy, konippox, etc.. all of them work well with chinese language (some of them have been translated into chinese). But they can't work on a 486. Damn Small Linux can works well on a 486 too, I want say, it is a good mini linux too. But, it also has very few chinese language support. DeLi linux has very few non-english language support too, but, DeLi linux has a good goal: make OS for that old machine, waste these machine is shameful, and these machine can be used by those people who can't afford new machine. Really a good goal.

Language is indeed a very big issue, especially for DeLi's goal: " Especially in the so-called third world, new hardware is not affordable. "

Maybe, you can add an entry called "Language Support " in WiKi?
Maybe, you can add a donation link on DeLi's website, this give a way to that people who want express their gratitude?

Hehe, I have a wish, only a wish, DeLi will has the very well non-english languages support capability like Ubuntu, but it can work well even on a 486 machine :)
My english isn't very well, if there are some improper words in my post , don't mind and point it out for me. thanks.

Wish you happy very day :)

DeLi Linux 中文翻译反馈 (Feedback for DeLi Linux's translation for chinese)

我们已经把 DeLi Linux 的主页翻译成了中文,我们将陆续翻译它的 WiKi 文档和其它东西。 如果你发现了任何关于中文翻译的问题或者有任何建议的话,请在这里回复或者发送邮件到 mdx-xx#tom.com (把#换成@)。谢谢。

DeLi Linux 英文主页      DeLi Linux 中文主页

DeLi Linux 英文WiKi     DeLi Linux 中文WiKi 

We have tranlated DeLi Linux's homepage into chinese, and, we will translate its WiKi documents and some other things. If you find any problem or any advice for its chinese translation, please comment here or contact us with email: mdx-xx#tom.com (change # with @). Thanks a lot.

DeLi Linux english homepage      DeLi Linux chinese homepage

DeLi Linux english WiKi     DeLi Linux chinese WiKi 

试用一个轻量级的Linux发行版:DeLi Linux 0.7.2

我的486装一个可用的linux with X Windows过程中,我还试用了一种轻量级的Linux 发行版:DeLi Linux 的0.7.2版。 下面将我的一些试用心得作一小结。

首先,这个发行版的定位很明确,就是为那些老旧电脑提供操作系统。而且,安装过程也像一个正规的发行版那样,而不是一个live cd。确实,这个发行版的确适合老旧电脑。它的作者在486 +16M的老笔记本上测试上面的每一个软件保证其顺畅运行。我把它安装在一台 486DX100 + 24M的台式机上确实能顺畅运行原版的DeLi Linux的程序(测试了大多数桌面上的软件)。

下面我以现在的最新版本DeLi Linux 0.7.2 为准,对它的安装、配置、Ports 系统、中文支持几个方面作一个小结。当然,它的DeLi Linux Wiki的文档说得很详细,你应该先看看。

一、安装(详见WiKi中的Installation and configuration):

首推的安装方式是把从主页下方下载地址处下载下来的 deli-0.7.2.iso 刻到光盘上,再从光盘上安装。

我使用的是把下载下来的这个iso文件解开,放在一个硬盘分区的根目录下(我是放在一个FAT32分区中的)。然后,下载安装软盘,分别是 deliboot.dskdeliroot.img,依次用deliboot.dsk和deliroot.img引导系统,按提示选择你的安装文件的来源设备,如/dev/hda5。还有就是什么键盘类型、语言等等跟一般发行版差不多的问题。按提示回答就是了。

据说,用安装软盘还可以在局域网中连到另的电脑上安装。我没试过就不说了。

二、配置(详见WiKi中的Installation and configuration):

安装完成后重启进入系统,在root下可以输入delisetup命令进行配置。一般的配置都很容易,只是选择X Server时要注意一下,如果你选择了tiny X Server,进入系统后的鼠标如果不动,可能需要另外设置一下。我的串口鼠标就是不动了,在 /dev下手工连接了一个到串口的符号连接 ln -sf /dev/ttyS0 /dev/mouse ,这样 X下就有鼠标了。不过一重启就没了,所以,我在一个系统启动文件好像是/etc/rc.local中添加一句 ln -sf /dev/ttyS0 /dev/mouse就解决问题了。我的串口鼠标在控制台下的gpm也不工作,同样在 /etc/rc.local中添加 gpm -m /dev/ttyS0 & 就行了。

如果deli没有认出你的设备,如我的网卡,那么还得手工加载,如我就在 /etc/rc.modules 中手工加载我的8139网卡: /sbin/modprobe 8139too

如果你是ADSL拨号上网,那么,在root 用户下执行 pppoe-setup命令,依照提示回答保存就是了。不过,好像它没有开机就连线的选项,如果你要开机联网,可以像我这样,在/etc/rc.local 后面加上一句 pppoe-start & 。

三、Ports 系统(见WiKi中的The ports system):

除了发行版中的二进制包,DeLi Linux还有一种软件安装和升级的方法:BSD Unix 世界的 ports系统,直接应用ports系统从网上下载源码,自动编译安装或升级。它使用的是Crux的ports系统。

四、中文支持:

我试了一下中文软件的使用,效果很不理想(也许是我的方法不对,汉化的方法不对),详见我在网摘:关于Puppy、Deli、Knoppix类、CDlinux等mini型Linux(支持中文为主)的网摘(links for 2007-11-09)
下针对DeLi Linux的评论。在拷贝了redhat linux 9.0下的中文字体到相应目录下,能够完全成功使用的两个软件是fcitx3.1(中文输入法)和 Dillo 浏览器,firefox可以显示和输入中文,不过不能使用我加入的RedHat Linux 9.0下的ZYSong18030中文字体。像字处理软件、电子表格软件、konqe浏览器等等,基本上不能使用中文。可能,在修改ports系统中 Pkgfile相应的编译选项重新编译后,DeLi Linux的中文支持会有改观(详见:Konqueror/Embeded enable unifont)。如:编译时加入xft字体的支持。

而且,就是这少得可怜的中文支持,还必须修改一个配置文件,即把/etc/profile中的export LANG='zh_CN' 改成 export LANG='zh_CN.UTF-8' ,而且,只能是UTF-8编码,因为好像DeLi使用的uclibc现在只支持UTF-8(详见:Konqueror/Embeded enable unifont

所以,作为像我这样的普通的用户来说,要容易的在DeLi Linux下使用中文,还真不容易。

也许,我会继续对DeLi Linux的中文支持作一些摸索,也许,甚至还会改变DeLi Linux 中文支持差的印象,也许。。。

CDlinux-0.5.9的安装和使用简介

上周,为了找到一个能在486上运行的带X的linux发行版,我又试了一些发行版,其中有一个据说是华裔博士做的CDlinux的最新版CDlinux-0.5.9。

从CDlinux的上述主页上可知,这个发行版定位于系统维护,并且全面支持简体中文。

下面简单说一下我是怎么把CDlinux怎样装到硬盘和U盘上和配置 ADSL、怎样制作包(package)和模块(module)的。

不知是怎么一回事,我简单按照主页上的方法不能成功把CDlinux装到硬盘或U盘上(我初步怀疑是作者更新了软件却没有更新相应的文档),文档支持的缺乏是CDlinux被网友提及较突出的问题。

1、把CDlinux-0.5.9装到硬盘上:

我试了一下,fat32和ext2都行,ntfs不行,其它的没试。把下载下来的CDlinux-0.5.9解开,linux可以直接用mount -o loop CDlinux-0.5.9.iso /mnt/isofile打开里面的文件,把里面的整个boot目录拷贝到某个硬盘分区的根目录下。主页上介绍的是用loadlin程序在纯DOS下引导,因为我的机器上有现成的linux的grub引导程序,就直接用grub来引导了。直接在/boot/grub/menu.lst中添加下面一项:

title CDlinux: LANG=zh_CN.UTF8

root (hd0,8)
kernel /boot/CDlinux/autoboot/bzImage vga=791 CDL_LANG=zh_CN.UTF8
initrd /boot/CDlinux/autoboot/CDlinux
boot

关于“ root (hd0,8)”是我的机器上的配置,指的是第一个硬盘的hda9。你需要根据自己的情况修改。关于硬盘分区在linux下的表示,请搜索有关网页。

或者你可以在linux下用root用户执行命令fdisk -l,找到你安装cdlinux的分区,如是第一个硬盘的hdaN,那么就是root (hd0,N-1),如果是第二个硬盘的hdbN,那么就是 root (hd1,N-1)。

2、安装在U盘里:

我的U盘是一个分区,fat32 格式。按照主页的说明,在SYSlinux上下载了能在各种操作系统下制作可启动U盘的程序,最新版的是syslinux-3.52.zip。解开这个文件,选择相应操作系统的syslinux命令来制作可启动U盘。如Linux下用unix目录下的:syslinux /dev/sda1,Windows下用win32目录下的:syslinux.exe D: (根据你的分区情况作相应修改)。

然后,把整个boot目录拷贝到U盘分区的根目录下。再在CDlinux主页上下载syslinux 的配置文件并把里面的文件展开到根目录下,然后根据你的情况修改里面的syslinux.cfg文件,我把里面的“kernel bzImage”全部替换成"kernel /boot/CDlinux/autoboot/bzImage",把"initrd=CDlinux.gz"全部替换成“initrd=/boot/CDlinux/autoboot/CDlinux”,实际就是现在U盘里的相应文件。

于是,当你把电脑设为从U盘启动,就可以使用了。

3、注意,CDlinux启动时好像会把扩展的包什么的(如firefox,中文locale,中文字体等等)加到内存里,如果你的内存小,可能要删除一些这样的包才行(我没试过)。如,我把CDlinux-0.5.9装在一台486DX100 + 24M,根本就启动不了,好像提示不能把映像加载到内存中。当然,CDlinux的定位本来就不是说用于低配置电脑运行,而是系统维护。

4、配置ADSL连接。

CDlinux自动启动DHCP客户端,在使用DHCP的局域网中可以不用配置。如果用ADSL上网,用pppoe-setup就可以配置了(好像要sudo),程序会问你一些参数,如ADSL用户名,密码,DNS(一般是自动从ISP获取的就填server)。配置好后,pppoe-start就启动连接了,关闭用pppoe-stop。

5、制作包(package):

先看作者主页的how-to内容。这里以替换CDlinux-0.5.9原有的fcitx输入法为例,原有的是没有五笔输入法的,现在要换上有五笔的。我原来在redhat linux 9.0下编译安装了一个fcitx3.1,先把系统中有关fcitx的文件找到,我用的是find命令,你也可手工找。

find /usr -iname “*fcitx*” -exec tar rfv “fcitx.tar” {} \;

然后把fcitx.tar在一个文件夹A中解开,得到fcitx的文件;再把CDlinux原有的boot/CDlinux/lang/zh_CN.UTF8/fcitx-3.3.1-cdl.tgz 在一个文件夹B中解开。然后,对照B中的文件内容,把A中的文件拷过来替换掉对应的文件。我这样做的目的是尽量减小体积。实际上,就用A中的全部文件打成一个包应该没有问题。这样,我去掉了A中的二笔等等输入法和帮助文件。B中应有目录etc,home,usr/local/bin,usr/local/share...。然后在B中用命令“ tar cfvz fcitx-wb-3.1-cdl.tgz ./* ”把其中的文件压缩成一个tgz包放回/boot/CDlinux/lang/zh_CN.UTF8中就行了。
6、制作模块(module)

先看作者主页的how-to内容。现在为CDlinux-0.5.9制作模块的关键是要知道现在的主页上介绍的用 mkfs.cramfs制作模块文件的方法是过时的,CDlinux-0.5.9现在新用了一个squashfs的文件格式(用file filename可以得到原文件格式等信息),需要用mksquashfs命令制作,如果你的系统中没有这个命令,到squashfs的主页下载一个。

还有一个要点是要知道在CDlinux-0.5.9中:/usr, /lib 等等系统目录不可写的,/usr/local可写,/etc也可写,其它的没试。

这里以我从DSL上下的opera852的模块制作为例,简述模块的制作。

用“ tar xfvz opera852.dsl ”命令解开opera852的文件到目录temp下,去掉DSL包专有的home和tmp目录,把 opt/opera852下面的bin, lib, share目录移到temp中,去掉opt目录。这时temp目录下有etc , bin, lib, share, usr目录。

把文件作一些需要的修改,我把etc下的opera6rc 作了一下修改如下(指定locale目录和启用xft字体):

; Put any default settings here that are overridable by users

[User Prefs]
Language Files Directory=/opt/opera852/share/opera/locale/
Force DPI=96

Enable Xft Fonts=1

用“ mount -t squashfs -o loop firefox-2.0.0.6-cdl.md /mnt/squash ”命令把CDlinux原有firefox模块挂载到/mnt/squash目录,把里面的3个隐藏文件.autoreg, .mount_point, .init,拷贝到temp目录下,并仿照着改写成需要的样子。

.autoreg不知是做什么的,空文件,没动;

.mount_point中的内容:

# .mount_point: indicates where to mount this image

/opt/opera852

.init文件的内容:

#!/bin/sh
#
# .init: init script for this module (optional)

MyDir=`dirname $0`
LnkDir=/usr/local

[ -d $LnkDir/bin ] || mkdir -p $LnkDir/bin
[ -d $LnkDir/lib ] || mkdir -p $LnkDir/lib
[ -d $LnkDir/etc ] || mkdir -p $LnkDir/etc

ln -sf $MyDir/bin/opera $LnkDir/bin/opera
ln -sf $MyDir/etc/opera6rc $LnkDir/etc/opera6rc

cd $MyDir/usr/lib
for i in libXm.so.*; do
ln -sf $MyDir/usr/lib/$i $LnkDir/lib/`basename $i`
done

然后,到temp目录的上级目录下,执行命令:“ mksquashfs temp opera-8.52-cdl.md ”就做了一个opera的模块文件opera-8.52-cdl.md。把这个模块文件放在/boot/CDlinux/extra目录下就行了。

7、CDlinux可以做什么

据主页上说,主要是用于系统维护,而且,CDlinux的扩展性很好,你把按你的需要对其进行改造。

8、CDlinux的缺点

一个比较突出的问题是文档少。关于扩展包制作没有详细的示例,而CDlinux本身的技术实现几乎没有提及。作为我见过的唯一的华人的成气候的mini型linux发行版,文档的丰富很关键。像DSL,deli等等发行版都有专门维护的文档和交流论坛。而我好像还没有发现CDlinux有交流论坛。关于cdlinux的文章基本上都分散在各个linux论坛或个人博客中。不信,你google一下“cdlinux”。

9、疑问:

1)、有没有办法避免系统启动加载太多的东西,并且改造成中文版的486可用的带X的linux发行版,像DSL, deli等等?

如有错漏还请指点一二,谢谢。

关于Puppy、Deli、Knoppix类、CDlinux等mini型Linux(支持中文为主)的网摘(links for 2007-11-09)

局域网内Linux网络设置小结

在实现为我的486装一个可用的linux with X Windows的目标的过程中,我试过Redhat Linux 9.0Minix3Damn Small Linux 3.4.4(简称DSL-3.4.4)Slackware Linux 10.2。除了Minix3的网络设置没有完成外,这里针对上面另3种linux发行版在我的486机器所在局域网环境中的网络设置作一个比较和小结。主要涉及:升级内核更新驱动程序,手动加载网卡,网络配置,用iptables实现简单NAT服务提供共享上网。

1、我的网络环境
在一个小的局域网中,机器不超过10台,网关路由器IP:192.168.1.1,路由器通过ADSL接入因特网。客户机可用dhcp上网(在网上听说这样的网络任意一台机子都不能设置为静态IP,否则会出问题,不过,我的机子恰恰就是设置的静态IP,至今有大半年了吧,也没有问题,可能是机子少的原因吧?)。

2、我的486机器的网络环境
操作系统:如上述3种;两块10M的ISA网卡(大概是如此,准确名称或有出入),一块是DLINK-220的,一块是INTEL Eexpress 16的;因为路由器插口数目不够,另一台机子和我共用一条网线,所以在机器上用iptables实现简单的NAT服务提供共享上网。

3、关于与此文网络设置相关的内核编译
因为原来使用redhat linux 9.0的自带内核版本是2.4.20-8,我的Eexpress网卡在上面竟然不能正常工作(能识别,但不能上网),于是,新下了一个2.4.35.3的内核,把Eexpress 16的驱动编译成模块;另外,如果要使用iptables,内核中相关编译选项也要选上。关于这两个问题的内核编译,详见日记:为486上的Linux编译一个2.4.35.3的内核
Slackware-10.2中自带的几个内核2.4.26和DSL-3.4.4自带的2.4.26都能正确的驱动Express 16网卡。

4、手动加载网卡
如果你的网卡由于某种原因不能被系统自动识别,你可以手动加载网卡。

5、设置网络
上面三个版本的linux都有自动设置网络的命令,redhat linux 9.0 和 slackware-10.2是netconfig,如设置第2块网卡在redhat linux 9.0中为 netconfig --device=eth1,slackware的netconfig命令好像不大相同,后面会讲。DSL-3.4.4在管理菜单中也有网络设置选项。你也可以手动修改配置文件。

6、各个操作系统的相应配置文件:
1)Redhat Linux 9.0

网卡加载:/etc/modules.conf
内容:

alias eth0 ne
options ne io=0x240

alias eth1 eexpress
options eexpress io=0x300 irq=3

或者写在/etc/rc或其它什么系统启动脚本中,如:

/sbin/modprobe eexpress io=0x300 irq=3

IP设置:
文件1(对eth0的设置,这里是DLINK-220那块网块):/etc/sysconfig/network-scripts/ifcfg-eth0
内容:

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.106
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

文件2(对eth1的设置,这里是INTEL Eexpress 16那块网块):/etc/sysconfig/network-scripts/ifcfg-eth1
内容:

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0

注意:eth1网卡没有设置网关,它用来在两台电脑之间为另一台电脑提供共享上网作网关用。后同。

与我这台机器相连的另一台电脑需要把他的网卡和我的这块eth1网卡相连,通过后面介绍的设置,他的电脑就可以通过我的电脑共享上网。

域名解析设置:/etc/resolv.conf
我的机器上的内容:

nameserver 192.168.1.1
search mdx

关于与我的电脑相连的另一台机子的网络设置和在我的机子上启用iptables提供nat服务是几个操作系统都相同的,放在最后说。

2)、Slackware-10.2
网卡加载:在文件/etc/rc.d/rc.modules中手工添加在后面(至于slackware怎样自动检测网卡,我不知道);
内容:

/sbin/modprobe ne io=0x240
/sbin/modprobe eexpress io=0x300

尽管我没有指定上面网卡的名称,系统还是自动的把ne的网卡(DLINK-220)认作eth0,eexpress的网卡认作eth1,或许跟写命令的顺序有关?我没有验证。

IP设置:在文件/etc/rc.d/rc.inet1.conf中设置(可以用netconfig命令设置,也可手工添加,slackware中的我试了一下netconfig命令,暂时还没找到单独为第二块网块设置的参数,所以在slackware中的第二块网卡的设置是手工加的);
相关的内容(非全部):

# Config information for eth0:
IPADDR[0]="192.168.1.106"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

# Config information for eth1:
IPADDR[1]="192.168.0.1"
NETMASK[1]="255.255.255.0"
USE_DHCP[1]=""
DHCP_HOSTNAME[1]=""

# Default gateway IP address:
GATEWAY="192.168.1.1"

域名解析设置,与上一样,同样在文件/etc/resolv.conf中设置;
我的机器上的内容:

search localdomain
nameserver 192.168.1.1

3)、DSL-3.4.4

Damn Small Linux 的网络设置有点特别,不管你是在网络设置菜单设置或手工添加都写在下面几个脚本里的:/opt/bootlocal.sh,/opt/eth0.sh,/opt/eth1.sh。
对照上面两个系统的设置,我就不详细说了,把几个文件贴出来:
/opt/bootlocal.sh内容(里面不只是网络设置):

#!/bin/bash
# put other system startup command here
/sbin/syslogd
/sbin/modprobe ne io=0x240 irq=5
/sbin/modprobe eexpress io=0x300 irq=3
/sbin/modprobe sb io=0x220
/opt/nat.sh &
/opt/eth0.sh &
/opt/eth1.sh &
loadkeys us

/opt/eth0.sh内容:

#!/bin/bash
pkill pump
ifconfig eth0 192.168.1.106 netmask 255.255.255.0 broadcast 192.168.1.255 up
route add default gw 192.168.1.1

/opt/eth1.sh内容:

#!/bin/bash
pkill pump
ifconfig eth1 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 up

注意,在上面的/opt/bootlocal.sh文件中执行了一个文件/opt/nat.sh,这个文件就是启动iptables的nat服务的,我把它手工添加进了上面的那个自动启动脚本里。也可以不添加,需要时手动执行一下就是了。

这里是/opt/nat.sh的内容:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j SNAT --to 192.168.1.106

4)、手动使用iptables的nat服务的脚本,像上面Redhat Linux 9.0 和 Slackware-10.2中我就使用下面的脚本nat来开启和关闭nat服务(slackware-10.2的iptables命令默认是装在/usr/sbin/下面的,所以下面的“/sbin/iptables”要改成“/usr/sbin/iptables”):

#!/bin/sh
# Name: nat
# Author: littlebat
# Date: 2007/10/30

echo "You use the iptables firewall.";
ETH="eth0" #有外网IP的网卡
src="192.168.0.0/24" # 内网地址段
TARGET="192.168.1.106" # 网关地址

case $1 in
start)
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -A POSTROUTING -t nat -s $SRC -j SNAT --to $TARGET
echo "Nat starting ...... [ OK ]"
;;
stop)
echo 0 > /proc/sys/net/ipv4/ip_forward
echo "Nat closing ...... [ OK ]"
;;
*)
echo $"Usage: $0 {start|stop}";
esac

要开启nat时输入:nat start,关闭时输入:nat stop
当然,我只是简单的为另一台机器提供共享上网。实际上,用iptables可以设置非常复杂的防火墙。我暂时用不着,也就不研究它了。

5)、需要借助我的机子共享上网的那台机子的网络设置:
另一台机子需要设置成静态IP,参数如下:
IP:192.168.0.2
netmask:255.255.255.0
网关:192.168.0.1
域名解析:192.168.1.1

因为我的机子性能太差,所以既没有使用DHCP客户端程序获取静态IP,也没有使用DHCP服务器程序为另一台机器提供DHCP上网服务,都是静态的。

上面几种网络设置的形式,我最喜欢DSL中用脚本设置,我觉得这样的通用性和灵活性是最好的。
6)、疑问:
(1)、在DHCP的局域网中使用静态IP有什么问题?
(2)、Slackware中的netconfig命令怎样配置多块网卡?
(3)、Slackware中/etc/rc.d/rc.inet1.conf中,配置的网关在这个文件中是不是多块网卡共享的?为什么不像redhat linux 9.0和DSL那样每块网卡在分别的文件中配置?配置的这个网关对我配置的第二块网卡有什么影响没有?

至此,我的机子中3个Linux操作系统的网络设置作了一个小结,供备忘和有需要的朋友参考。水平实在有限,错漏之处和针对我的疑问还望提示一二。谢谢。

在486上初试Slackware Linux

在实现为我的486装一个可用的linux with X Windows的目标的过程中,我也试过Slackware Linux(以下简称slackware)。因为我在网上读到slackware对硬件的要求比较低,而且定制性比较好。初步试了一下,感觉确实是名符其实。我用的slackware的版本是10.2。为什么不用最新的12.0呢,后面我会说的。

在我的486DX100+24M的老机器上,slackware的启动时间是最短的,完成基本a系列软件的安装后,添加了控制台的中文环境zhcon + w3m,而且安上一个X和添加X的中文支持后,硬盘占用也不过400M左右。不过,如果你要用locale -a命令查看机器里所有的locale列表,你还需要安装glibc-2.3.5-i486-5.tgz。而原来安装Redhat linux 9.0,仅选择字符界面的基本系统安装就大概1G左右(我曾设法只安装必须的,不过好像redhat linux 9.0安装时的定制性不太高)。对于系统的定制需要和方便省事上来说,我感觉slackware在这个平衡上是做得比较好的。像Ubuntu linux和Redhat linux等,使用比较方便,但是定制性不好;LFS等从源码构建整个系统,我想定制性是一流的,可是复杂的操作步骤和漫长的编译时间让我望而生畏,况且我的机器老掉牙,可能编译时间更长。我也一直没有尝试这类系统。而slackware,我觉得达到了比较好的平衡。

安装slackware比较容易,我因为用不着完全安装,就没有刻成光盘,而是从网上下载单独的分组的软件包,再按照slackware网上的安装帮助制作bare.i的启动软盘,install.1,install.2的root软盘。从软盘引导安装了a系统基本系统和一些X Windows支持包和网络配置包。不过,我发现最新版的slackware-12.0没有上面提到的3个软盘映像文件,用slackware-11.0的3个软盘映像文件来安装slackware-12.0的系统会失败,安装glibc-solibs这个包时报告“FATAL: you need to be running a 2.6.x Kernel in order to upgrade to this version of glibc.”,别人也碰到类似的情况,见:LinuxPackages :: View topic - Slackware12-CD not bootable - problems to create bootdisk。于是,我就找了一个速度快的老版本Slackware-10.2的镜像:ftp://ftp.cs.cuhk.hk,而且这里好像只有10.*的版本,我下载了一些包,速度基本上上、下午都能稳定在130~150kb。我的是四川电信。

Slackware安装、维护软件包的命令也比较好记:installpkg安装,upgradepkg升级,removepkg卸载,makepkg制作软件包,explodepkg在当前目录解压软件包而不执行安装脚本。具体参数用“命令 --help”方式查看。

另外,安装时a系列里的kernel-ide的内核包应该是至少要安一个,我把kernel-ide-2.4.26-i486-4.tgz、kernel-ide-2.4.29-i486-4.tgz、kernel-ide-2.4.31-i486-4.tgz全安装上了。

安装了基本系统的slackware-10.2是没有网络配置工具的(如ifconfig, ping等命令),需要下载tcpip包,slackware-10.2里新点的版本是tcpip-0.17-i486-35.tgz。安装了它后,一些网络相关文件(如/etc/rc.d/rc.inet1,/etc/rc.d/rc.inet1.conf)才会出现。你才能用/sbin/netconfig命令配置网络。在我机器上,用netconfig命令完成的slackware-10.2的网络配置是保存在/etc/rc.d/rc.inet1.conf中的,然后/etc/rc.d/rc.inet1会调用这个文件完成网络配置。dns设置是保存在通用的/etc/resolv.conf文件中的。

在slackware-10.2上安装支持中文的X Windows,我安装的包有:x11-6.8.2-i486-3.tgz(X服务器),x11-fonts-misc-6.8.2-noarch-3.tgz(说是运行X最基本的字体),blackbox-0.70.0-i486-1.tgz(窗口管理器,blackbox-0.65.0-i386-1.tgz的中文支持好像有问题),glibc-i18n-2.3.5-noarch-5.tgz(locales,里面有各种locale),从Redhat linux 9.0下直接拷贝过来的中文字体(把目录/usr/share/fonts/zh_CN复制过来,里面有zysong.ttf)。中文输入法我没装。

Slackware-10.2的locale在/etc/profile.d/lang.sh中设置,我设置的是:

export LANG=zh_CN.gbk
export LC_ALL=zh_CN.gbk

还有一个比较有意思的是,我并没有在/etc/X11/xorg.conf中设置上述的中文字体路径,可slackware能自动找到,并在blackbox的窗口信息中正确的使用我在blackbox的style中(/usr/X11/share/blackbox/styles/下面的style文件中)设置的zysong字体:

*font: ZYSong18030-12
...
menu.title.font: ZYSong18030-12:style=Bold
...
window.font: ZYSong18030-12:style=Bold

。我看系统启动时启动了一个在/etc/rc.d/rc.M中定义的字体相关脚本:

# Update the X font indexes:
if [ -x /usr/X11R6/bin/fc-cache ]; then
echo "Updating X font indexes: /usr/X11R6/bin/fc-cache"
/usr/X11R6/bin/fc-cache
fi

也许是这个脚本的作用?需要时再继续学习。

在没安X之前,启动系统用top命令查看内存占用16M左右;也许是安X后,启动系统用top看内存占用达到了20M(并没有启动X)。也不知是那个服务的作用?

总的来说,感觉slackware不错。