---------------------- Understanding FreePort ---------------------- Andrew Patrick National Capital Freenet August 18 1993 History of FreePort Software - developed at CWRU by a variety of people - design objectives - use standard Unix software where possible - use network environment & multiple servers - easily configurable and expandable - portable to different environments (BSD Unix) - various "flavours" now available (contact NPTN) - NCF has made extensive local changes, and will continue to diverge Overview of Software Components Themes - software not complicated (shell scripts and C) - small modules for special functions (Unix tradition) - 8 inter-related "systems" for different functions Initialization System - BBmenu - BBguestmenu Menu System - menu (main interface, calls other modules) - pager (view files) Mail System - m2mbox (put incoming mail in user's home directory) - mr (mail reader) - addr (try to confirm addresses) - BBmail (send the mail via sendmail) - forward (create "legal" .forward files) - mexpire (expire mail older than 30 days) - mquota (implement mail box quotas) Bulletin Board System - Usenet C News with local changes (e.g., moderators) - BBpost (posting front-end) - newspost (posting) - nr / mgnr (news reader - single or multiple groups) Editing System - ce (a version of Emacs) - pico (simple editor) - ispell (interactive spell checker) Work Directory System - dired (full-screen directory tool) - ups (deliver files between users) - kermit & xyz-modem (transfer between user & FreeNet) Internet Access System - telnet (login to other hosts) - gopher (library services) - IRC (real time conversations) Administration System - msglib (server/clients log usage and error messages) - bbinfod (server/client to monitor who is logged in) - who (report who is logged in) - pmdb (database of users with interests, locations, etc.) - fullname (report users name given ID) - umatch (find a user by pattern) - su (take on alternate identity) Lessons Learned - explore various "flavours" available - explore alternative packages - message and info daemons problematic - ease of use and success determined by specialized services (e.g., BBS, file transfer, editors) - get automatic registration service early - be prepared for heavy load early (e.g., psuedo-terminals) - news readers assume network configuration (NNTP), inefficient with local spool - requires expertise in number of areas - be careful of trade-offs between functionality and ease-of-use, power users and novices - operating a modem & communications software a very difficult step for many new users (terminal configuration) Criteria for Developing Other Modules - must be VERY easy to use & have good user documentation - no unauthorized shell access (including pipes and filters) - all reads and writes to $HOME/work - all files in $HOME/work visible (no .newsrc) - all errors trapped, all temporary files cleaned Future Directions - multilingual support - client/server model - more power at users' end, but what is standard? - could work for mail & BBS systems - will not work for Internet services - broadcast systems (1.5 way interaction)