A server is any computer that runs server software. Although some
computers are advertised as "server" systems, this is something of a
misnomer. It is possible to design a computer with heavy-duty cooling
and large memory capacity to handle the heavy workloads associated with
a popular service, but what makes a server is the software running on it,
not its hardware.
And what, you ask, is server software? A server plays one role in the
server/client service model. Indeed, it is the more complicated and in
some sense the more important role. In this model, clients queue up to
make requests of a server. A client's only job is to wait in line and
request a service, but the server has to handle the queue and perform
Much Internet software, though not all of it, runs on the server/client
model. There are very popular file-sharing services that use an
alternative model, called peer-to-peer, and these services account for a
large portion of Internet usage. Nonetheless, most of the core services
are server/client-based. For example, one service of which you are
certainly a client is DNS, the Domain Name Service, which translates
domain names such as answers.google.com into Internet Protocol (IP)
addresses such as 184.108.40.206 .
Whether you know it or not, there is a DNS client running on your computer
that contacts a DNS server in order to find out what IP addresses
correspond to the domain names you want to access. The computers that
provide this service are loosely termed servers, although it is really
the DNS software, and not any hardware, that is providing the service.
Other clients that run on your computer are: a Hypertext Transfer Protocol
(HTTP) client, otherwise known as a web browser; a File Transfer Protocol
(FTP) client, which downloads files from remote sites; and probably a
telnet client, which lets you access remote computers through a terminal
window. The counterparts to each of these clients are: an HTTP server,
otherwise known as a web server; an FTP server; and a telnet server. Each
server handles many clients in addition to yours.
An office server often provides all of these services -- DNS, HTTP, FTP,
and telnet -- to clients in the office network as well as from outside, in
the Internet at large. Often the office server also runs a networked file
service, such as NFS, which gives the office computers transparent access
to a remote file system. This is useful because much data in an office
environment is centralized in one computer, while the people who need
to work on that data all have personal computers on their desks. A file
server unifies the disparate workers' PCs with the central data store.
An HTTP server is often used to run internal bulletin boards and help
pages, as well as to run a website that the outside world can access. A
local DNS server is often installed in order to speed up Internet
access. FTP and telnet servers -- or, rather than telnet, usually a
secure alternative such as SSH -- are set up to allow workers to access
the network from home or from the field.
It is not absolutely necessary to set up a server for a 20-workstation
office, since a solid-state router is sufficient to set up a network
and to provide Internet connectivity. However, if the computers want
to connect to each other, they should each run an SSH server or at the
very least an FTP or telnet server. In a typical office environment
with 20 workstations, there will indeed be one or two dedicated server
machines that run services such as DNS and HTTP, as well as some kind
of distributed file system and quite possibly a database or two.
Clarification of Answer by
20 Oct 2005 03:28 PDT
There's no short or simple answer to that question. Setting up a
networked file system involves considerable expertise, time, and
expense. A company will hire professional system administrators to do
this sort of thing. If you want to get a sense of what is involved,
check out something like the following book.
O'Reilly: Managing NFS and NIS, Second Edition
If you want to learn server administration on a smaller scale, I
suggest you begin by setting up your own web server. By far the most
popular software for this is Apache, which is available for pretty
much every platform, although I recommend Linux to novices and experts
alike. Linux is a good choice for server administration because the
major distributions, such as Fedora Core, come prepackaged with all
the server software you will need.
To install Fedora Core and with it the Apache web server, follow the
instructions on the following page.
In addition to Apache, you will find that other useful server software
such as FTP and SSH are included in your Fedora installation.