TBC101@PSUVM.BITNET (Thomas B. Collins, Jr.) (09/26/89)
I am seriously considering writing a BBS. I'll probably be writing it with Turbo Pascal 5.5 since I don't know C... I'd like to be able to make it multi-user, and was wondering what I need to do as I plan/program in order to allow for this. The only idea I've had so far is to write it so that it will run under something like Desqview and then a multiple copies of it for each 'Node' of the BBS.
filbo@gorn.santa-cruz.ca.us (Bela Lubkin) (09/26/89)
In article <89268.185440TBC101@PSUVM.BITNET> Thomas B. Collins, Jr. writes: >I am seriously considering writing a BBS. I'll probably be writing it >with Turbo Pascal 5.5 since I don't know C... I'd like to be able to >make it multi-user, and was wondering what I need to do as I >plan/program in order to allow for this. The only idea I've had so far >is to write it so that it will run under something like Desqview and >then a multiple copies of it for each 'Node' of the BBS. My former housemate has been running such a system for 3 years. It started out in Turbo 3.0, went through Turbo Extender, 4.0, 5.0, and is now running under 5.5. It also started on Victor 9000 hardware and stayed that way until recently -- it was running 4 dialup users and the console on a 5MHz 8088. Then Jon bought a '386 for development and "retired" his true-blue AT to BBS service. It is now running 4 1200 dialups, console, and up to 4 4800 hardwire lines on an 8MHz 286. This program multitasks internally; I think of it as an entire multiuser operating system written in Turbo Pascal. The only thing it uses MS-DOS for is disk access, and then only as sort of a "device driver" -- he has his own file system inside a large DOS file. So yes, this can be done. There are lots of issues. Writing a multitasking kernel is one of the simplest issues, so there probably isn't a lot of point to burdening yourself with a 3rd-party multitasker unless it has some other significant benefits. BTW, the system in question is called XBBS (and is COMPLETELY distinct from the Xenix package of the same name) and is in my signature. The author/Sysop is Jon Shemitz. If you call his BBS and either post a message or send him a "Hail", he may have some ideas for you. Bela Lubkin * * filbo@gorn.santa-cruz.ca.us CIS: 73047,1112 @ * * ...ucbvax!ucscc!gorn!filbo ^^^ REALLY slow [months] R Pentomino * Filbo @ Pyrzqxgl (408) 476-4633 & XBBS (408) 476-4945
wcf@psuhcx.psu.edu (Bill Fenner) (09/27/89)
In article <89268.185440TBC101@PSUVM.BITNET> TBC101@PSUVM.BITNET (Thomas B. Collins, Jr.) writes: |I am seriously considering writing a BBS. I'll probably be writing it |with Turbo Pascal 5.5 since I don't know C... I'd like to be able to |make it multi-user, and was wondering what I need to do as I |plan/program in order to allow for this. The only idea I've had so far |is to write it so that it will run under something like Desqview and |then a multiple copies of it for each 'Node' of the BBS. You could either do that, or write a multi-tasking kernel, which services I/O and other requests... then you can have one program running, no need for Desqview or any other multitasker... unfortunately, writing a multi-tasking kernel is a bear, and I certainly wouldn't want to try it. :-) So your best bet is probably to use a multi-tasker, run multiple copies of the program, and use *good* *un-limiting* locks on your files... pref. record-locking if you can figure out how... Make sure you kill all the locks when you reboot (I had a lot of troubles with this one time... a file was locked, I rebooted, and it was still locked so the board would hang waiting to read it... ugh.) ("the board" there refers to Lynx, which I was evaluating. Didn't choose it.) Bill -- Bitnet: wcf@psuhcx.bitnet Bill Fenner | aaaaaaaaa Internet: wcf@hcx.psu.edu | r UUCP: {gatech,rutgers}!psuvax1!psuhcx!wcf | g Fido: Sysop at 1:129/87 (814/238 9633) \hogbbs!wcf | h
madd@bu-cs.BU.EDU (Jim Frost) (09/29/89)
In article <1672@psuhcx.psu.edu> wcf@psuhcx.psu.edu (Bill Fenner) writes: |unfortunately, writing a |multi-tasking kernel is a bear, and I certainly wouldn't want to try it. Actually writing one is pretty easy so long as you don't have to write the whole thing in assembler. If you stick to writing a message-passing kernel and implement just about everything else as a user process, it's pretty trivial; the kernel portion will be only a few k on 80x86 hardware. For a good example, see "MINIX: Operating Systems Design And Implementation" by Andrew Tanenbaum. He implemented a V7 UNIX interface on a message-passing kernel. Something simpler would be much less work. Happy hacking, jim frost madd@std.com
TBC101@PSUVM.BITNET (Thomas B. Collins, Jr.) (09/29/89)
In article <89268.185440TBC101@PSUVM.BITNET>, Thomas B. Collins, Jr. <TBC101@PSUVM.BITNET> says: > >I am seriously considering writing a BBS. I'll probably be writing it >with Turbo Pascal 5.5 since I don't know C... I'd like to be able to >make it multi-user, and was wondering what I need to do as I >plan/program in order to allow for this. The only idea I've had so far >is to write it so that it will run under something like Desqview and >then a multiple copies of it for each 'Node' of the BBS. > > I've since realized that I'm going to have to use interrupt or event driven programming. This shouldn't be too difficult since I have input and output buffers for the modems and the keyboard. It just that breaking everything down into little pieces seems like such a hassle... I already have one example of how to break down the board into little pieces, but I'm still interested in any ideas or comments that you have on the subject. ------- Tom "Shark" Collins Since ICS is comprised of 2 people, my views tbc101@psuvm.psu.edu are the opinion of at least 50% of the company.
mag2@csd4.csd.uwm.edu (Michael A Gorski) (10/05/89)
In article <89268.185440TBC101@PSUVM.BITNET> TBC101@PSUVM.BITNET (Thomas B. Collins, Jr.) writes: >I am seriously considering writing a BBS. I'll probably be writing it >with Turbo Pascal 5.5 since I don't know C... I'd like to be able to >make it multi-user. There is a multi-user BBS written in Turbo Pascal and it has internodal chats. It's called RyBBS by Greg Ryan. The single user version is shareware and if you register you get the multi-user version. The single user version is on Simtel20 (an older version) or you can call: Greg's RyBBS HomeBase (414) 962-1097 For the newest version. My point is, it is possible. Mike