Chapter 3: Computer Software and Operating System

 Concept of Software

 Definition of Software:

  • Organized computer data & instructions.
  • Function: Control, integrate, manage hardware; perform tasks.
  • Role: Instruct computer, manage control sequences.
  • Interaction: Software gives instructions, hardware executes.
  • Nature: Intangible, user cannot physically touch.

Relationship Between Software and Hardware:

  • Software: Computer programs loaded into the system.
  • Hardware: Visible devices forming computers.
  • Importance: Blend of software and hardware vital.
  • Function: Software controls hardware, like a driver to a car.
  • Relationship: Hardware (‘heart’) and software (‘soul’) complement.
  • Vital Pair: Both essential, working together.

Categories of Software:

  • Software: Set of programs for defined tasks.
  • Sequence of instructions, problem-solving.
  • Some categories of software are: System software, Application software 

 

Categories of software

System Software:

  • System software: Bridges user and hardware interaction.
  • Function: Manages hardware, offers essential user functions.
  • Intermediary: Between user and hardware, like the middle layer.
  • Platform: Provides an environment for other software.
  • Importance: Crucial for computer system management.
  • Initialization: Loads into memory at computer startup.
  • Background: Operates behind scenes, not for end-users.
  • Term: Also called ‘low-level software’.
  • common system software examples are:
  1. Operating System
      • Operating system: Essential for computer operation.
      • Role: Controls computer activities, user-hardware link.
      • Function: Enables user-hardware cooperation.
      • Support: Needed for running software (word processing, etc.).
      • Examples: MS DOS, Windows, UNIX, LINUX, Mac OS, Android.

Operating System (OS) Functions:

    1. Hardware management
    2. Process scheduling
    3. Memory allocation
    4. File system organization
    5. User interfaces
    6. Security control
    7. Device communication
    8. Error handling
    9. Networking support
    10. Software execution environment
    11. System services
    12. Virtualization (in some cases)
 2. Utility Software
      • Enhance computer functionality.
      • Categories: antivirus, backup, disk repair, file management, security, networking.
      • Include screensavers, font tools, desktop enhancements.
      • Maintain system health and performance.
      • Aid customization and user interface.

Example of Utility Software are:

Antivirus:

  • Guards against viruses, malware.
  • Detects, notifies, takes action.
  • Examples: Norton, Kaspersky, McAfee.

Disk Management:

  • Manages drives, partitions.
  • Examples: Paragon Partition Manager, MiniTool Partition Wizard.

Compression:

  • Reduces file sizes.
  • Examples: WinZip, WinRAR, WinAce.

Disk Cleanup:

  • Deletes unnecessary files.
  • Increases storage, system speed.
  • Examples: CCleaner, Advanced SystemCare.

Backup:

  • Creates file, database copies.
  • Recovers lost data.
  • Examples: Norton Ghost, TotalRecovery Pro.

File Management:

  • Manages computer files.
  • Tasks: search, update, browse.
  • Examples: Directory Opus, Windows File Manager.
3. Language Processor
  • Translate programs written in one to another.
  • Mediate high-level to machine-level code.
  • Translate code for software execution.
  • Example: 
        • Compiler
        • Interpreter
        • Assembler
Application Software:
  • User-focused, task-specific.
  • Essential for computer use.
  • Single programs (Notepad) or packages (spreadsheets).
  • Controlled by system software.

Used for a variety of purposes:

  • As a business tool.
  • Assist with graphics, multimedia projects.
  • Support home, personal, education.
  • Facilitate communication support.
  • Aid in the entertainment industry aid.
Types of Application Software
  1. Package Software:
  • Task-specific software.
  • User-friendly, readymade.
  • Used for various purposes by many users.
  • Types packaged software:

Word Processing Software

  • Computer-based document tasks.
  • Word processing software enables creation, editing, formatting, storage, retrieval, printing.
  • Examples: WordStar, WordPerfect, MS Word, WordPad.

