Software and Operating Systems

July 17, 2025
4 views
0 comments
Software and Operating Systems

2.1 Introduction to Software

In the previous chapter, we focused on hardware—the physical components of a computer. However, hardware is useless on its own. It needs to be given instructions to perform any task. Software is the collection of programs, procedures, and data that tells the computer hardware what to do. It is the intangible part of the computer system that brings the hardware to life.

Software can be broadly categorized into three main types: System Software, Utility Software, and Application Software.

2.2 Types of Software

Type of Softwares

a) System Software

System Software is a type of computer program designed to run a computer's hardware and provide a platform for application programs to run. It acts as the essential intermediary layer between the hardware and the end-user applications. Its primary goal is to manage the computer's internal resources efficiently.

System Software includes the following:

  • Operating System (OS): This is the most crucial piece of system software. It manages all the hardware and software resources of the computer, such as the CPU, memory, and storage devices. We will discuss this in detail later in the chapter.

    • Examples: Microsoft Windows, macOS, Linux, Android.
  • Language Translators: These are essential tools that programmers use to create other software. Language translators convert human-readable source code, written in a programming language, into machine-executable code that the computer's processor can understand and execute.

    • Compiler: A compiler translates the entire source code of a program written in a high-level language (like C++ or Java) into machine code all at once. It generates a separate executable file (e.g., an .exe file). If the compiler finds any errors, it lists them all after scanning the whole program. The resulting executable runs faster because the translation process is completed before execution.
    • Assembler: An assembler translates code written in Assembly Language, which is a low-level symbolic language very close to machine code, into machine code.
    • Interpreter: An interpreter translates and executes the source code of a program line by line. It reads one line, converts it to machine code, executes it, and then moves to the next. If it finds an error, it stops immediately at that line. Languages like Python and JavaScript are often interpreted. Interpreted programs are generally slower since translation happens during execution, but they can be easier to debug.

b) Utility Software

Utility Software is designed to help analyze, configure, optimize, or maintain a computer. It supports the computer's infrastructure and performs specific "housekeeping" tasks to ensure the system runs smoothly, securely, and efficiently.

  • Disk Defragmenter: Reorganizes files on a hard disk drive to occupy contiguous storage locations, which can improve the speed of accessing files.
  • Antivirus Software: Scans the system for malware (such as viruses, trojans, and spyware) and removes or quarantines them to protect the system.
  • Backup Software: Creates copies of data that can be restored in case of data loss due to hardware failure, corruption, or accidental deletion.
  • File Compression Tools: Reduces the size of files to save disk space and decrease the time needed to transmit them over a network (e.g., WinZip, 7-Zip).
  • Device Drivers: A device driver is a specialized program that allows the operating system to communicate with and control a specific hardware device (like a printer, mouse, or graphics card). When you connect a new device, its driver must be installed so the OS knows its specifications and how to operate it.

c) Application Software

Application software is designed for end-users to perform specific tasks that are not related to the fundamental operation of the computer. These are the programs most people interact with daily to accomplish tasks like writing, calculating, or browsing the internet.

  • General-Purpose Application Software: This software is designed for a broad audience and can be used for a wide variety of common tasks.

    • Word Processors: For creating and editing text documents (e.g., Microsoft Word, Google Docs).
    • Spreadsheets: For organizing, analyzing, and storing data in tabular form (e.g., Microsoft Excel, Google Sheets).
    • Presentation Software: For creating slideshows for presentations (e.g., Microsoft PowerPoint, Google Slides).
    • Web Browsers: For accessing and navigating the internet (e.g., Google Chrome, Mozilla Firefox).
  • Customized Software (Specific-Purpose): This software is specially designed, or "tailor-made," to meet the specific needs of a particular user or organization.

    • Accounting Software: (e.g., Tally for business accounting).
    • Reservation Systems: (e.g., software used by airlines or hotels to manage bookings).
    • School Management Systems: (for handling student attendance, grades, schedules, etc.).
    • Weather Forecasting Apps: Specialized applications that process meteorological data.

