A server is a running instance of an application (software) capable of accepting requests from the client and giving responses accordingly. Servers can run on any computer including dedicated computers, which individually are also often referred to as “the server”. In many cases, a computer can provide several services and have several servers running. The advantage of running servers on a dedicated computer is security. For this reason most of the servers are daemon processes and designed in that they can be run on specific computer(s).
Servers operate within a client-server architecture. Servers are computer programs running to serve the requests of other programs, the clients. Thus, the server performs some tasks on behalf of clients. It facilitates the clients to share data, information or any hardware and software resources. The clients typically connect to the server through the network but may run on the same computer. In the context of Internet Protocol (IP) networking, a server is a program that operates as a socket listener.
Servers often provide essential services across a network, either to private users inside a large organization or to public users via the Internet. Typical computing servers are database server, file server, mail server, print server, web server, gaming server, and application server.
Hardware requirement for servers vary, depending on the server application. Absolute CPU speed is not quite as critical to a server as it is to a desktop machine. Servers’ duties to provide service to many users over a network lead to different requirements such as fast network connections and high I/O throughout. Since servers are usually accessed over a network, they may run in headless mode without a monitor or input device. Processes that are not needed for the server’s function are not used. Many servers do not have a graphical user interface (GUI) as it is unnecessary and consumes resources that could be allocated elsewhere. Similarly, audio and USB interfaces may be omitted.
Servers often run for long periods without interruption and availability must often be very high, making hardware reliability and durability extremely important. Although servers can be built from commodity computer parts, mission-critical enterprise servers are ideally very fault tolerant and use specialized hardware with low failure rates in order to maximize uptime, for even a short-term failure can cost more than purchasing and installing the system. For example, it may take only a few minutes of down time at a national stock exchange to justify the expense of entirely replacing the system with something more reliable. Servers may incorporate faster, higher-capacity hard drives, larger computer fans or water cooling to help remove heat, and uninterruptible power supplies that ensure the servers continue to function in the event of a power failure. These components offer higher performance and reliability at a correspondingly higher price. Hardware redundancy—installing more than one instance of modules such as power supplies and hard disks arranged so that if one fails another is automatically available—is widely used. ECC memory devices that detect and correct errors are used; non-ECC memory is more likely to cause data corruption.
To increase reliability, most servers use memory with error detection and correction, redundant disks, redundant power supplies and so on. Such components are also frequently hot swappable, allowing technicians to replace them on the running server without shutting it down. To prevent overheating, servers often have more powerful fans. As servers are usually administered by qualified system administrators, their operating systems are also more tuned for stability and performance than for user friendliness and ease of use, Linux taking a noticeably larger percentage than for desktop computers.
As servers are often noisy and they need a stable power supply, good Internet access, and increased security, it is usual to store them in dedicated server centers. This requires reducing the power consumption, as the extra energy used generates more heat thus causing the temperature in the room to exceed acceptable limits; hence normally, server rooms are equipped with air conditioning devices. Server casings are usually flat and wide (typically measured in “rack units”), adapted to store many devices next to each other in a server rack. Unlike ordinary computers, servers usually can be configured, powered up and down or rebooted remotely, using out-of-band management, typically based on IPMI.
Many servers take quite a long time for the hardware to start up and load the operating system. Servers often do extensive pre-boot memory testing and verification and startup of remote management services. The hard drive controllers then start up banks of drives sequentially, rather than all at once, so as not to overload the power supply with startup surges, and afterwards they initiate RAID system pre-checks for correct operation of redundancy. It is common for a machine to take several minutes to start up, but it may not need restarting for months or years.
The rise of the microprocessor-based server was facilitated by the development of Unix to run on the x86 microprocessor architecture. The dominant operating systems among servers are UNIX-like open source distributions, such as those based on Linux and FreeBSD.
Windows and Mac OS X server operating systems are deployed on a minority of servers, as are other proprietary mainframe operating systems, such as z/OS. The Microsoft Windows family of operating systems also runs on x86 hardware and, since Windows NT, have been available in versions suitable for server use.
Server-oriented operating systems have certain features, such as:
- GUI not available or optional
- ability to reconfigure and update both hardware and software to some extent without restart,
- advanced backup facilities to permit regular and frequent online backups of critical data,
- transparent data transfer between different volumes or devices,
- flexible and advanced networking capabilities,
- automation capabilities such as daemons in UNIX and services in Windows
- tight system security, with advanced user, resource, data, and memory protection.
- Server-oriented operating systems can, in many cases, interact with hardware sensors to detect conditions such as overheating, processor and disk failure, and consequently alert an operator or take remedial measures themselves.
Because servers must supply a restricted range of services to perhaps many users while a desktop computer must carry out a wide range of functions required by its user, the requirements of an operating system for a server are different from those of a desktop machine. While it is possible for an operating system to make a machine both provide services and respond quickly to the requirements of a user, it is common to use different operating systems on servers and desktop machines. Some operating systems are supplied in both server and desktop versions with similar user interface.
While the role of server and desktop operating systems remains distinct, improvements in the reliability of both hardware and operating systems have blurred the distinction between the two classes. Today, many desktop and server operating systems share similar code bases, differing mostly in configuration. The shift towards web applications and middleware platforms has also lessened the demand for specialist application servers.