"Linux Gazette...making Linux just a little more fun!"

Home Networking With Linux

By Glen Journeay

  1. Home Networking Arrives
  2. Picking a Network Solution
  3. Linux Networking in Action
  4. So, What's the Catch
  5. Just Do It!
  6. The Future

Home Networking Arrives

It seems it's inevitable that the norm of home PCs becomes not just having one, but a few. Often, we acquire more than one computer at home when we upgrade from our existing system, or we get one for the kids to use, or the spouse brings one home for work. Somehow, we end up with a bunch.

Dealing with the problems that arise with two or more computers is our first exposure to being a network administrator. Let's face it, as soon as you have more than one, you're trying to move or share information between them. The kids want to download a game from the Internet from one PC and install it on another. You brought home a file from work, only to realize that you don't have compatible software at home. You're constantly moving files on disk over the sneaker net to the PC downstairs with the good printer.

The best solution to these problems, a network, is generally staring us in the face out a work, we just don't consider this solution to be economical or practical for home use. But, like the idea of having more than one TV twenty years ago, the day when home networks and multiple computers in the household will be common place is rapidly approaching. Even now, those among us with more money (lots more sometimes) are exploring totally networked and interactive houses. In new houses RJ-45 jacks for 10BaseT , and the 100 MHz 100BaseT Ethernet will be become as common as the phone jacks they look like.

There are drawbacks to having a network at home. First off, we don't have a whole Information Systems (IS) department at home to support us. Also, the networking hardware and software can be expensive. So the advantages of networking have to out weigh the disadvantages of setup and maintenance costs.

Picking A Network Solution

Let's examine some of the networking solutions available that are appropriate for home networks. It turns out that as the PC industry has matured, the variety of networking options has increased. These range from simple plug-n-go printer sharing networks all the way to firewall protected, server supported intranets. Normally, the cost and administration complexity rise as the power and functionality of the network rise, and as always, the proper way to choose the network you need is to determine the functions that you require. Here's a matrix listing normal network functions and solutions among the common operating home operating systems and two non-common networking solutions - Linux and Microsoft NT:

Linux	Unix	NT	Win95	Mac	OS/2
Printer services	x	x	x	x	x	x
File server/sharing	x	*	*	*	*	*
Mail server		x	*	*	*	-	-	
Domain Name Server	x	x	*	*	*	*
Web Server		x	x	*	*	*	*
Firewall		x	*	*	*	-	-
Routing			x	x	x	-	-	-
Gateway			x	x	x	-	-	-
Internet		x	x	x	x	x	x
Ethernet		x	x	x	x	x	x
Token Ring		x	*	*	*	*	*
Arcnet			x	*	*	*	*	*
Framerelay		x	*	*	-	-	-
ISDN			x	*	*	*	-	-	
PPP			x	x	x	x	x	x
SLIP			x	x	x	x	x	x
TCP/IP			x	x	x	x	x	x
X.25			x	*	*	*	*	*
IPX (Novell Netware)	x	x	x	x	*	*
SMB (Windows network)	x	x	x	x	*	*
Appletalk		x	*	*	*	x	*
NFS 			x	x	*	*	*	*

x	Support in system as supplied
*	Support available as extra
-	Support not available
Several home operating systems have been left off of the features comparison chart, most of those have been superceeded by their manufacturers. If your favorite is missing, our apology, but discuss this with the OEM since even they are urging you to switch. Also, several flavors of Unix have been covered under just the Unix heading with one Unix variety, Linux, set aside.

Linux since it's inception in 1991, has been different than the other Unixes in several important ways. Linux is a Unix clone written from scratch by Linus Torvalds with assistance from a loosely-knit team of developers on the Internet. Linux is (and always will be), with very few restrictions (see the GNU General Public License), free and has evolved into a full fledged, high performance Unix originally based on the Intel 386, now available on more different computer architectures than any other single operating system in the world. It should be noted that Linux is not the only freely distributed Unix variety, it just seems to be the best supported one at this time. It has good support available from the team of developers on the Internet and very extensive documentation in the form of HOWTO instructions, FAQs and Unix man pages, also available freely over the Internet. Linux distributions, the operating system and all required other software to have a fully functional system, are available for less than $30 on a CDROM and for free when downloaded from FTP sites on the Internet. Linux network servers for home use actually require no more than an old 386 in order to provide excellent performance for file servers, print servers, mail servers and network gateways and routers. Linux is very robust. Many Linux boxes around the world have not crashed or been rebooted for over a year. I do not think any Windows or Macintosh product can make this claim.

Windows NT, the networking oriented operating system offered by Microsoft, has been available since 1991 too. It has all of the above features available for a price. This system can easily cost over $1000 to get almost all of the features listed above. It has good support available and as it begins to replace Unix as a major operating system on the Internet it will mature into a powerful operating system available on many different computer architectures. It currently cannot perform all of the networking functions that Unix or Linux can offer, but it will soon. Undoubtedly, NT with the continued support of Microsoft has a bright future.