Database Software

  • Creates, maintains, organizes databases.
  • Enables data retrieval.
  • Examples: dBase, FoxPro, MS Access, Oracle, SQL.

Spreadsheet Software

  • Analyzes numeric data.
  • Creates computerized ledgers.
  • Examples: Lotus 1-2-3, Excel.

Multimedia Software

  • Combines text, graphics, audio, video.
  • Used for editing video, audio, text.
  • Applications: business, education, entertainment.
  • Examples: VLC, Windows Media Player, VLMC, Media Conversion Tools, Multimedia Editing Tools, Video Editing Tools.

Presentation Software

  • Displays information as slides.
  • Includes text, graphics, video, images.
  • Components: Text editor, multimedia insertion, slideshow.
  • Simplifies idea presentation.
  • Examples: PowerPoint, Keynote.

Web Based Software

  • Hosted on web servers, accessed via browsers.
  • Data stored online, accessible from any device.
  • No need for local software installation.
  • Utilized through a web browser.
  • Easy integration into websites.
  • Cloud applications with no local storage/RAM requirement.
  • Examples: Google Classroom, voice recognition, etc.

Mobile Apps

  • Developed for smartphones, tablets.
  • Provide various services.
  • Small software units with specific functions.
  • Utility, productivity, entertainment, etc.
  • Popular in social media, various fields.
  • Enhanced interactivity and mobile-friendly format.
2. Tailored Software:
  • Custom-made for specific needs.
  • Designed for individuals or organizations.
  • Examples: NEB result processing, Tally Accounting, Medi-Pro, Billing software, School information system, etc.

 

Concept of Operating System

Introduction of Operating System

  • Bridge between hardware, software.
  • Essential for computer operation.
  • Computer’s “heart” – controls operations.
  • Manages input, output, files, peripherals.
  • Interface between hardware and User
  • Send instruction to the hardware
  • Example: Linux, Mac OS, Microsoft Windows, and UNIX, etc. 

Operating system

  1. OS Kernel
    • Core of operating system.
    • Manages hardware resources.
    • Provides essential services.
    • Controls processes, memory, devices.

2. Utility Software

    • Enhances computer functionality.
    • Examples: antivirus, backup, disk cleanup, compression.
    • Supports tasks like data management, system maintenance.

3. OS Application

    •  Software that runs on an operating system.
    • User-focused, performs specific tasks.
    • Example: Paints, WordPad, Notepad, Games, etc.

 

Role of Operating  System

  1. Memory Management:
  • Tracks memory status (allocated/free).
  • Allocates memory among processes.
  • Manages programs in memory.

2. Peripheral Management:

  • Device driver handles peripherals.
  • Translates requests, data, and messages.
  • Controls device activity.

3. Hardware Interface Management:

  • Manages wires, plugs, sockets.
  • Enables hardware communication.

4. Storage Allocation:

  • Reads, stores, writes data on disk.
  • Assigns ownership, permissions.
  • Manages data storage location.

5. Time-Slicing (Swapping):

  • Allots processing time per user or program.
  • Enables multitasking illusion.

 Functions of Operating System:

  • Interface between user and hardware.
  • Manages computer system resources.
1. Input Output (I/O) Management
  • Manages input-output in computer system.
  • Device managers handle devices.
  • Coordinates device assignments to programs.
  • Recognizes keyboard, mouse input.
  • Sends output to display, printer.
  • Controls peripheral devices.
2. Command Interpreter
  • Reads user-typed commands via terminal.
  • Interprets and translates for hardware.
  • OS-specific, varies across systems.
  • Essential for OS operation.
3. Data Management
  • Organizes data into files.
  • Arranges data in logical groups.
  • Sorts data (e.g., numerical, alphabetical).
4.Files management
  • Tracks file information.
  • Creates folders, sub-folders, files.
  • Moves, organizes files in directory hierarchy.
  • Manages folders, sub-folders, files.
  • Enables efficient file searching.
5. Memory Management
  • Array of words/bytes, each with address.
  • OS allocates memory to processes.
  • Free memory when the process ends.
  • Enables efficient memory utilization.