Comparison of Compiler and Interpreter:

FeatureCompilerInterpreter
TranslationTranslates the entire program at once before execution.Translates the program line by line during execution.
ExecutionCreates a separate executable file (.exe) that can run independently.No separate executable file is created.
SpeedExecution is generally faster as the code is already translated.Execution is generally slower as translation occurs in real-time.
Error ReportingReports all errors at the end of the compilation process.Stops and reports the first error it encounters.
MemoryRequires more memory to generate and store the object code.More memory efficient as no intermediate object code is stored.
Example LanguagesC, C++, JavaPython, JavaScript, Ruby

2.3 The Operating System (OS)

The Operating System is the core software that makes a computer usable. It acts as an interface between the computer hardware and the user, managing all resources and providing a platform for application software to run.

a) Functions of an Operating System

  • Process Management: A process is a program in execution. The OS manages the allocation of the CPU to different running processes, a task known as scheduling. It ensures that each process gets a fair share of CPU time.
  • Memory Management: The OS manages the computer's primary memory (RAM). It allocates memory to processes when they need it and deallocates it when they are done, ensuring that processes do not interfere with each other's memory space.
  • File Management: The OS is responsible for organizing and managing files and directories on secondary storage devices. This includes creating, deleting, renaming, and moving files, as well as controlling access to them.
  • Device Management: The OS controls all the input/output devices attached to the computer. It manages communication with devices through their drivers and handles the allocation of devices to different processes.
  • Security: The OS provides security by protecting the system's resources from unauthorized access. This is often achieved through user accounts, passwords, and file permissions.
  • User Interface: The OS provides a way for the user to interact with the computer.

b) OS User Interface

The user interface (UI) is the part of the OS that allows the user to communicate with the machine.

  • Command Line Interface (CUI):

    • In a CUI, the user interacts with the OS by typing specific text commands at a prompt.
    • Advantages: It is powerful, fast, and uses very few system resources. It is highly valued by programmers and system administrators for its control and scriptability.
    • Disadvantages: It is not user-friendly, as it requires the user to memorize a large number of commands and their exact syntax.
    • Examples: MS-DOS, Command Prompt in Windows, Terminal in Linux and macOS.
  • Graphical User Interface (GUI):

    • In a GUI, the user interacts with the OS using visual elements like windows, icons, menus, and pointers (WIMP).
    • Advantages: It is intuitive, easy to learn, and user-friendly, making computers accessible to a non-technical audience.
    • Disadvantages: It consumes more system resources (CPU, memory, and disk space) than a CUI.
    • Examples: Microsoft Windows, Apple's macOS, graphical desktops for Linux (like GNOME and KDE).

2.4 Types of Operating Systems

Operating systems can be classified based on their capabilities, the number of users they can support, and the types of tasks they are designed to handle.

a) Single-User, Single-Tasking OS

This is the most basic type of operating system, designed to manage the computer so that one user can effectively do one thing at a time.

  • Characteristics: It allows only one user to run one program at any given moment.
  • Examples: MS-DOS (Microsoft Disk Operating System) is a classic example. Early mobile phone operating systems also fit this category.

b) Single-User, Multi-Tasking OS

This type of OS allows a single user to run several programs concurrently. The OS is responsible for managing the computer's memory and CPU time to ensure that all applications run smoothly.

  • Characteristics: The user can have multiple applications open and switch between them, such as browsing the web while listening to music and having a word processor open. This is the standard for modern personal computers.
  • Examples: Microsoft Windows (from Windows 95 onwards), Apple's macOS, and desktop versions of Linux.

c) Multi-User Operating System

A multi-user OS allows many different users to take advantage of the computer's resources simultaneously. The OS must make sure that the requirements of the various users are balanced and that they do not interfere with each other.

  • Characteristics: It enables multiple users to connect to and operate a single computer (often a powerful server or mainframe) from different terminals or computers. It requires sophisticated management of processes, memory, and security to handle concurrent user sessions.
  • Examples: UNIX, Linux, and server editions of Microsoft Windows.

