2. Selecting an Operating System

In the next section, we’re going to begin preparing the virtual machine into which we shall install our operating system. Before we go on, we should first consider the differences between different releases of operating systems, such as server-class or desktop-class. What are the different priorities of each?

Here are some thoughts to get you thinking. Many operating systems, particularly those containing open-source desktop software, have a developmental branch that changes fairly quickly, and also a more stable, slower-changing branch. If we take Ubuntu as an example we see that Ubuntu offers Long Term Support (LTS) releases, which are supported for three years for the desktop version, and five years for the server product. Non-LTS releases are only supported for six months. Considering that core server daemons don’t change much over time (compared to desktop software), and servers don’t need, and often don’t run, desktop environments, how might this affect your choice?

Microsoft Windows and Mac OS X have a similar thing; whereby there are distinct versions released for servers and clients, which are optimised differently, have a different feature set, licencing, support cycle, etc. For client and server devices the common wisdom is to avoid a new major release until at least the first service pack (for Windows) or the second update (ie. 10.x.2) release for Mac OS X. Paying attention to the experiences of other community users, as well as having a testing laborary to try for yourself, are valuable steps to smoothly integrating a new release into your production environment.

It is useful to appreciate that there are differences between client operating systems and server operating systems. For example, you wouldn’t use Windows XP Home as a server, because it has a number of limitations, such as how many connections it will accept, and what services it may provide.[35]. Table 2, “Client and Server Operating Systems” lists some differences between client and servers. You should complete what you can of this table while you work on the rest of this lab. You will have plenty of waiting time once the installation process begins, and as you install an operating system, you may get inspired about some of these differences.

Table 2. Comparison of Client and Server Operating Systems

Process SchedulingOptimised for interactivity and foreground processes. Often real-time requirements for multimedia. Timeslices might be small and often pre-emptive to allow real-time tasks to get CPU time immediately as they need it.Optimised for background processes, I/O performance for storage and network. Timeslices are often larger, sacrificing a small amount of interactivity, which is negated by network latency, for better memory/cache performance; being able to do more processing in one timeslice[a].
Hardware ClassGenerally aimed at devices spanning Workstation class machines to Desktops to Notebooks and now even Netbooks (although Netbooks are generally quite limited and may need a cut-down version of an operating system or special installation mechanisms).Generally aimed at server-class devices, which may include Workstations all the way up to very powerful dedicated servers, but now also includes virtualised environments. Graphics may be minimal, if present at all. May have more capabilities with regard to how storage and connectivity are managed. Generally quite “hands-off”, an operating system may even be installed remotely on some servers, which is very good for remote management.
ConnectivityOften equipped with enhanced connectivity using mobile technologies such as Wifi and Bluetooth.Focus on scalable, redundant and typically wired connectivity to a fixed network.
CPU and Memory Will generally have greater multiprocessing capability compared to client systems (although workstation-class machines can be very powerful too). Servers and Workstations often benefit from 64-bit processors. Memory speed and capacity is often critical to scalability.
Access System either accessed remotely over network, or locally. Local access is often reserved for when access via network is inconvenient or not available. System will often be housed in secure storage, and in many cases, may be stored in a remote data-centre so as to be closer to where its data is needed. This has implications for management functionality when the system is otherwise unreachable. Eg. can you reboot the server remotely, or access the “local” console remotely? Generally this is a feature more associated with the server host rather than the server operating system.
Feature SetOften graphically rich, optimised for user experience and productivity. With regard to network services, will generally only have client-software installed.Minimal graphics, if any. Aims to support many different services to clients, though only those that are needed should be installed.
Licences For Open-Source operating systems, this is generally very simple. For commercial offerings, it can vary quite a bit. May depend on some notion of number of users, number of CPUs, number of servers. Eg. Apple, starting with Mac OS X 10.5 Leopard Server, changed their licencing to allow it to be installed into a virtual machine (but only the server edition, the client must be installed on Apple hardware).
Management In an enterprise environment, which often have many servers, they might often be managed using technologies such as Microsoft’s Active Directory (if using Windows), or any other technology that allows for a “hands-off” approach (one example for Linux: cfengine). Smaller servers are often managed “hands-on” over a network, either using SSH or a screen-sharing solution such as RDP or VNC.
SecurityAims to provide for security without inconveniencing the user too much.

[a] To give you an idea of a timeslice, a server might switch between tasks 100 times per second, while a desktop might be 250 or even 1000 Hz.

[35] Not to mention its age!