6. Job Management
  • Controls execution of multiple jobs or tasks.
  • Schedules and allocates resources for tasks.
  • Manages job queue, prioritization.
  • Ensures efficient CPU utilization and job completion.
7. Process Management
  • Manages running processes.
  • Handles multitasking, CPU sharing.
  • Allocates CPU time to processes.
  • Determines execution order.
  • FCFS principle (or priority-based in some cases).
  • Ensures efficient CPU utilization

Process management cycle

8. User Interface
  • Provides interaction between user and system.
  • Offers graphical or command-line interfaces.
  • Enables users to issue commands, navigate, perform tasks.
  • Ensures ease of use and efficient interaction.
9. Interrupt-handling
  • Signal from device/program to computer.
  • Halts normal processing.
  • Requires CPU attention.
  • Enhances system efficiency.
  • External devices request CPU focus.
10. Security Management
  • Crucial due to system, data, network concerns.
  • OS responsibility: computer, data, user, programmer security.
  • Controls system access.
  • Manages user accounts, passwords.
  • Offers encryption for data protection.
11. Deadlock Prevention
  • Deadlock: resource conflict halting processes.
  • OS prevents deadlock by resource allocation.
  • Allocates resources cautiously.
  • Ensures processes continue smoothly.
  • Averts resource conflicts.
12. Time Sharing
  • Allocates CPU to multiple processes.
  • Manages CPU time distribution.
  • Creates illusion of sole user.
  • Each user/process gets time slice.
  • Utilizes CPU speed advantage.
  • Supports multi-user interaction.
13. Virtual Storage Management
  • Used for programs larger than RAM.
  • Utilizes secondary memory (e.g., hard disk).
  • Program divided into pages.
  • Only needed pages stay in main memory.
  • Rest stored in secondary memory.
  • Loaded when needed.
  • Virtual storage: area in secondary memory for pages.
  • Technique are:
  • Paging:
    • Divides memory and programs into fixed-size pages.
    • Pages are stored in main memory or secondary storage.
    • Allows flexible allocation of memory.
    • Efficient memory usage.
    • Simplifies memory management.
    • Supports larger programs.
  • Swapping:
    • Moves the entire process in/out of main memory.
    • Temporary relocation to secondary storage.
    • Frees up space for other processes.
    • Helps manage limited memory efficiently.
    • Ensures optimal resource utilization.
    • Avoids unnecessary program termination.

 

Operating System Terminology

  • Multitasking Operating System:
    • Executes multiple tasks concurrently.
    • Allows simultaneous use of different programs.
    • Enables efficient task switching.
    • Examples: Editing and browsing simultaneously.
    • Enhances user productivity.
    • Supports concurrent program execution.
  • Multiprocessing Operating System:
    • Multiple CPUs in a single computer system.
    • CPUs closely connected, share data.
    • Communication between processors.
    • Shared resources: memory, buses, devices.
    • Used for high processing speed.
    • Scientific calculations, data analysis.
    • Applications like weather forecasting.
    • Efficient for data-intensive tasks.

Windows Operating System

 Introduction to GUI based Operating System and Its Features

  • Popular since the 1990s (Windows, macOS).
  • Integral graphical interface.
  • Ease-of-use environment over command line.
  • Non-experts access and use computers.
  • GUI: Graphical User Interface.
  • Uses mouse, images for interaction.
  • Windows, Icons, Menus, Pointing devices (WIMPs).
  • WYSIWYG: What You See Is What You Get.
  • Eliminates need to remember keywords.
  • Menus replace commands.
  • Relates desktop environment to physical workspace.

 

GUI Advantages and Disadvantages:

Advantages:

  1. Beginner-friendly.
  2. Cut, paste, drag-and-drop info exchange.
  3. User-friendly interaction.

Disadvantages:

  1. High memory, processing needs.
  2. Slower than the command line.
  3. Can be complex for simple tasks.
  4. Main GUI components: Windows, Icons, Menus, Pointer (WIMP).
  5. Examples: Windows 10, macOS, Ubuntu.

 