Unix, of course, is a well established networking power house. In fact, Unix is the workhorse of the Internet. All of the protocols and services that the Internet were originally based on were developed on Unix. Because of the maturity of Unix, it has already gone through the growing pains that are now plaguing NT, such as security and crash problems. Despite predictions for years that Unix use will decline, Unix use continues to increase. Until the advent of Linux, there was no inexpensive, powerful Unix available for the home. Unix operating systems generally cost over $2000 for an operating system with the features listed above. And even now the relative complexity of Unix to most other operating systems discourages wide use except at colleges and large businesses.

Windows 95, the Macintosh OS and OS/2 also provide limited networking out of the box, and with additional software can perform as printer servers, file servers, mail servers, name servers, firewalls, and web servers. None of these operating systems were designed originally to support intensive networking services, but can do a good job for small networks with the right software and hardware. These operating systems can be outfitted to perform almost all of the above features for about $500, and the basic operating system is generally supplied with the PC. Also these systems are very easy to setup and configure.

Picking a home networking solution at the present time is largely dependent upon your networking requirements and budget. Obviously, most of us cannot afford to spend large amounts of money unless a home business is involved. Luckily at this time one of most powerful is also the cheapest. Linux offers all of the power of Unix and as software installation programs become more sophisticated, it's also becoming easier (almost painless) to install and administer. Indeed, if you have the time, patience, disk space and an Internet link, you can download Linux from several FTP sites located around the world. With all this to offer, you wonder why Linux is not being used more often, well, it is. Linux is now being used on over 8 million computers around the world, in over 40% of the Internet Service Providers (ISPs) in the world, by large corporations, and US government agencies including NASA which recently put an experiment on the Space Shuttle run by a Linux computer.

Linux Networking in Action

Assuming that you do decide to set up a home network server using Linux, the first step is to find PC hardware that can be used to run the server. This should not present a problem since Linux supports just about any PC configuration made within the last five years, and as stated above, an older 386 PC can easily support a home network of five or more PCs. Linux runs on any 386/486/586/Pentium class processor (including AMD, Cyrix), Dec Alpha, PowerPC (MkLinux for Apple), M68xxx (Amiga, Atari), Sun SPARC and MIPS. A minimum system based on a 386 requires 4 Meg of RAM (more is better) and 50 Meg of disk space (200 Meg is better). While Linux can be run on a 386/4MB/20MB system, this system will be very slow. Eight MB of memory and 50 MB of disk space is a more realistic minimum for a useful system. If this describes the PC you've been using as a door stop for the last few years, then dust it off, because it'll work fine. Many for the more popular Linux distributions along with manuals are now available at bookstores.

Don't worry if you have both Macintoshs and IBM PCs to support at home. Linux happily coexists with all of the most popular home operating systems. Linux knows the networking protocols and file systems native to a multitude of different operating systems on a network: MS DOS, Windows for Workgroups, Win95, Win NT, Mac OS, OS/2, Novell, Amiga, VAX and Unix. Details to implement support for these network support is provided by step-by-step instructions written in HOWTO documents available on the Internet.

You will need to decide on the hardware link to use at home. Ethernet is probably the least expensive and even slow Ethernet (10Mbps) provides performance that exceeds most home requirements. Fast Ethernet (100Mbps) is rapidly becoming the business Ethernet standard and is still reasonable affordable for home use. Ethernet interface cards range in price from $20 for an 8-bit ISA bus 10MHz card to $100 for a 100MHz card. 10Base2 seems to be the home user Ethernet cable choice, but 10BaseT isn't far behind. With 10Base2 there is simply a coaxial cable "daisy chained" between computers on the network. The cable must not ever be discontinuous and 50 ohm terminators are required at both ends of the daisy chain. If you're having a home built, getting a 10BaseT cable network installed is easily done and by choosing Category 5 cable you can ensure an easy upgrade path to Fast Ethernet. Also the 50 ohm terminators are not required. A 10BaseT system of more than two interface cards will require an Ethernet hub, and be warned that Category 5 cable is not cheap ($0.40/foot), so you'll pay more for a 10BaseT installation, but this a system will last longer, and is more convenient than 10base2. Linux supports almost any network interface card, so your networking requirements will probably depend more on the PCs at the other end of the Ethernet cable.

The Linux server could be the gateway to the Internet for all of the rest of the PCs (or whatever) on your home network. This will require a connection to a local or national ISP which can provide an IP address (preferably a static IP address) for the Linux gateway. The Internet link can be over a modem, ISDN, frame relay or ATM connection. Linux will also provide firewall services so that no one will be able to invade your home network from the Internet connection. Using a process called IP masquerading, Linux will provide Internet access to all of the PCs on your home network even with only one valid IP address and fully qualified domain name. This is done by making it appear that all of the TCP/IP traffic coming from your home network is coming from the Linux PC. When traffic comes back for the other machines, the Linux PC will act like the post office and sort all the network traffic back to the proper PC. A Linux machine can easily support two to five PCs surfing the Internet on a 28.8 modem link. A Linux computer can provide mail server services allowing you to create as many e-mail addresses as you require at home. All of the following can be done with ONLY ONE NORMAL PPP or SLIP link to an Internet Service Provider. There would be no extra charges for additional e-mail services or subnetworks since all of these functions would be performed at home by your Linux server. Are you tired of having only one PC on the Internet at home or paying for multiple Internet accounts? Then Linux is the answer.

