Software Concepts

A Computer is an electronic device that can perform various operations of computation at a greater speed than what an ordinary machine or human mind can do. It is driven by many entities including the physical and tangible components that we can touch or feel, called the Hardware and programs and commands that drive the hardware, called the Software.
The Software refers to the set of instructions fed in form of programs to govern the computer system and process the hardware components. For example:

  • The antivirus that we use to protect our computer system is a type of Software.
  • The media players that we use to play multimedia files such as movies, music etc. are Software.
  • The Microsoft Office we use to edit the documents is a Software.

Depending on its use and area of implementation, Softwares can be divided into 3 major types:

  1. System Software
  2. Application Software
  3. Utility Software



System Software

These are the software that directly allows the user to interact with the hardware components of a computer system. As the humans and machines follow different languages, there has to be an interface that will allow the users to interact with the core system, this interface is provided by the software. The system software can be called the main or the alpha software of a computer system as it handles the major portion of running a hardware. This System Software can be further divided into four major types:

  1. The Operating System – It is the main program that governs and maintains the inter-cooperation of the components of a computer system. For eg., Microsoft Windows, Linux, Mac OS etc.
  2. The Language Processor – The hardware components present in the computer system does not understand human language. There are three types of languages involved in the world of human-machine interaction:

    • Machine-Level Language: The machines only understand the digital signals or the binary codes or the binary language which consist of strings of 0’s and 1’s. These are totally machine dependent language.
    • Assembly-Level Language: These are the Low-Level Language(LLL), that forms a correspondence between machine level instruction and general assembly level statements. Assembly language uses a mnemonics to represent each low-level machine instruction or operation-code also called the op-codes. For eg., ADD instruction is used to add two entities, the HALT instruction is used to stop a process etc. It is a machine dependent language and varies from processor to processor.
    • High-Level Language: These are the simple English statements, that humans use to program and code as it is easy to read and understand to the human world. For eg., Java, C, C++, Python etc.

    The machine level language is very complex to understand and code, therefore the users prefer the High-Level Language or the HLL for coding. These codes need to be converted into the machine language so that the computer can easily understand and work accordingly. This operation is performed by the Language Processor which is made up of further three components:

    • Assembler: This language processor is used to convert the assembly language into machine level language.
    • Compiler: This language processor is used to convert High-Level Language into machine level language in one go, thus execution time is fast. The error detection is difficult in a compiler. Programming Languages like C, C++ and Scala use compiler.
    • Interpreter: This language processor is also used to convert High-Level Language into machine level language line-by-line, thus execution time is slow. Error-detection is easier in an interpreter as it reports as soon as a bug is caught and restarts the process. This consumes unnecessary memory. Programming Languages like Python, Ruby and Java uses an interpreter.
  3. The Device Drivers – The device drivers and the device programs or the system software that acts as an interface between the various Input-Output device and the users or the operating system. For eg., the Printers, Web cameras come with a driver disk that is needed to be installed into the system to make the device run in the system.
  4. The BIOSIt stands for Basic Input Output System and is a small firmware, that controls the peripheral or the input-output devices attached to the system. This software is also responsible for starting the OS or initiating the booting process.

Application Software

These are the basic software used to run to accomplish a particular action and task. These are the dedicated software, dedicated to performing simple and single tasks. For eg., a single software cannot serve to both the reservation system and banking system. These are divided into two types:

  1. The General Purpose Application Software: These are the types of application software that comes in-built and ready to use, manufactures by some company or someone. For eg.,
    • Microsoft Excel – Used to prepare excel sheets.
    • VLC Media Player – Used to play audio/video files.
    • Adobe Photoshop – Used for designing and animation and many more.
  2. The Specific Purpose Application Software: These are the type of software that is customizable and mostly used in real-time or business environment. For eg.,
    • Ticket Reservation System
    • Healthcare Management System
    • Hotel Management System
    • Payroll Management System

Utility Software

These are the most basic type of software which provides high utility to the user and the system. These perform the basic but daily need tasks. For eg.,

  • Antivirus Softwares: These provide protection to the computer system from unwanted malware and viruses. For eg., QuickHeal, McAfee etc.
  • Disk Defragmenter Tools: These help the users to analyse the bad sectors of the disk and rearrange the files in a proper order.
  • Text-editors: These help the users to take regular notes and create basic text files. For eg., Notepad, Gedit etc.


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.