Features of GUI:

  1. Visual interaction with images, icons.
  2. Mouse-based navigation.
  3. Windows: Separate on-screen areas for apps.
  4. Icons: Represent files, programs.
  5. Menus: Dropdown lists for commands.
  6. Pointing devices (e.g., mouse, touchpad).
  7. WYSIWYG: Accurate on-screen to print output.
  8. User-friendly, intuitive interface.
  9. Used in Windows, macOS, Linux distributions.

 

Open Source and Mobile Operating System

Concept of Open Sources Operating

  • Accessible, modifiable source code.
  • Users can fix, enhance, improve code.
  • Open source operating systems:
          • GNU/Linux (Debian, Fedora, Ubuntu, etc.)
          • OpenSolaris
          • FreeBSD
          • Android (mobile phone platform)

Advantages:

  • Customization: Modify to fit specific needs.
  • Flexibility: Adapt to changing requirements.
  • Cost-effective: No licensing fees.
  • Community Support: Collaboration for improvement.
  • Security: Faster bug fixes, updates.
  • Transparency: Code review, assurance.
  • Innovation: Encourages creativity, diverse solutions.
  • No Vendor Lock-in: Not tied to single provider.
  • Reliability: Many eyes on code, quick issue resolution.

Disadvantages:

  • Lack of Support: Limited or paid support options.
  • Complexity: Learning curve for new users.
  • Compatibility: Interoperability challenges with proprietary software.
  • Fragmentation: Various distributions, versions.
  • Security Risks: Vulnerabilities due to open code.
  • Lack of Polished UI: Some may lack user-friendly interface.
  • Limited Hardware Support: Not all devices/drivers may be supported.
  • Potential Forks: Development divergence can lead to multiple versions.
  • Legal and Licensing Issues: Compliance concerns for commercial use.

 

Free Software

  • Refers to software with freedom for users.
  • Freedom to use, modify, distribute.
  • Not necessarily cost-free.
  • Upholds user rights.
  • Example: GNU General Public License (GPL).
  • Promotes collaboration, sharing.

Introduction to UNIX, Linux

UNIX:
  • Portable, multitasking, multiuser, time-sharing OS.
  • Originated in 1969 by AT&T employees.
  • Initially in assembly language, reprogrammed in C (1973).
  • Identified with open systems concept.
  • Ported to various machine families.
  • Common in PCs, servers, mobile devices.
  • Essential for Internet, networking development.
  • Varieties of UNIX are: Sun Solaries, GNU/Linux and MacOS X.
The UNIX Operating System

The Kernel:

  • Connects hardware and user.
  • Central software component.
  • Manages files, memory, devices, processes, network.
  • Ensures system and user tasks correctness.
  • Essential for smooth OS operation.

The Shell:

  • Intermediary between user and kernel.
  • Translate typed commands.
  • Shell scripts are sequences of commands.
  • Two major types: Bourne shell, C shell.
  • Bourne shell: default in Version 7 Unix.

The program:

  • Wide range of built-in programs.
  • Text editors (vi, nano), compilers (gcc), utilities (ls, cp).
  • Shell programs (bash, sh) for command-line interaction.
  • Networking tools (ssh, ftp) for communication.
  • System administration tools (useradd, chmod).
  • Programming libraries and tools (libc, make).
  • Offers diverse functionality for users and administrators.
Linux
  • Freely distributable, Unix-based.
  • Cross-platform, installed on various devices.
  • PCs, laptops, mobiles, tablets, servers, more.
  • Packaged as Linux distributions.
  • Includes Linux kernel, tools, libraries.
  • Common distributions: Debian, Ubuntu, Fedora, Red Hat, openSUSE.

