All the physical parts of computer are control by a set of instructions. These set of instructions also guide the electrical flow of data and information inside the computer system. The processes and execution tasks are being coordinated and controls by the instructions. It serves as a command that tells the computer machine what to do, how to executes it and when to carry out the execution operation.
These set of instructions are of two types: the system software and the application software. The latter is designed for execution of general tasks operation of a computer, while the former is designed for solving a specific type of problem.
The software required to run the hardware parts of the computer and other application software are called system software. System software is responsible for controlling, integrating, and managing the individual hardware components of a computer system so that other software and the users of the system see it as a functional unit without having to be concerned with the low-level details of the hardware, such as transferring data from memory to disk, or rendering text onto a display. Generally, system software consists of programs that start up the computer and perform some utility functions such as checking and getting the computer ready for use. They are usually written to accomplish loading, execution, storage, and retrieval of files from/into the computer.
All the systems software are designed to control and coordinate the procedures and functions of computer hardware. It enables functional interaction between hardware, software and the user.
Systems software also carries out middleman tasks to ensure communication between other software and hardware to allow harmonious coexistence with the user. Systems software are classified into the followings:
- Operating system
- Translator/Interpreter
- Device driver
- Firmware
- Utility
1 - OPERATING SYSTEM
Current general-purpose computing devices, including mainframes computers, personal computers, and smartphones al have an operating system installed on them to run other programs, such as application software. Operating systems are used on most, but not all computer systems. The simplest computers, including the smallest embedded systems and many of the first computers did not have operating systems. Instead, these computer systems relied on the application programs to manage the minimal hardware themselves, perhaps with the aid of libraries developed for the purpose.
An operating system (OS) is a software program that acts as an interface between the user and the computer hardware and controls the execution of all types of programs. The operating system organizes and control hardware and software so that the device it lives in behaves in a flexible but predictable way.
At the simplest level, an operating system does two things:
- It manages the hardware and software resources of the system. These resources include the processor, memory, disk space, the battery, network connection, keypad, the screen, the address book, the phone dialer on touch screen devices etc.
- It also provides a stable, consistent way for applications to deal with the hardware without having to know all the details of the hardware, the term referred to as abstraction in computing world.
In any device that has an operating system, there's usually a way to make changes on how the device works. This is far from a happy accident - one of the reasons operating systems are made out of portable code rather than permanent physical circuit chips, so that the entire operating system software can be changed or modified without having to scrap the whole device.
For a desktop computer, this means it is possible to add a new security update, system patch, new application or even an entirely new operating system rather than junk your computer and start again with a new one when you need to make a change. As long as you understand how an operating system works and how to get at it, in many cases you can change some of the ways it behaves. The same principles also applied to our phones, too.
Also, operating systems of now uses graphical user interface, or GUI (pronounced gooey). A GUI lets you use your mouse to click icons, buttons, and menus, and everything is clearly displayed on the screen using a combination of graphics and text. Each operating system's GUI has a different look and feel, so if you switch to a different operating system it may seem unfamiliar at first. However, recent operating systems are designed to be easy to use, and most of the basic principles are the same.
How OS is Loaded When We Turned ON the Computer
After we pressed the ON power button of our computer to start it, the first program that runs is usually a set of instructions kept in the computer's read-only memory (ROM). This code examines the system hardware to make sure everything is functioning properly. The power-on self test (POST) checks the CPU, memory, and basic input-output systems (BIOS) for errors and stores the result in a special memory location. Once the POST has successfully completed, the software loaded in ROM chips (sometimes called the BIOS or firmware) will begin to activate the computer's disk drives where the OS resides. In most recent computers, when the computer activates the disk drive, it finds the first piece of the operating system - called the bootstrap loader.
The bootstrap loader is a small program that has a single function: It loads the operating system into memory and allows it to begin operation. In the most basic form, the bootstrap loader sets up the small driver programs that interface with and control the various hardware subsystems of the computer. It sets up the divisions of memory that hold the operating system, user information and applications. It establishes the data structures that will hold the myriad signals, flags and semaphores that are used to communicate within and between the subsystems and applications of the computer. Then it turns control of the computer over to the operating system.
Types of Operating Systems
There are several hundreds of operating systems available for different purpose of applications, including the specializations for mainframes, robotics, manufacturing, real-time control systems and so on. Of all the operating system programs available, they are categorized into four (4) general types. The categorization is based on the types of computers they control and the sort of applications they support. The types includes real-time operating system, single user single task operating system, single user multitasking operating system, and multi-user multitasking operating system.
- Real-Time Operating System (RTOS):
A real time operating system typically has very little user-interface capability, and no end-user utilities, since the system will be in a sealed box when delivered for use. A very important part of a RTOS is managing the resources of the computer so that a particular operation executes in precisely the same amount of time, every time it occurs. Real-time operating systems are used to control machinery, scientific instruments and industrial systems such as embedded systems, industrial robots, spacecraft, and scientific research equipment. - Single User, Single Task:
As the name implies, this operating system is designed to manage the computer so that one user can effectively do one thing at a time. Functions like printing a document, downloading images, etc. can be performed only one at a time. The palm OS for palm handheld computers is a good example of a modern single-user, single-task operating system. - Single User, Multitasking:
This operating system was designed mainly with a single user in mind, but it can deal with many applications running at the same time. This is the type of operating system most people use on their personal computers and smartphones today. Microsoft's windows operating system and Apple's Mac OS platforms are both examples of operating systems that will let a single user have several programs in operation at the same time. For example, it's entirely possible for a windows user to be writing a note in a Notepad while downloading a file from the Internet and listening to music, all at the same time simultaneously. - Multi-user, Multitasking:
Multi-user defines operating system software that allows concurrent access by multiple users of a computer. A multi-user operating system allows many different users to take advantage of the computer’s resources simultaneously. The operating system must make sure that the requirements of the various users are balanced, and that each of the programs they are using has sufficient and separate resources so that a problem with one user does not affect the entire community of users. UNIX, VMS operating systems for mainframe computers, are examples of multi-user operating systems.
Functions of Operating System
Regardless of the types of operating system, each OS should be able to perform all or most of the following basic tasks:
- Processor Management:
The heart of managing the processor comes down to two related issues:- Ensuring that each process and application receives enough of the processor's time to function properly
- Using as many processor cycles as possible for real work. The basic unit of software that the operating system deals with in scheduling the work done by the processor is either a process or a thread, depending on the operating system.
A process, then, is software that performs some action and can be controlled by a user, by other applications or by the operating system. It is processes, rather than applications, that the operating system controls and schedules for execution by the CPU.
It's tempting to think of a process as an application, but that gives an incomplete picture of how processes relate to the operating system and hardware. The application you use (word processor, spreadsheet or game) is, indeed, a process, but that application may cause several other processes to begin, for tasks like communications with other devices or other computers. There are also numerous processes that run without giving you direct evidence that they ever exist. For example, Windows 10 OS can have dozens of background processes running to handle the network, memory management, disk management, virus checks and so on. - Memory Storage and Management
When an operating system manages the computer's memory, there are two broad tasks to be accomplished:- Each process must have enough memory in which to execute, and it can neither run into the memory space of another process nor be run into by another process.
- The different types of memory in the system must be used properly so that each process can run most effectively. The operating system must balance the needs of the various processes with the availability of the different types of memory, moving data in blocks (called pages) between available memory as the schedule of processes dictates.
- Device Management
An Operating System manages device communication through their respective drivers. It carries out the following activities for device management:- Keeps tracks of all devices. Program responsible for this task is known as the I/O controller.
- Decides which process gets the device when and for how much time.
- Allocates the device in the efficient way.
- De-allocates devices.
- File Management
A file system in computing device is normally organized into directories for easy navigation and usage. These directories may contain files and other directions. Operating System perform the following activities for the management of files:- It Keeps track of information, location, uses, status etc. The collective facilities are often known as file system.
- Decides which user should gets the resources.
- Allocates the resources.
- De-allocates the resources.
- Security: Prevention of unauthorized access to data and programs, by means of password and similar other techniques.
- Control over system performance: Recording delays between request for a service and response from the system.
- Job accounting: Keeping track of time and resources used by various jobs and users.
- Error detecting aids: Production of dumps, traces, error messages, and other debugging and error detecting aids.
- Coordination between other software and users: Coordination and assignment of compilers, interpreters, assemblers and other software to the various users of the computer systems.
Examples of Operating Systems
Popular OSs for computers are:
- Windows 10 and 11, manage by Microsoft Inc.
- Mac OS X, manage by Apple company.
- Ubuntu, manage by a Linux. Linux is an open-source software corporation where the source code is free and open to individual for improvements or modifications.
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 manage by Apple Company
- Android OS manage by Google Inc.
- Windows Phone OS manage by Microsoft Inc.
- Harmony (Hongmen) OS manage by Hauwei Inc.
2 - Language Processor
When we talk of human machine-interactions, it means the ways computer machine and human talk to each other. There are three different levels of this language.
- Machine-level language: This language is nothing but a string of 0s and 1s that the machines can understand dirctly. It is completely machine dependent. 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.
- Assembly-level language: This language introduces a layer of abstraction by defining mnemonics. Mnemonics are English like words or symbols used to denote a long string of 0s and 1s. For example, the word “WRITE” can be defined to mean that computer has to manipulate data to the memory. The complete instruction will also tell the memory address. Assembly level language is machine dependent.
- High level language: The high-level language uses English like statements and is completely independent of machines. Programs written using high level languages are easy to create, read and understand by humans.
The instructions written in high level programming languages like Java, C++, etc. is called source code. The set of instructions in a machine-readable form is called an object code or machine code. System software that converts source code to object code is called language processor/translator. There are three types of language interpreters or translator, which are:
- Assembler: It converts program written in Assembly language – i.e mnemonics, into machine level language.
- Interpreter: The language processor used to translate high level language source code into machine level language object code line by line is called an interpreter. An interpreter takes each line of code and converts it into machine code and stores it into the object file. It converts high level programs into machine level program line by line.
- Compiler: Compiler converts high level programs into machine level programs at one go rather than line by line. Compiler software program store the complete program, scan it, translate the complete program into object code and then creates an executable code.
3 - Device Drivers
System software that controls and monitors functioning of a specific device on computer is called device driver. Driver software usually brings computer devices and peripherals to life. Drivers make it possible for all connected components and external add-ons devices perform their intended tasks and as directed by the OS. Without drivers, the OS would not assign any duties. Examples of devices that require driver include the followings:
- Mouse
- Keyboard
- Soundcard
- Display card
- Network card
- Printer
Though, the recently contemporary operating system are ships with drivers for most devices already in the market. By default, input devices such as the mouse and keyboard will have their drivers already installed. They may never require third-party installations.
If a device is newer than the operating system, the user may have to download drivers from manufacturer websites or alternative sources.
4 - Firmware
Firmware is the operational software embedded within a flash, Read Only Memory (ROM), or Erasable Programmable ROM (EPROM) memory chip for the operating system to identify it. 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 on non-volatile chips and could be upgraded only by swapping them with new, pre-programmed chips. This was done to differentiate them from high-level software, which could be updated without having to swap components. Today, firmware is stored in flash chips, which can be upgraded without swapping semiconductor chips.
Firmware is the configuration interface which loads first when the computer is powered up and is going through Power On Self Test (POST).
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 Basic Input-Output System (BIOS) will not allow the computer to boot up.
Though, firmware and device driver 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 woudl be install within the operating system.
Most of the devices and peripherals are embedded with firmware. Network card, Graphic card, router, or scanner are examples of devices which have firmware installed on them.
5 - Utility program
Utility program is a software designed to help to analyze, configure, optimize or maintain a computer. They come in handy to ensure the computer functions optimally. It is used to support the computer infrastructure. It also enhances the functionality of the computer. Most are third-party tools but they may come bundled with the operating system.
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.
System software controls and coordinates the hardware and the other applications of the computer. It harmonizes the interaction between the computer, the hardware, and the user. The operating system provides the interface that enables the interaction with the user. Without the operating in recent computers, most users would find it very difficult and tedious to operate the computer.
The utility programs of system software also enhance the functionalities of computer system, by enabling it to operate optimally.