The last post highlighted the hardware components of a server, this is continuation of it which highlights software components of a server
Software is a part of a computer system that consists of encoded information or computer instructions, in contrast to the physical hardware from which the system is built. Following are the major categories of software which is used in almost all the servers;
- Firmware viz. BIOS, UEFI
- System Software viz OS
- Application Software
BIOS or Basic Input-Output System firmware used to get the server started after it is powered “ON”. It also manages data flow between the operating system and attached devices such as the hard disk, network adapter, keyboard, and mouse.
BIOS is an integral part of your server and comes with it. When BIOS boots up it first determines whether all of the IO are in place and operational and then it loads the operating system into your server’s random access memory (RAM). With BIOS, the OS and its applications are freed from having to understand exact details (such as hardware addresses) about the attached input/output devices.
Bios performs the following functions
- POST- Power on Self-Test is the foremost routine which checks and tests the basic hardware. If it fails then it displays error.
- Initialization of the hardware devices
- Searching for the Master Boot Record and reading it.
- Copying the boot sector code to RAM and then switching the control to it – Loading OS
Unified Extensible Firmware Interface (UEFI) was designed as a successor to BIOS, aiming to address its technical shortcomings, is capable of addressing hard drives with capacities up to 9.4 zettabytes, UEFI is more like a mini operating system of its own. Instead of the rudimentary 8-bit text-based menus of BIOS, UEFI provide access to the full hardware of the PC, including the Ethernet adapter, Wi-Fi network, USB ports, Bluetooth connectivity, audio system, and graphics card. UEFI initializes hardware faster for a more “instant on” experience, and it allows for security and authentication before the operating system is booted. UEFI can also connect to a network.
It is software that directly operates the computer hardware, to provide basic functionality needed by users and other software, and to provide a platform for running application software.
System software includes
- Operating systems, which are essential collections of software that manage resources and provides common services for other software that runs “on top” of them. Supervisory programs, boot loaders, shells and window systems are core parts of operating systems. In practice, an operating system comes bundled with additional software so that a user can potentially do some work with the server
- Device drivers, which operate or control a particular type of device that is attached to a server.
- Utilities, which are programs designed to assist users in the maintenance and care of their servers.
It is a piece of software that uses the server system to provide specific services to the end user. Examples of Application software include Email Services, Voice and Video Telephony services etc.
How Hardware Software interact?
Now after knowing the components of a server next question is, how do both these components interact?
A computer (or CPU) is a state machine. That means that if the CPU is forced into its initial condition, then its next state is completely predictable. The best we can compare to is the human brain and the nervous system. The CPU is connected to all the other parts of the system, but unlike the nervous system which is a physical wiring – always connected, with all nerves being connected at once, the CPU does not maintain a permanent connection to the rest of the system. It connects to the desired part on demand – similar to making a telephone call – all telephones have connections, but only a few are connected at any one time.
The CPU does work by running instructions – the software Component. There are instruction codes that instruct the CPU to dial some part of the system. Each part has a number, and the CPU has an instruction to dial a number. Once the CPU dials that number, it sends a message to that part – the message is simply data – 0s and 1s. The hardware at that location then acts on the message.