Advantage of Linux:

  • Open Source: Freedom to modify, distribute.
  • Stability: Reliable, fewer crashes.
  • Security: Less vulnerable to malware.
  • Customization: Tailor to specific needs.
  • Performance: Efficient resource usage.
  • Cost-effective: No licensing fees.
  • Community Support: Collaboration, solutions.
  • Compatibility: Works on various hardware.
  • Versatility: Runs on diverse devices.

Disadvantage of Linux:

  • Learning Curve: May require new skills.
  • Software Compatibility: Some apps not available.
  • Hardware Compatibility: Limited drivers.
  • Gaming: Fewer gaming options.
  • User Interface: UI inconsistencies.
  • Support: Limited official support for some distributions.
  • Enterprise Adoption: Less common in some industries.
  • Commercial Software: Less commercial software available.
  • Fragmentation: Numerous distributions, versions.
Some LINUX commands
  • mkdir – Its used to make directories

Syntax: mkdir directory

Example: mkdir ram

  • cd – cd command is used to changed directories

Syntax: cd directory

Example: cd hello

  • mv – To changed the name of directory mv command is used.

Syntax: my old_directory_namenew_directory_name

Example: mv testdir newnamedir

  • rmdir – It remove an existing directory.

Syntax: rmdir directory

Example: rmdir directory

  • cp – To copy files from one place to another cp command in used.

Syntax: cp source destination

Example: cp myfiles yourfile

  • cal month year – It prints a calendar for the specified month of the specified year.

Example: cal 12 1987

  • cat files – It prints the contents of the specified files.

Syntax: cat files_name

Example: cat newyear

  • clear – It is used to clear the terminal screen.

Syntax: clear

  • cmp files 1 files 2 – It compares two files, reporting all discrepancies. Similar to the diff command, though the output format differs.
  • free – free command displays the amount of used and free system memory.

 

Linux Distributions

  • OS based on Linux kernel.
  • Includes software collection, package management.
  • Users download distributions.
  • Available for various systems (embedded to supercomputers).
  • Examples: OpenWrt (embedded), Linux Mint (PCs), Rocks Cluster (supercomputers).
  • some popular Linux operating system are:
1. Ubuntu
  • Created by Canonical in 2004.
  • Focus on user-friendly graphical interface.
  • Derivative of Debian.
  • Popular, well-known Linux distribution.
  • Designed for ease of use, minimal command line.
  • Comes with pre-installed apps, repositories.
  • Transitioned from GNOME2 to Unity desktop.
  • Frequent releases every six months.
  • Expanding to tablets, smartphones.
2. Fedora
  • Focuses on free software, latest versions.
  • Doesn’t create its own desktop environment.
  • Relies on “upstream” software.
  • Default desktop environment: GNOME3.
  • Emphasizes latest features over stability.
3. Linux Mint
  • Based on Ubuntu, shares repositories.
  • Originated as Ubuntu alternative.
  • Includes media codecs, proprietary software.
  • Gained popularity over time.
  • Uses Cinnamon, MATE desktop environments.
  • Distinct from Ubuntu’s Unity desktop.

 

Concept of Mobile Operating System

  • Platform for mobile devices (PDAs, smartphones, etc.).
  • Evolved from PC-based to smartphone-oriented.
  • Driven by hardware, software, Internet advancements.
  • Popular OSs: Android, Symbian, iOS, BlackBerry, Windows Mobile.
  • Defines device features, functions (keypads, sync, email, etc.).
  • Manages wireless connections, multimedia, input methods.
  • Similar to standard OS, but simpler and lighter.

 Types of Mobile Operating System

1. Android OS (Google Inc.)
  • Developed by Open Handset Alliance, led by Google.
  • Unveiled in November 2007.
  • Core under open source Apache License.
  • Proprietary software includes Play Store, Google services.

Feature of Android:

  • Open Source: Customizable, accessible code.
  • User Interface: Flexible, rich UI options.
  • App Ecosystem: Vast selection on Play Store.
  • Multitasking: Switch between apps smoothly.
  • Notifications: Interactive, informative alerts.
  • Customization: Widgets, themes, launchers.
  • Connectivity: Seamless integration with Google services.
  • Hardware Compatibility: Supports various devices.
  • Security: Regular updates, app permissions.
  • Cloud Integration: Syncing, backup, storage.