The Linux PC will provide printer and file server functions. Samba, a free software package, supports the SMB protocol used by Win95 and WFW. Samba is used by many large companies on large company networks. Once configured, it interfaces into the Windows operating system and works flawlessly allowing all of the network users to have individual and shared disk space, plus allowing the user specify and use any printer on the Linux server (or network printer for that matter). Here again, as for all of Linux, the software is available for free over the Internet, complete with installation instructions and source code, and the software is being actively developed and maintained by the original developer. Linux has a similar software package called Netatalk which provides similar support for the Apple Localtalk protocol. A tape backup system can be installed in the Linux server to automatically back up your server.

Linux provides all of the network services traditionally associated with Unix. Mail server service can be accomplished using using sendmail or smail. Any user on the Linux system can then have an e-mail address. The e-mail account can be accessed from the network PCs using an e-mail client with the POP3 protocol, such as Eudora or Pegasus. If your network needs Domain Name Service, the named program can provide it. If you support more than on type of network or several small networks, the Linux server can act as a gateway to tie all of the subnets together. Kernel routing rules can also be used to allow the server to act as a firewall and control access to the internal network. NFS, which stands for Network File System, allows computers to mount disk drives on remote machines. NFS is also available with any Linux distribution, although most other operating systems will require additional software to use NFS. The other network standard applications used on TCP/IP networks are always available: FTP, telnet, remote shells, ping, etc.

A Linux server also provides a state-of-the-art web server and Java development system. Several web servers are available for running on Linux with the Apache web server being the most popular. Apache is now the most popular web server on the Internet with over 45% of all web servers running it. The Java Development Kit is being ported from Sun Microsystems and provides a Java compiler for developing Java applications. In fact support for Java can be complied into the Linux operating system allowing the server to run native Java code. This feature is still being discussed for most operating systems.

So, What's the Catch?

By now most of you are wondering what the catch is with running Linux. There's no real catch. Linux has been developing and maturing at a rate that far exceeds that of such well supported systems as Windows NT. For example, Windows NT just announced support for up to eight CPUs in a multiprocessor system. Linux now supports the Intel SMP multiprocessor specification which provides support for up to twenty CPUs in a single system.

With this power comes the complexity of the installation and support. In fact, installation and maintenance have been the subject of many recent articles. However, recent Linux distributions have made the installation process much easier and provide tools to make system administration easier. Also helping the situation is that, unlike Windows NT which is a relatively new operating system, Unix has been around for decades, so there exists a larger base of trained system personnel for Unix systems than there are for Windows NT. The traditional support market was with large installations at large companies in a workstation environment, but it's now shifting to support the use of Unix in smaller businesses. Since UNIX is such a strait forward operating system to develop software in, many young and eager software developers and hobbiests are turning to Linux for an inexpensive development platform. These young people are an excellent source of system administration knowledge, and most of them can be contacted for free advise on news groups on the Internet.

Linux, like other Unixes, has not previously been an operating system commonly used at home. Many of the applications developed for Unix systems are available on Linux. This was traditionally the scientific workstation area, and the quality of the applications reflects this. Unfortunately, Linux suffers from a shortage of applications oriented towards the average computer consumer. So, even though a Linux makes for an excellent server,and it is also an excellent workstation, running the latest release of the free graphical environment, X windows, it cannot run the latest version of Office 97 (although many Windows applications can be run using the WABI Windows emulator available from Caldera software or the Wine windows emulator). There are several software companies (and others) now developing and selling consumer applications to fill this gap.

Just Do It

Linux is an operating system with minimal initial cost, yet powerful enough to easily handle a home network or small business. Especially nice is that the older PC hardware which is normally retired can be very effectively used as a network server for a small network. Local Linux users groups and computer stores provide excellent Linux support. The support available from the Internet is also excellent. It's always comforting to receive an e-mail from the original developer of some Linux software acknowledging that the bug you've reported has been fixed.

The Future

In many ways, the advent and growth of Linux has gone hand-in-hand with the growth of the Internet, and the work of Linus Torvalds and many hard working developers. Presently, Linux is an extremely capable operating system available at an unbelievable price. Development of the operating system to incorporate the latest hardware and software developments is continuing at a rapid pace. Although the future of the Internet, the Personal Computer, and the Network Computer is unknowable, it would seem that Linux will be part of that future.

Copyright © 1998, Glen Journeay
Published in Issue 28 of Linux Gazette, May 1998