![]() |
![]() |
Networking MS-DOS PC's | |
They said it couldn't be done - But it's easy with EZ-NOS | |
![]() |
![]() |
|
Many people have old 8088, 286, 386 and 486 based PC's lying around, redundant
and gathering dust. With the advent of modern, high-speed processors, these
so-called obsolete boxes seem to have very little life left in them.
However, all is not lost. If you have a home network, there's nothing to stop you bringing these old PC's
back to life, by putting them on your network. True, they probably won't run
Windows, but they can be networked as web servers using nothing more than
MS-DOS and free EZ-NOS software.
It's remarkably good fun seeing an old MS-DOS machine running as a web
server when almost everyone says it can't be done, or tells you that you'd be
better off using Linux. You will also find that EZ-NOS delivers where Linux fails to. Linux will only
run on machines with an 80386 processor or better, and won't run at all well
without at least 4MB of RAM, and most distributions require a minimum of 8MB.
EZ-NOS has no such limitations, running on any processor from an 8088 upwards
requiring only a minimal amount of memory.
This guide describes how you can set up an old PC to work with your existing
Windows TCP/IP network as a web server with FTP upload capabilities.
I'm assuming that you know how to wire up a network, and have some idea as to
what you want to do with the web server once it is networked. What I'm going
to be concentrating on here is how to get the EZ-NOS software, how to install
it, and how to get a web server up and running. Everything else beyond that is
up to you, as is making sure that your Windows systems are set up correctly
for TCP/IP networking. This is not an 'Idiot's Guide To' nor 'MS-DOS Networking for Dummies' and does
not cover every single aspect of network configuration. Various stages of
configuration can be quite challenging and testing ( such as choosing IP
addresses and domain naming ), and are not easy to perform as a novice user.
If you have configured a PC network before, or have had experience of installing
Linux based routers or firewalls, you should be familiar with almost all of the
stages presented in this guide. Putting an MS-DOS PC on a network with EZ-NOS
is really no more difficult than putting a Linux system on, and is the only
real choice if you wish to use pre-80386 computers.
Taking its name from Karn's amateur radio callsign, KA9Q ( which is what
KA9Q NOS is usually abbreviated to ) was developed to allow radio enthusiasts
to send internet-based communications over the airwaves.
There have been many changes made to KA9Q over the years, and a number of
derivative products that have arisen from it. Wim Knevel and Erik Halwerk have
continued development, producing EZ-NOS which fits in the KA9Q family tree as
the diagram below shows ... ![]() The KA9Q Family Tree Wim Knevel and Erik Halwerk freely acknowledge that they are not responsible for the development of the code used in EZ-NOS, but deserve much credit for turning previous development effort into an extremely simple distribution, that almost anyone can install on their PC's. Anyone who has ever looked at the KA9Q family will have discovered that it is very hard to find information that explains, in simple terms, how to setup and use the software. It's not that there's no information available, but the converse, and there are many more minor variants of KA9Q than are shown in the family tree above. The KA9Q family has many supporters and many users out there, but there is a dearth of easy to digest information on installation and configuration for anyone who is unfamiliar with it. Setting up KA9Q and its derivatives can be extremely daunting for the novice, and even for those with experience, simply because it's hard to know where to start. Knevel and Halwerk have solved that problem for us, producing an easy to install, configure and use distribution that will run on most MS-DOS PC platforms with very few changes to the default configuration required. They are to be greatly congratulated on their efforts, which will be welcomed by many owners of old PC's which are currently languishing in back rooms, lofts and garages, and especially by those who live in countries where top of the range PC's are harder to come by.
PC Hardware Requirements Configuring a 3Com 3C509B Network Interface Card Getting the EZ-NOS Software Creating an EZ-NOS Boot Floppy Setting the EZ-NOS Configuration Testing the EZ-NOS System Using the EZ-NOS Console Booting EZ-NOS from Hard Disk Configuring the Web Server Configuring the FTP Server Other Servers Modifying EZ-NOS Copyright and Licensing Issues Conclusion
The software used within the EZ-NOS distribution is a cut-down version of JNOS to keep the memory footprint as low as possible, but it still includes a web and FTP server, plus a few other servers and clients. The EZ-NOS distribution is designed to run under MS-DOS only, and comes pre-configured to use a 3Com 3C509B Network Interface Card, but can be used with many other cards with a suitable packet driver. The EZ-NOS distribution is licensed as Freeware, and may be used without charge by anyone. For further information, please see the section on Copyright and Licensing later in this document.
In common with all network applications, EZ-NOS is memory hungry, and prefers more memory than less; multi-tasking and network packet buffering and handling is improved as memory increases; 4MB of RAM is really the minimum unless you are happy with a web server which runs slowly. EZ-NOS requires at least 150KB of the 640MB base memory to be free when it starts. The clock speed of the processor obviously affects how quickly EZ-NOS and its servers execute. An 8MHz 8088 with 4MB of RAM will be considerably slower than a fast, modern machine with huge amounts of memory. EZ-NOS will run directly from the floppy disk ( although the web server will run incredibly slowly unless the floppy disk is copied to a RAM Drive when booting up ), so the PC does not need to have a hard disk. Using a floppy disk configuration is ideal when evaluating EZ-NOS, but a hard disk installation will improve booting times, web server speed, and allow much more information to be stored for delivery by the web server. It is possible to remove the floppy drive entirely when a hard disk is used. The PC does not have to have a sound card, CD-ROM or a mouse attached. If the PC BIOS allows booting without a keyboard, it is possible to create a 'headless server' without a keyboard, monitor, and in many cases, without even a graphics card. It is recommended that a graphics card is left in, so diagnostics can be performed easily, requiring just a power-cycle and keyboard plus monitor to be attached. You don't need to have a Network Interface Card connected to the PC, but, although EZ-NOS will run, you will not be able to connect to another PC or network without it. The EZ-NOS distribution is pre-configured to use a 3com 3C509B Network Interface card, but any NIC can be used, providing a suitable MS-DOS Packet Driver can be found for it.
You may also find you have to change the interrupt on some systems. On the 386 PC I used for testing, interrupt 0xA ( 10 ) did not exist; changing the interrupt to 0x3 ( 3 ) solved the problem, with the packet driver software automatically determining the interrupt which had been selected. To change the configuration of a 3C509B, you will need to use the 3C5X9CFG.EXE program which came with the card. If you can't find a copy of the configuration program, it can be downloaded from a number of sites on the internet. The configuration program should be run in MS-DOS, and its operation is straight forward.
The files available for downloading are as follows -
If you are planning to run EZ-NOS on an 80386 or above, you should download the DOSSERVER.EXE file. If you are planning to use an 8088 or 80286, you should download the DOSSER88.EXE file; this will also run on 80386 and above, so it may be the preferred file to use if you are starting to experiment with EZ-NOS. You will however suffer a significant loss of performance if you use the DOSSER88.EXE distribution on an 80386 system or better. The HELP.ZIP file should be downloaded no matter what type of processor you have, as it will provide invaluable help in understanding the EZ-NOS console commands.
The floppy will be automatically formatted, and have the necessary operating system files placed on to allow booting, but if you encounter any problems, or prefer to, you can manually create an empty, bootable floppy by using the FORMAT A: /S /U command.
Before you can put a PC running EZ-NOS onto a network you must configure it so it co-exists happily with existing machines on the network, and can be seen by those machines. Within the A:\NOS\AUTOEXEC.NOS file you will find the following lines which set the configuration of the EZ-NOS machine ...
hostname webserver ip address 192.168.1.11 route add 192.168/16 en0 route add default en0 192.168.1.254 domain addserver 192.168.1.254 These lines need to be changed to set the EZ-NOS configuration for the machine upon which it is to be run ... hostname webserver
ip address 192.168.1.11
192.168.x.x route add 192.168/16 en0
192.168/16 route add default en0 192.168.1.254
Putting a '#' at the start of the line 'comments out' that line from the configuration, so it is not used. If a gateway is specified, the '#' must be removed from the start of the line. #domain addserver 192.168.1.254
My testing involved connecting an EZ-NOS machine directly to a Windows PC with IP address 10.0.0.10. The configuration settings which I have used are ...
hostname webserver ip address 10.0.0.90 route add 10/8 en0 #route add default en0 192.168.1.254 #domain addserver 192.168.1.254 These settings may not be optimal or even correct, but the settings chosen allow bi-directional communications between the EZ-NOS machine and that running Windows. Configuring for Pre-80386 PC's The default MS-DOS configuration files from DOSSER88.EXE appear to expect an 80386 processor or better, and need to be edited to allow a pre-80386 PC to be booted. The oldest PC I could find was an Amstrad PC5286, a 16MHz 80286 clone with 1MB of RAM. This ran happily with the 3C509B configured for interrupt 0x3 ( see Configuring a 3Com 3C509B Network Interface Card above ), with the MS-DOS configuration files reduced as follows - A:\CONFIG.SYS ...
dos=high,umb A:\AUTOEXEC.BAT ... cd \nos httpd.bat
Configuring for a 3com 3C509B not at the 0x300 Address If you cannot configure your 3com 3C509B to use the 0x300 Base Address, you can force the Packet Driver to use another address. To do this, you must edit the A:\NOS\HTTPD.BAT file and change the line - \nos\bin\3c5x9pd 0x62 to ...
\nos\bin\3c5x9pd 0x62 IOBASE=0xNNN Where NNN is the I/O Base Address the Network Interface Card is configured for. Configuring for Different Network Interface Cards If you are using anything other than a 3com 3C509B Network Interface Card, you will need a packet driver for that card. Your card should have come with a floppy disk containing the packet driver when you purchased it, but that has probably been lost in the passage of time. If you don't have the disk, packet drivers for many network cards are available from Crynwr, Simtel.net and many more sites on the internet. You must install the packet driver software onto the floppy ( preferably in the A:\NOS\BIN directory ), and you must then update the A:\NOS\HTTPD.BAT file to use the new packet driver ...
@echo off REM set up ethernet \nos\bin\3c5x9pd 0x62 REM start server \nos\bin\nos.exe -f\nos\nos.cfg REM when the server exits, shutdown the net \nos\bin\termin 0x62 echo\ You must change the original \nos\bin\3c5x9pd 0x62 line so that it loads the required packet driver, but keep the 0x62 at the end of the line. As an example - If your packet driver was called NE2000.EXE, you should copy the packet driver to the A:\NOS\BIN directory, and change the line specified to be \nos\bin\ne2000 0x62.
The PC should boot, load MS-DOS, load the packet driver for the Network Interface Card, and then run the EZ-NOS software. Once the EZ-NOS application is running, it should be possible to ping the EZ-NOS system by using a PING a.b.c.d command from an MS-DOS Command prompt on you Windows PC, where a.b.c.d is the IP address of the EZ-NOS PC. It should also be possible to ping the Windows PC from the EZ-NOS Console by using a PING w.x.y.z command where w.x.y.z is the IP address of the Windows PC. If pinging in both directions is successful, it should be possible to connect to the EZ-NOS web server by firing-up a web browser on the Windows PC and setting the URL to http://a.b.c.d where a.b.c.d is the IP address of the EZ-NOS PC. A returned "Congratulations !" web page indicates that the web server on the EZ-NOS PC is working. The EZ-NOS FTP server can be tested by making a connection with your FTP client to the IP address of the EZ-NOS machine.
The first thing to do is, to check that you have followed all the instructions correctly, that the Network Interface Card is working and configured correctly, and that the IP addresses are correctly selected and entered, and that you are installing the correct EZ-NOS distribution for the PC processor type. When testing EZ-NOS on a 386 PC, I had to change the Network Interface Card interrupt line to 0x3 ( 3 ) as the default interrupt, 0xA ( 10 ), wasn't physically supported by the motherboard. The EZ-NOS console ran, but there was no network traffic between the two PC's. I also had problems with the default IP addresses of the EZ-NOS machine, with my installation of Windows refusing to perform any pings to, 192.168.1.11, the IP address of the EZ-NOS machine. I had to make the changes described in the Setting IP Address section above before Windows would talk to the EZ-NOS machine, and vice-versa. EZ-NOS has been tested on a number of PC's, both by myself, the developers and others, and has been demonstrated to work. The most likely problems are with the Network Interface Card or IP address configuration, and this is where your efforts to solve any problems should be first directed.
Providing full descriptions of the commands available under the EZ-NOS Console ( which can also be used in the A:\NOS\AUTOEXEC.NOS file ) is beyond the scope of this article. Full descriptions of the commands can be found in files held within the HELP.ZIP archive. A brief summary of the commands you will most likely want to use when you first start to use EZ-NOS is included below -
Copy all the files ( except A:\COMMAND.COM ) and directories from the floppy disk to the hard disk. This may be easily done by using the XCOPY A:\ C:\ /S /E command, but this may fail because COMMAND.COM is write-protected / read-only. If it does fail, make sure that the existing C:\COMMAND.COM has been copied elsewhere for safe keeping, then use the ATTRIB -R C:\COMMAND.COM to allow the file to be overwritten, repeat the XCOPY, then copy the backed-up COMMAND.COM back to C:\, before re-booting the PC. It is also necessary to update the C:\NOS\AUTOEXEC.NOS configuration file to point to the hard disk directory which now holds the web pages. All that is needed is to simply change the start http 80 a \www line to start http 80 c \www. Note that there must not be a colon placed after the drive letter. The \NOS\FTPUSER. file must also be edited ( as described in the Configuring the FTP Server section below ) to set home directories for users on the hard disk before the FTP server is used. The floppy disk should be removed, and the EZ-NOS PC can be re-booted. It should behave exactly as it did when it was booted from floppy disk.
The command which starts the web server is held in the AUTOEXEC.NOS file in the A:\NOS or C:\NOS directory. The line in this file which specifies start http 80 a \www should be changed to start http 80 c \www for hard disk operation. The main web page document for the server must be named ROOT.HTM and must be placed in the A:\WWW or C:\WWW directory. The main web page documents for sub-directories below A:\WWW and C:\WWW must be named WELCOME.HTM. If WELCOME.HTM is not created, the entire directory contents can be viewed from a connecting browser, using the URL of the form http://a.b.c.d/directory/, where a.b.c.d is the IP address of the EZ-NOS machine, and directory maps to \WWW\directory on the EZ-NOS server. All files to be served by the web server must have MS-DOS 8-dot-3 formats. It is recommended that the machine running EZ-NOS is rebooted every day, although it has been demonstrated to run for much longer periods without problem. Automatic rebooting is specified in the AUTOEXEC.NOS file by the line at 0500 reboot which makes EZ-NOS reboot at 05:00 ( 5am ) every day. This line can be removed or changed as necessary.
Configuring the permissions is done by editing the FTPUSERS. text file in the \NOS directory, but can be pretty involved; complete details for configuring FTP access can be found on the EZ-NOS site, and in most JNOS documentation available on the internet. The default FTP user configuration allows connection to the EZ-NOS server from an FTP client, for testing and verifying its operational status, without change when booted from a floppy disk, but must must be changed for hard disk operation as it defines user's home directories as being on the floppy disk. The format for the FTPUSERS. file is a number of lines in the following format - Username Password Path Permissions The meaning of each of these fields is described below ...
root iamroot \ 127 webadmin iamwebadmin \www 7 hippy iamhippy \ftp\hippy;\www 7 guest * \ftp\univ 128 univperm * \ftp\univ 3 User "root" can log in using the password "iamroot" and has complete system administrator access to the whole of the PC. User "webadmin" can log in using the password "iamwebadmin" and has full access to the directory \WWW and all sub-directories therein. User "hippy" can log in using the password "iamhippy" and has full access to the directories \FTP\HIPPY, \WWW and all sub-directories therein. The user "guest" has been banned from connecting to the FTP server. All other users may login, without needing a password and are able to read and write files in the \FTP\UNIV directory, but not delete files, or overwrite existing ones. Every user of the FTP server can be given their own personalised "Welcome" message by simply placing a textfile named MESSAGE.FTP in the user's home directory.
The servers are started using the start server [ port ] command, where server is the name of the server, and port is the optional port number which the server should listen on; if it is omitted, the port that the server would normally be expected to listen on is used. Servers can be stopped using the stop server command. The TELNET server is rather limiting, and is provided to allow remote users to connect to "Mailboxes". This is functionality which reveals KA9Q's history as being from the world of ham radio, where radio users would use KA9Q for over-the-air Bulletin Board Servers. The TELNET server does not, unfortunately, allow access to the EZ-NOS console, nor the MS-DOS command line, and serves little purpose for the average user. Using the TIME server should be straight forward ( just use start time ), but the NNTP, POP3 and SMTP servers appear to require somewhat complex configuration for use. You will need to scour the internet looking for information on these, as there seems to be no concise sources which explain the process required.
If you want to upgrade EZ-NOS, to add or remove servers, or provide enhanced capabilities of your own, all you need to do is create a new NOS.EXE executable, and replace the one supplied with EZ-NOS; it really is that simple - in theory. In practice however, you are back into unchartered waters with relevant information on how to create the replacement exexcutable being scattered all over the internet. You will need to download the source of JNOS ( or TNOS ), obtain a suitable compiler, edit config.h, recompile, and then you will have your first home-grown version of the JNOS ( or TNOS ) executable. Once you've done that, you can start delving deeper, and making changes as you feel fit. Despite the C language allegedly being portable, you will find that JNOS has been crafted to work with a particular compiler ( Borland's C++ 3.01 ), and I been unable to make it work with anything else. Unfortunately this compiler is no longer available, and almost impossible to track down, even on Warez sites. You could also use the original KA9Q NOS or any other variant instead of JNOS, but there are subtle differences between most variants, especially in the format of some configuration files, but TNOS does use the freely available DJGPP compiler. The prime candidates for projects to change the EZ-NOS provided NOS.EXE is to remove all the radio ham and Mailbox facilities ( which are not really needed on a home network ), add server side scripting to the HTTP server or more CGI capabilities, add a DHCP server, and replace the TELNET server with one which offers an MS-DOS shell-style interface. I would personally like to upgrade the HHTP server to provide ethernet enabling of low-end microprocessors ( such as PIC processors, Basic Stamps and the PICAXE ) through a serial or parallel port, giving the same sort of capabilities offered by Site Player. Another goal is to have EZ-NOS running a PPP server for an incoming modem connection from a Bush Internet Set-Top Box. This will allow the set-top box to access my entire local network, rather than the PC it dials into at present which, being Windows 98, has no in-built routing capabilities. This may be achievable by simply using an appropriate packet driver for a serial port. I have downloaded the JNOS and TNOS sources and have managed to compile them both, but it required an awful lot of effort just to get that far. When ( or if ) I do get anything more impressive working, I will publish the details for others to use.
The copyright on KA9Q is held by Phil Karn, and thus he has control over the publication of his original and derived works. Part of this control includes licensing KA9Q, and the derivatives which are based upon it ( including JNOS, TNOS, NOS-BOX, QUICK-NOS and EZ-NOS ). The original, 1992, copyright and licensing statement from Phil Karn on KA9Q can be found at -
In respect of licensing, Karn states ... Permission is hereby granted for the free copying and use of this package by radio amateurs and non-profit educational institutions. I.e., to hams and schools, it is "freeware". Use of this software by commercial or governmental organizations is on a "shareware" -- not freeware -- basis. That is, a prospective commercial or governmental user may copy and evaluate the software for his or her application. If it is to be used beyond evaluation purposes, it must be registered for $50/copy (see address below). The problem here, is that the licence defines four groups in two camps; radio amateurs and non-profit educational institutions in one, and commercial and government organisations in another; where do non-radio amateur, non-commercial users, as most computer hobbyists are, stand ? Is KA9Q, and its derivatives, Freeware or Shareware ? I have great respect for Phil Karn, who held the mantle of Internet Hero at one time, but he sure as hell can't draft a licence agreement. There is very little by clarification available on the internet, the only comprehensive information being provided by Demon Internet Limited who provided its users with copies of KA9Q in their early days as one of Britain's first ISP's ... 2.2.1) Is KA9Q Free? NO. KA9Q and all variants thereof are based on shareware code copyright of Phil Karn ... If you're using any variant of KA9Q you need to register KA9Q. It seems likely that Demon contacted Karn before distributing KA9Q wholesale, and they even provided a registration service for its users, so their view must be seen as one of the most definitive interpretations of the licence agreement. Their failure to acknowledge specific cases for free use could mean that they mis-interpreted the licence, or it was a special licence drawn up between Karn and Demon specifically for their distribution only. Karn's reference to "radio amateur" could possibly be interpreted widely as anyone who transmits and receives over the airwaves, but his use of i.e. ( id est, "that is" ), defines such as being a radio "ham", which, by all authoritative definitions, means a licensed radio amateur, not a casual user of radio communications equipment. The bottom line seems to be, and many still argue this case, that, unless you are a licensed radio amateur, KA9Q and all its derivatives are Shareware, and can only be used for evaluation purposes without payment of a licensing fee. Karn however published a statement on the 4th of February, 2002 defining the status of the software he has written. He says, "Here are the various software packages and utilities I've written over the years ... I'm placing them out under the terms of the GNU General Public License". Karn's list includes KA9Q NOS, and the GNU Public Licence ( Version 2, June 1991 ) he refers to, states, "The GNU General Public License is intended to guarantee your freedom to share and change free software -- to make sure the software is free for all its users". It is clear that if you now take KA9Q, it is free to use, distribute and modify, but does that retrospectively make all variants based on KA9Q, which had the original licensing conditions, Freeware now ? I can find no mention of any specific licensing requirements for JNOS ( from which EZ-NOS is derived ), and believe that the intention was, and is, for JNOS to be licensed under exactly the same terms as KA9Q was. With KA9Q now being Freeware, I believe, that also makes JNOS Freeware, and therefore so is EZ-NOS. If you are not a radio ham, and do not believe that EZ-NOS is Freeware, or just want to make Phil Karn a happy man, I suggest that you send 50 USD off to ...
7431 Teasdale Ave San Diego, CA 92122 voice: 619-587-8281 fax: 619-587-1825
Knevel and Halwerk have made the EZ-NOS distribution a breeze to setup, even for someone who has never heard of KA9Q before, and it should be possible to have an MS-DOS based web server up and running in around 10 minutes. The EZ-NOS system is faster and more stable than the combination of the Microsoft Network Client 3.0 and Jaffa Web Server which I had previously advocated for use, and ridiculously simple to setup in comparison. Linux will not run on a pre-80386 machine, and only with difficulty on those with less than 4MB of memory. EZ-NOS is the ideal Network Operating System for old computers and those with little memory. Using a low-power processor, in a system without cooling fans, having a solid-state ( Compact Flash, or similar ) hard disk, combining MS-DOS and EZ-NOS provides an easy way to create a small, quiet, embedded web server. In a nutshell; EZ-NOS is one of the best things to have happened to MS-DOS for a very long time. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Confucius says, "Where there's a will, there's a way" |
![]() |
First published on Wednesday the 19th of June, 2002 at 15:38:12
Last upload was on Tuesday the 23rd of September, 2003 at 19:23:26 |