2. iPhone OS/IOS (Apple)
  • Developed by Apple Inc.
  • Exclusive to Apple hardware.
  • Powers iPhone, iPad, iPod Touch, Apple TV.
  • Closed source, proprietary.
  • Built on open source Darwin core OS.
  • Introduced direct manipulation for user interaction.
  • Focused on small screens, limited input devices.

Feature of iPhone OS/iOS (Apple):

  • Sleek User Interface: Clean, intuitive design.
  • App Store: Curated apps, high-quality standards.
  • Optimized Performance: Smooth operation on Apple hardware.
  • Security: Regular updates, stringent app review.
  • Privacy: User data protection, app permission control.
  • iCloud Integration: Seamless data syncing, backup.
  • Seamless Ecosystem: Integration with Apple devices.
  • Siri: Voice assistant for tasks, queries.
  • Face ID/Touch ID: Secure biometric authentication.
  • ARKit: Augmented reality development platform.
3. Windows Mobile (Windows Phone)
  • Developed by Microsoft for smartphones, Pocket PCs.
  • Integrates Xbox Live, Xbox Music, video experience.
  • Extends Windows desktop to portable devices.
  • Three types: Standard, Professional, Classic.
  • Seamlessly integrates with Microsoft services.
  • Offers familiar Windows interface on mobile devices.
  • Supports various types of mobile hardware.
  • Used on PPC mobile phones, PDAs, portable music players.

Feature of Windows Mobile:

  • Familiar Interface: Windows-like user experience.
  • Microsoft Integration: Seamless access to Microsoft services.
  • Multitasking: Run multiple apps simultaneously.
  • Office Integration: Microsoft Office apps.
  • Cortana: Voice-powered virtual assistant.
  • Live Tiles: Dynamic, informative home screen icons.
  • Customization: Personalize start screen, apps layout.
  • Security: Device encryption, app sandboxing.
  • Universal Apps: Apps across Windows devices.
  • Xbox Integration: Xbox Live games and services.
4. BlackBerry OS (Research in Motion)
  • Developed by Research In Motion (RIM).
  • Designed for BlackBerry handheld devices.
  • Offers synchronization with business software.
  • Particularly beneficial for corporate users.
  • Supports Microsoft Exchange, GroupWise, Lotus Domino.
  • Known for security and enterprise features.
  • Historically popular among business professionals.

Feature of BlackBerry OS:

  • Security: Strong encryption, data protection.
  • Push Email: Instant email delivery.
  • BlackBerry Messenger (BBM): Secure messaging.
  • Enterprise Integration: Synchronization with business software.
  • BlackBerry Hub: Unified communication hub.
  • Physical Keyboard: Many devices feature physical QWERTY keyboards.
  • Efficient Messaging: Priority Hub, filters.
  • Remote Device Management: Admin controls for business use.
  • BlackBerry Balance: Separates work and personal data.
  • BlackBerry World: App store for BlackBerry apps.
5. Symbian OS (Nokia)
  • Mobile operating system with communication integration.
  • Based on the Java language.
  • Combines wireless communications and PIM.
  • Developed by Symbian Ltd in 1998.
  • Originally designed for mobile phones.
  • First used by Nokia in its mobile devices.

Feature of Symbian OS (Nokia):

  • User-Friendly Interface: Easy navigation and operation.
  • Multitasking: Running multiple apps simultaneously.
  • Customization: Themes, layouts, and profiles.
  • Messaging: SMS, MMS, email, and IM support.
  • Integrated PIM: Contacts, calendar, tasks, notes.
  • Java Support: Allows running Java apps.
  • Connectivity: Bluetooth, Wi-Fi, USB.
  • Media Playback: Music, video, image viewing.
  • Web Browsing: Basic web browsing capabilities.
  • Extensibility: Support for third-party apps.