d) Real-Time Operating System (RTOS)

An RTOS is a specialized operating system designed to serve real-time applications that process data and events as they happen, typically without any buffering delays.

  • Characteristics: The key feature is its predictability and the ability to guarantee a response within a strict time constraint. These systems are critical in environments where a delay could cause a system failure.
  • Two Types of RTOS:
    • Hard Real-Time: Guarantees that critical tasks will be completed within a defined time. Used in life-critical systems like aircraft control and medical devices.
    • Soft Real-Time: Aims to meet deadlines but allows for occasional slight delays. Used in applications like live audio/video streaming where minor jitter is acceptable.
  • Examples: VxWorks, QNX.

e) Distributed Operating System

A distributed OS manages a group of distinct, networked computers and makes them appear to be a single computer.

  • Characteristics: Users interact with the system as if it were one machine, without needing to know which computer is actually running their task or where their files are stored. It enhances performance and reliability by distributing the workload across multiple machines.
  • Examples: LOCUS, Solaris.

f) Mobile Operating System

These are operating systems designed specifically for mobile devices like smartphones and tablets.

  • Characteristics: They are optimized for touch-based interfaces, connectivity (Wi-Fi, Cellular), and power management to conserve battery life. They are generally less full-featured than desktop operating systems but are highly efficient for mobile tasks.
  • Examples: Google's Android, Apple's iOS/iPadOS.

2.5 Software Licensing and Distribution

When you acquire software, you are typically not buying the software itself but a license that gives you permission to use it under certain conditions. This is governed by a software license agreement.

a) Proprietary Software (or Commercial Software)

This is software that is owned by an individual or a company. Its source code is kept secret, and users are granted a license to use the software under specific terms.

  • Licensing:
    • Perpetual License: A one-time fee gives the user the right to use the software indefinitely.
    • Subscription License: Users pay a recurring fee (monthly or yearly) to use the software. This model often includes updates and support.
  • Restrictions: Users are typically not allowed to modify, copy, or redistribute the software.
  • Examples: Microsoft Windows, Adobe Photoshop.

b) Open-Source Software

Open-source software is software with source code that anyone can inspect, modify, and enhance.

  • Licensing: It is released under a license that grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose.
  • Characteristics: It is often developed in a collaborative, public manner. "Free" in this context refers to freedom, not necessarily price, although most open-source software is available at no cost.
  • Examples: Linux, Mozilla Firefox, Apache Web Server.

c) Freeware

Freeware is software that is available for use at no monetary cost but is still copyrighted, meaning users are not allowed to access or modify the source code.

  • Licensing: It is free to use but is not open source. The author retains full copyright.
  • Restrictions: Users can download and use the software for free, but they cannot decompile, modify, or sell it.
  • Examples: Google Chrome, Skype, Adobe Acrobat Reader.

d) Shareware

Shareware is proprietary software that is distributed for free on a trial basis. The software is often limited in functionality or time.

  • Licensing: Users are encouraged to share the software with others to promote its use. To unlock full functionality or continue using it after the trial period, the user is required to pay a fee.
  • Purpose: It follows the "try before you buy" model, allowing users to test the software's suitability before committing to a purchase.
  • Examples: WinZip, older versions of many popular games and utilities.

Attached PDF Document

This note includes a comprehensive PDF document for reference and offline study

PDF Preview

View Full Screen

Arbind Singh

Teacher, Software developer

Innovative educator and tech enthusiast dedicated to empowering students through robotics, programming, and digital tools.

Comments (0)

You need to be signed in to post a comment.

Sign In

No comments yet

Be the first to share your thoughts and insights about this note!

Note Stats

Views4
Comments0
PublishedJuly 17, 2025

Related Notes

Introduction to Computer Science

Class 11 • Computer Science

Python Programming Basics

Class 12 • Computer Science

Database Management Systems

Class 12 • Informatics Practices

Part of Course

Foundations of Computer Science and Python Programming (CBSE Class XI - 083)

Price
Free
Software and Operating Systems | StudyVatika Notes