From: bmandrsn@news.weeg.uiowa.edu (Bryan M. Andersen) Subject: Re: BBS Development for Linux Date: Mon, 14 Jun 1993 01:14:04 GMT
If your looking for bbs softwear. My sugestion is to design the
system from the ground up as a multiuser BBS and write your own.
As an observer of a bbs which has grown from 20ish online at one
time to over 400 now. Code design is very important. Lots of the
available user increases were to little things like making the main
bbs database a memory mapped file instead of normal file access
(25%). Or including telnet server code into the bbs (aprox 50%).
Also watching memory useage helped alot too. Right now I understand
they have all memory allocations removed from the code and the
system services used. Just say no to malloc as it's implemented on
most unix systems. As I understand it right now the major bottleneck
is network speed. The bbs has a dedicated link to a router on campus
and it's saturated at peak useage times (oops). Admittadly we are
using faster hardware now than we used before, however most of the
increases were attained by imporving the code and design.
Unfortunatly some of the fundamental designs in the code are real
limiters and if they could be changed another 50% increase in user
load could be acheived.
Now after touting the amazing things they've done with the code
I have to say that it would be a bad idea to use thier code. It was
a lousey design to begin with and it has many hacks which make it
vary hard to port to a new system. Like it contains it's own network
code to run telnet sessions. Or the total rewrites of the I/O
libraries to remove memory allocation and to generally tune them for
faster operation. Lots of stuf in the BBS code and the OS it's
running on have been hacked to allow more users on at one time or to
make the code more CPU efficient.
If I had Linux up and running right now I'd be tempted to write
a bbs for it. There are a few design ideas I'd do like use a database
for messages as most tend to be rather small and wastefull if put in
thier own files. Also I'd build it in a client/server form with
separate servers for user information and messages. Then each of the
servers would be multi-threaded. If a chat type system is desired
then I'd have a server for it too. It's very important for both
execution speed and ease of programming and design to keep separate
functions separate.
Now that I've wetted your appitite you can check out the Iowa
Student Computer Association's BBS by telneting to bbs.isca.uiowa.edu.
There is a user authentication process before you can post to rooms
other than Babble> or New User Questions>. Just so you know my
current interest in ISCABBS is as one of it's policy board members.
Yes we have a policy board which is separate from the Sysops and
Forum Moderators who enforce policy. It's not a small club bbs
anymore. I'm also know as Bryan on the bbs. I belive the current
hardware is a HP 710 with 64 MBytes memory and is running HP-UX.
-- Bryan M. Andersen <bryan-andersen@uiowa.edu> <bmandrsn@umaxc.weeg.uiowa.edu>