The Five Categories of System Software
System software types are designed to control and coordinate the procedures and functions of computer hardware as well as software and the user. They carry out middleman tasks by providing a platform for other software types and allow harmonious coexistence with computer user.
System software can be categorized under the following:
- Operating system: Harnesses communication between hardware, system programs, and other applications.
- Device driver: Enables device communication with the OS and other programs.
- Firmware: Enables device control and identification.
- Translator: Translates high-level languages to low-level machine codes.
- Utility: Ensures optimum functionality of devices and applications.
1. Operating System (OS)
The OS kernel sits between hardware and the end user. It's the foremost software installed on a computer to make it functional. It is the first layer of software that is loaded into memory when the computer is powered on. It allows hardware devices, applications, and the user to accomplish different tasks.
Suppose a user wants to write and print a report to an attached printer. A word processing application is required to accomplish this task. Data is inputted using the keyboard and then displayed on the monitor before being sent to the printer.
In order for the word processor, keyboard, and printer to accomplish this task, they must work with the OS, which controls input and output functions, memory management, and printer spooling.
Today, the user interacts with the operating system through the graphical user interface (GUI) on a monitor or touch screen interface. The desktop in modern OSs are graphical workspaces, which contain menus, icons, and apps that are manipulated by the user through a mouse-driven cursor or the touch of a finger. The disk operating system (DOS) was a popular interface used in the 1980s.
Types of OSs
- Real-Time OS: Is installed in special purpose embedded systems like robots, cars, and modems.
- Single-user and single-task OS: Are installed on single-user devices like phones.
- Single-user and multitask OS: Are installed on contemporary personal computers.
- Multi-user OS: Is installed in network environments where many users have to share resources. Server OSs are examples of multi-user operating systems.
- Network OS: Is used to share resources such as files, printers in a network setup.
- Internet/Web OS: Is designed to run on the browser that is online.
- Mobile OS: Is designed to run on mobile phones, tablets and other mobile devices.
Functions of OSs
- They serve as the interface between the user and hardware through GUI.
- Manages and allocates memory space for applications.
- Processes the management of applications, input/output devices, and instructions.
- Configures and manages internal and peripheral devices.
- Manages single or multi-user storage in local and network computers.
- Security management of files and applications.
- Manages input and output devices.
- Detects, installs, and troubleshoots devices.
- Monitors system performance through Task Manager and other tools.
- Produce error messages and troubleshooting options.
- Implement interface for network communication.
- Manages printers in single or multi-user systems.
- Internal or network file management.
Popular OSs for computers are:
- Windows 10
- Mac OS X
Popular network/server OSs are:
- Ubuntu Server
- Windows Server
- Red Hat Enterprise
Popular internet/web OSs are:
- Chrome OS
- Club Linux
- Remix OS
Popular mobile OSs are:
- iPhone OS
- Android OS
- Windows Phone OS
2. Device Drivers
Computer devices and peripherals need driver software for the OS to use their services. Driver software brings components to life, enabling them to perform their intended tasks. Without drivers, the OS would not assign any duties.
In addition to many other devices, drivers are needed for display cards, network cards, sound cards, and printers.
Usually, the operating system ships with drivers for most devices. This may not happen if a device is newer than the operating system. The driver can be downloaded from the manufactures website.
Firmware is the operational software embedded within a device's flash, ROM, or EPROM memory chips to give them an identity. It directly manages and controls all activities of any single hardware.
Traditionally, firmware used to mean fixed software as denoted by the word firm. It was installed in non-volatile chips and could be upgraded only by swapping them out with a new, preprogrammed chip.
This was done in order to differentiate them from high-level software, which were able to be updated without the need of changing components.
Today, firmware is stored in flash chips, which can be upgraded without having to change the semiconductor chips.
BIOS and UEFI
The most important firmware in computers today is installed by the manufacturer on the motherboard and can be accessed through the old BIOS (Basic Input/Output System) or the new UEFI (Unified Extended Firmware Interface). This is the software configuration that loads first when the computer is powered up and is going through POST (Power On Self Test).
The motherboard firmware starts by waking up all the hardware and ensures that components like the processor, memory, and disk drives are operational. If all the crucial components are fine, it will run the bootloader, which will load the operating system. If the random-access memory is faulty, the BIOS will not allow the computer to boot up.
The user can change the BIOS and UEFI settings by pressing special keys (a function key, delete, or the esc key) at boot-up to load the configuration page. The user can configure security, boot order, time, and other options in the page that pops up.
Though they work differently, firmware compliments drivers in a few ways. Both give identity to hardware devices, with the latter making the operating system see the device.
The major difference between the two is that firmware will always reside within devices while drivers will install within the operating system.
Firmware upgrades come from the device manufacturer (not the OS manufacturer). They're necessary to receive new features and to make firmware work better with older and newer operating systems and applications.
Almost all devices and peripherals are embedded with firmware. Common ones include a network card, TV tuner, router, scanner, or monitor.
4. Programming Language Translators
These are intermediate programs relied on by software programmers to translate high-level language source code to machine language code. The former is a collection of programming languages that are easy for humans to comprehend and code (i.e., Java, C++, Python, PHP, BASIC). The latter is a complex code only understood by the processor.
Popular translator languages are compilers, assemblers, and interpreters. They're usually designed by computer manufacturers. Translator programs may perform a complete translation of program codes or translate every other instruction at a time.
Machine code is written in a number system of base-2, written out in 0 or 1. This is the lowest level language possible. While seemingly meaningless to humans, the zeros and ones are actually sequenced intelligently by the processor to refer to every conceivable human code and word.
Besides simplifying the work of software developers, translators help in various design tasks. They;
- Identify syntax errors during translation, thus allowing changes to be made to the code.
- Provide diagnostic reports whenever the code rules are not followed.
- Allocate data storage for the program.
- List both source code and program details.
Utilities sit somewhere between system and application software. These are programs intended for diagnostic and maintenance tasks for the computer. They come in handy to ensure the computer functions optimally. Their tasks vary from crucial data security to disk drive defragmentation.
Most are third-party tools but they may come bundled within the operating system. Third-party tools are available individually or bundled together such as with Hiren Boot CD, Ultimate Boot CD, and Kaspersky Rescue Disk.
Examples and features of utility software include:
- Antivirus and security software for the security of files and applications, e.g., Malwarebytes, Microsoft Security Essentials, and AVG.
- Disk partition services such as Windows Disk Management, Easeus Partition Master, and Partition Magic.
- Disk defragmentation to organize scattered files on the drive. Examples include Disk Defragmenter, Perfect Disk, Disk Keeper, Comodo Free Firewall, and Little Snitch.
- File Compression to optimize disk space such as WinRAR, Winzip, and 7-Zip.
- Data backup for security reasons, e.g., Cobian, CloneZilla, and Comodo.
- Hardware diagnostic services like Hard Disk Sentinel, Memtest, and Performance Monitor.
- Data recovery to help get back lost data. Examples include iCare Data Recovery, Recuva, and EaseUs Data Recovery Wizard.
- Firewall for protection against external threats, e.g., Windows Firewall.
© 2017 Alfred Amuno