说明:本系列文章,作者为Hok-men Chan;本系列文章纯粹yy,纯粹八卦;除特别标出外,在2003年11月至2004年3月间写成。并且,本文的发布与再发布均须遵循GNU Free Documentation License。
标 题: telnet-based BBS八卦 section 5 (原创)
(Wed Mar 31 16:22:48 2004)
telnet-based BBS八卦
Author: Hok-men Chan ( hokmen (dot) chan (AT) gmail (dot) com )
License: GNU Free Documentation License
(link: http://www.gnu.org/licenses/fdl.html )
Copyright:
Copyright (c) 2004 Hok-men Chan
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
5 telnet-based BBS和各种各样的网络服务
5.1 telnet-based BBS和新网络服务
5.1.1 telnet-based BBS和IPv6
我所知道的最早的显示IPv6地址的对外开放的telnet-based BBS是清华网络中心ipv6试验床的“第六星际”,但显然是只做了粗略的for IPv6的开发,有些bug ,个别IPv6地址没有显示出来。另外中国科技大学的ipv6试验床上也曾出现过一个IPv6地址上的bbs,能让IPv6地址的ip连进去,但并没有显 示IPv6的地址,因此不算真正的forIPv6的telnet-based BBS 。台湾的铭传神话BBS 也是一个开放的for IPv6的BBS ,而且还推动了台湾IPv6连线版的开版。我所知道的,还有两个地下的BBS 是for IPv6。前面所说的所有这些forIPv6的BBS ,一个也没有用到2001::的正式商业地址,全是3ffe::的6bone 的实验性地址。
目前在开放的BBS 开发板块发布的关于bbsd由IPv4转向IPv4/IPv6 兼容的双协议栈的内容的相关文章有两篇:gzmon@bbs.nju.edu.cn(monster@bbs.zsu.edu.cn)于2002年12月 在小百合的BBSDEV版所发的针对Firebird2000的从IPv4转到IPv4/IPv6 双协议栈的教程,就教程和里面所附的源代码本身而言,相当详细;另外,sby@cs.mcu.edu.tw 于2003年5 月在铭传神话BBS 的Install_BBS 连线版发表了一篇同类型的比较简略的介绍文章,可惜没有附源码。ps:他于2003年9月在同一版面发了一篇关于把innbbsd 修改成双协议栈的文章,里面附的源码是innbbsd for WD BBS的修改。
5.1.2 telnet-based BBS和短信
现在的telnet-based BBS,已经有人发展出站内的多行message。我见到smth已经实现了这个功能。如果用ncurses 库或者发展出类似的但超轻型的库来画框图,那么输入和显示多行message 的for telnet的人机界面就非常舒服。当然,web 界面的telnet-based BBS做到多行message,只要另外跳个专门处理message的窗口出来就行,添加这个功能的编码难度要小得多。
多行message 引发的一个好处是,如果telnet-based BBS可以发短信的话,让短信不限于原先bbs 的一行message 三十来个汉字的长度而充分利用最大短信长度。
现在的telnet-based BBS已经可以发手机短信。AKA 公司和zixia.net 开发出了for BBS 的手机网关的lib ,zixia.net 和smth都在用,只需要BBS 用户把他们的手机号码绑定在他们的BBS 帐号上,并通过确认程序,就可以发短信了,不知道效果如何。这样,BBS 用户除了以前可以在oicq、popo和各大短信商的网站上给亲朋好友发短信外,又多了一个短信平台。telnet-based BBS发短信的另外一个好处是,BBS 的系统维护、站长和站务们可以订阅BBS 紧急情况的短信,更及时地处理突发问题,不过却引发另外一个问题,短信费用提高了BBS 站点的管理成本。
5.1.3 telnet-based BBS和IM(Instant Messager)
telnet-based BBS和IM(Instant Messager)是天生的一对竞争对手。有位在1995年开始就参与某地校园网建设的“老家伙”,也是他们学校校园网BBS 最早的一批网虫,看到他们学校的BBS 的许多热门版面在宿舍网开通一两年后变成发泄和无理漫骂的地方后,变得不那么赞同BBS 的发展。他的理由很简单,BBS 不是面对面的,不是点对点信任的,IM这种点对点的软件会是少磨擦多信任的地方。当然了,IM比telnet-based BBS更简单,更容易用,对于严重依赖人气的公开和开放注册的BBS 来讲,IM是个很大的竞争对手。
但有一条,telnet-based BBS的结构体系是个兼容并包的体系。如果有了支持一些IM协议的网关,一样可以做到在BBS 上发信息到别的人的IM client 上。目前有开源的代码的IM协议有jabber、ICQ 、msn messager、yahoo messager、AIM ,有已经被协议分析出来的有源代码的IM协议有oicq。当然了,使用在商业运营中的并非完全公开的协议会有政策和政治、法律上的风险。
用已经在商业运营中的IM协议发信息,当然要像在BBS 上发短信那样绑定一个IM帐号才行。具体的程序和方法可以参考短信网关和短信lib for BBS 的设计理念。
用GPL 方式开源的jabber,在非商业运营的BBS 中其实可以得到更好的应用的。jabber协议的用户名设计,让它可以进行多server的message 交换。jabber的用户名用类似username@jabber_server_name的形式,对应于telnet-based BBS,完全可以用username.bbs@jabber.BBS_server_name、 username@jabber.BBS_server_name 的形式,甚至直接地用username@BBS_server_name的形式。再加上gbk<=>big5的网关或者gbk<= >unicode<=>big5的网关支持,在BBS 的多行message 支持的基础上实现所有简体繁体BBS 用户的message(以及jabber client)的互连互通,在理论上和技术上完全没有问题。
IM的网关,需要用户登陆,在IM server 端不断地记录用户状态直到IM用户下线为止,这样有个问题,比较容易消耗IM网关和IM server 的资源。对于同时在线人数极多的BBS 来讲,有必要有独立于telnet-based BBS主服务器或者讨论区存储服务器之外的单独一台服务器来负担这个任务。
5.1.4 telnet-based BBS和BitTorrent
有粘贴附件或者放链接的功能的php 或者cgi 的web forum ,有许多被改造成支持BitTorrent的种子粘贴、下载和BT trackor状态、BT种子状态的显示的功能。
其实在许多telnet-based BBS开通附件功能后,一样可以做到现在php forum 或者cgi forum 能做到的for BitTorrent的功能。当然了,在线id数量极多的telnet-based BBS 如果还兼做BT trackor,为了提高效率和安全性,恐怕要用c/c++ 来重新写那个原来用python写的BT trackor,至少也得用perl写一个。如果不这样做,那么还是需要扔到BBS 主服务器或者讨论区存储服务器之外的服务器上来做,以不加重主服务器的系统负载。
5.1.5 wiki和blog
wiki和blog近几年比较热门。wiki,“open editing”的模式,网上公共服务的一种典型,利于众人合作来形成或复杂或简单的文档,也有人用wiki来记笔记,组织文档。而blog则像 email 服务那样是面向个人的,是个人用于展示自己或者存放私人记录的地方。
和传统的telnet-based BBS的服务相类比,wiki像不仅仅斑竹而且还有版友维护的精华区,而blog就是个人板面了。话说回来,如果未来bbs 发展到一定程度,版面文章数量和精华区数量让斑竹难以全面顾及,用wiki的方式让板友自己来维护精华区也不错的说。近两年blog更热一些,不少站如 ptt2、smth、nju 等开了以个人板或者个人文集的形式出现的blog服务。目前各种telnet-based BBS的blog实现各有春秋,但telnet界面无法非常完美的和web 界面的blog结合起来,比如说在telnet界面上比较难找到某个id或者某个主题的blog,排版也不是太容易。有的站点并没有实现telnet界面 上的blog显示或者编辑。
但毕竟blog和wiki都是web 服务发展而来的,在telnet界面上不能像web 界面那么方便地处理blog和wiki。幸运的是现在的telnet界面基本上能做自动分行( 虽然很多都没有对英语单词和标点符号做特别处理) ,如果在自动分行的基础上开发出类似于cvs的保存多个版本并能任意恢复的功能,提供和存储引入wiki模式( 仅仅是telnet界面下的一种模式,实现上仍然和web 界面的wiki有很大区别,这个区别下面一段讲) 的精华区文章、目录结构的各个版本的对照,记录编辑文章的用户的id和ip,那么就能在文字上实现90% 的web 界面wiki的功能了。
wiki的"open editing"特性,比较适合让理工类的学科的文档逐渐丰满和趋向中立、统一,但文科类的文档可能有些时候会有众口难调的情况出现,毕竟“文无第一”。 因而,如果要在telnet-based BBS推行wiki形式的精华区,可行性最大的是技术型的版面。不过wiki和目前的bbs 精华区程序最大区别是一般的wiki最小的表现元素-wiki 页面的存放都是一维的,靠页面间相互的超级链接组织起来,而bbs 精华区程序所处理的对象是多层目录结构的文件,虽然可以把文件编号的作用等同于wiki的页面名称的作用,但如果同时让这两种不同概念的实现对bbs 精华区文章进行操作,仍然有许多细致的工作要做。
话说到这里,telnet-based BBS也应该做一份关于BBS 技术文档的wiki。telnet-based BBS,尤其是Firebird系列,虽然各个版本差别甚大,但相互借鉴的地方也是非常多,Firebird2000系列也借鉴了不少maple系列的优 秀设计。这样,更应该形成一个BBS 界共同维护的文档库,以促进知识、技术资源的整理、整合以及交流。
5.2 telnet-based BBS和旧网络服务
5.2.1 ftp 服务
ftp 服务,虽然说表面上和telnet-based BBS不着边际,但telnet-based BBS的确是个非常好的控制器平台。2001年的时候monster@bbs.zsu 做出了第一个可以在proftpd上动态封ip的patch(以前proftpd 可是ftpd的新潮流,不过如果要封ip,需要改配置文件并让ftpd重新读一次配置文件,现在在*nix上新开的ftp server基本上是proftpd、vsftpd和glftpd三家的天下了) ,就在zixia 上听到传闻,bbs.zixia 的管理层可以直接在bbs 上对ftp.zixia 进行操作,封ip立刻起效。
现在还有个mini的ftpd深受telnet-based BBS的文化影响。改ftp 设置,可以通过改config.h来实现,并且把配置直接编译进可执行文件。在教育网华南地区某个声称拥有1000m 带宽并只提供校内访问的ftp server上,这个mini的ftpd取代了臃肿而且效率比vsftpd低得多的proftpd 已经有超过1 年的时间了,运行的效果还不算差。虽然这个mini的ftpd的设计目标和vsftpd相近,但这个据作者说用2 个小时就写出了第一版,一天就能重写全部代码一次的ftpd还算可以。
5.2.2 news服务和maillist 服务
telnet-based BBS通过innbbsd 来对news server 进行存取的历史由来已久,已经成为telnet-based BBS的一项标准的功能,我就不再多说了。在bbs 的news服务中称得上亮点的是gb to big5和big5 to gb的编码转换程序,这个东西可是ascii art 作品能否在newsgroup 上完美的表现出来并且在两岸三地不同汉字编码的环境中进行交流的至关重要的条件。gb和big5的互转,目前还有些问题,有个别在gb2312里的字在 big5里对应不同的含义有不同的字,因此,如果日后能改进转换程序,加入针对词的识别的转换,将会让这种编码转换趋向完美。
说到maillist ,目前大多telnet-based BBS获取maillist 的途径是著名maillist=>台湾交大的news服务 => 各newsgroup server => 各BBS ,已经有人在bbsman_dev@smth版面上post出来了实现直接用bbs 的邮箱订阅maillist 并转发到版面的源代码,目前bbs提供maillist 订阅和阅读服务的途径就这两种了。