System Software Notes

System Softwares

  • System software is low-level software that manages and controls a computer's hardware, providing basic services to higher-level software.
  • Two main types of software:
    • Systems software
    • Application software
  • Systems software manages the computer itself, including:
    • Operating system
    • File management utilities
    • Disk Operating System (DOS)

What is System Software?

  • System software provides a platform for other software.
  • Examples:
    • Operating systems
    • Antivirus software
    • Disk formatting software
    • Computer language translators
  • Commonly prepared by computer manufacturers.
  • Written in low-level languages to interact with hardware at a basic level.
  • Acts as an interface between hardware and end users.
  • Collection of programs enabling a computer to function properly.
  • Intermediary between user and computer hardware, allowing interaction with hardware and various applications.
  • Common types include:
    • Operating systems (Windows, macOS, Linux)
    • Device drivers
    • Utility programs
    • Programming languages
    • System libraries
  • Operating systems are the most important, providing a foundational framework for all other software.
    • They manage computer resources (memory, processing power) and provide a user interface.
  • Device drivers allow the operating system to communicate with hardware devices (printers, scanners, graphics cards).
  • Utility programs provide additional functionality (disk defragmentation, virus scanning, file compression).

Examples of System Software

  • Designed to run a computer's hardware and application programs.
  • Examples:
    • Operating systems (macOS, Linux, Android, Microsoft Windows)
    • Game engines
    • Search engines (Google, Bing, Yahoo!)
    • Industrial automation
    • Computational science software
    • Software as a Service (SaaS) applications
  • Specific examples:
    • Operating systems (OS): Windows, Linux, macOS, etc.
    • Windows: Dominant OS for personal computers, known for its wide software compatibility.
    • Linux: Open-source OS, used in servers, embedded systems, and as desktop OS; known for stability and flexibility.
    • macOS: Apple's OS, known for user-friendly interface and integration with Apple hardware.
    • Device drivers: enable communication between hardware and OS.
    • Examples: Printer drivers, graphics card drivers, network adapter drivers. They facilitate proper communication and functioning of the connected devices.
    • Firmware: pre-installed low-level software that controls basic functions.
    • Examples: BIOS, UEFI. It initializes hardware during the boot process.
    • Utility software: tools for system maintenance and optimization.
    • Examples: Disk defragmenters, antivirus software, backup utilities. These ensure smooth and secure operation of the computer.
    • Boot loaders: initialize the OS during startup.
    • GRUB (Grand Unified Bootloader) is a common example, loading the OS kernel into memory.

Why use System Software?

  • Hardware Communication: Serves as interface between hardware and software components.
  • Resource Management: Manages memory, CPU usage, and storage, optimizing their utilization.
    • Efficiently allocates resources to prevent conflicts and ensure smooth operation.
  • Security: Provides security measures like firewalls, antivirus software, and encryption.
    • Essential for protecting the system from malware and unauthorized access.
  • User Interface: Provides a user interface for users to interact with the device.
    • Enables users to control and manage the computer.
  • Application Support: Supports installation and running of applications.
    • Ensures compatibility and proper functioning of applications.
  • Customization: Allows customization of system settings.
    • Enables users to tailor the system to their needs.

Features of System Software

  • Memory Management: Operating system manages primary memory, allocating it upon request.
    • Includes memory allocation, deallocation, and virtual memory management.
  • Processor Management: OS performs process management, allocating RAM to a process and de-allocating when no longer needed.
    • Involves scheduling processes, handling interrupts, and managing multi-core processors.
  • File Management: Operating system manages files, allocating and de-allocating resources and deciding resource allocation.
    • Includes file and directory operations, access control, and file system integrity.
  • Security: Prevents unauthorized access using passwords.
    • Incorporates authentication, authorization, and encryption to protect system resources.
  • Error-detecting Aids: Provides dumps, traces, error messages, and other debugging methods.
    • Helps in identifying and resolving system errors.
  • Scheduling: OS schedules processes using scheduling algorithms.
    • Determines the order in which processes are executed to optimize performance.

Types of System Software

  • Operating System
  • Device Drivers
  • Utilities
  • Programming Language Translators
  • Firmware
  • BIOS & UEFI
1. Operating System
  • Manages computer's hardware and software resources.
  • Provides common services for computer programs.
  • Acts as a link between software and hardware.
  • Controls and records the execution of programs, including application programs and other system software.
Important Tasks Performed by the Operating System
  • Resource Management: Manages and allocates memory, CPU time, and other hardware resources.
    • Memory allocation, CPU scheduling, and device management.
  • Process Management: Starts, stops, and manages processes and programs; controls scheduling and resource allocation.
    • Process creation, termination, and synchronization.
  • Memory Management: Manages computer's primary memory and optimizes memory usage.
    • Virtual memory, paging, and segmentation.
  • Security: Provides a secure environment using security policies and mechanisms like access controls and encryption.
    • User authentication, access control lists, and data encryption.
  • File Management: Organizes and manages the file system, including file and directory creation, deletion, and manipulation.
    • File system organization, directory management, and file access control.
  • Device Management: Manages input/output devices; provides necessary drivers and interfaces for communication.
    • Device driver management, I/O scheduling, and device communication protocols.
2. Programming Language Translator
  • Translates code written in one programming language into another.
  • Examples:
    • Compiler
    • Interpreter
    • Assembler
Compiler
  • Translates code from one language to another without changing the meaning.
  • Optimizes target code for time and space efficiency.
  • Operations performed during compilation:
    • Pre-processing
    • Lexical analysis
    • Parsing
    • Semantic analysis (syntax-directed translation)
    • Conversion to intermediate representation
    • Code optimization
    • Code generation
  • Examples: gcc (compiler), g++ (C++ Compiler), Javac (Java Compiler), etc.
Interpreter
  • Directly executes instructions written in a programming or scripting language without prior compilation.
  • Translates high-level instructions into an intermediate form, which is then executed.
  • Fast, as it skips the compilation stage.
  • Continuously translates until the first error is met, then stops, making debugging easy.
  • Examples: Ruby, Python, PHP, etc.
Assembler
  • Converts assembly language into machine code.
  • Takes basic commands and operations and converts them into binary code for a specific processor.
  • Produces executable code similar to compilers.
  • More simplistic since it converts low-level code to machine code.
  • Each assembly language is designed for a specific processor.
  • Simple one-to-one mapping from assembly code to machine code.
  • Compilers convert generic high-level source code into machine code for a specific processor.
3. Device Drivers
  • Minimizes the need for system troubleshooting.
  • Operating system communicates with hardware elements through device drivers.
  • Simplifies management and regulation of hardware communication.
  • Operating system comes with various device drivers.
  • Most device drivers are pre-installed (mouse, keyboard, etc.).
4. Firmware
  • Operational programs installed on computer motherboards.
  • Helps the operating system distinguish between Flash, ROM, EPROM, and memory chips.
  • Main purpose: managing and controlling all of a device's actions.
  • Uses non-volatile chips for initial installation.
  • Two main types:
    • BIOS (Basic Input/Output System) chip
    • Older firmware type, responsible for initializing hardware during the boot process.
    • UEFI (Unified Extended Firmware Interface) chips
    • Modern firmware, offering improved functionality, security, and graphical interfaces.
5. Utility Software
  • Interacts between system software and application software.
  • Third-party product created to lessen maintenance problems and find computer system defects.
  • Included with the computer's operating system.
  • Attributes:
    • Protection from threats and infections.
    • Examples: Antivirus software, firewalls.
    • WinRAR and WinZip aid in reducing disk size.
    • File compression and archiving tools.
    • Assists with disk partitioning.
    • Creates separate partitions to manage disk space efficiently.
    • Improves system security and makes backup easier.
    • Backup software, encryption tools.
    • Disk defragmenter to organize dispersed files.
    • Optimizes file storage for faster access.
    • Aids in recovering lost data.
    • Data recovery tools.

Uses of System Software

  • Operating systems: manage computer hardware and software resources; used in personal computers, servers, supercomputers, embedded systems.
    • Windows in PCs, Linux in servers, and embedded OS in devices like routers.
  • Device drivers: allow operating systems to communicate with hardware devices; without them, operating systems would be unable to interact with devices.
    • Printer drivers, graphics drivers, and network drivers.
  • Firmware: provides low-level control over hardware devices; examples include BIOS firmware, embedded systems, and network devices.
    • BIOS for system startup, firmware in routers to manage network traffic.
  • System utilities: perform routine maintenance tasks like disk cleanup, defragmentation, antivirus scanning, and system backups; ensure efficient and secure system operation.
    • Disk defragmenters, antivirus software, and backup utilities.
  • Programming tools: used by developers to create, debug, and optimize software applications; includes compilers, debuggers, IDEs, and performance analysis tools.
    • Compilers for code translation, debuggers for troubleshooting, and IDEs for development.

Issues in System Software

  • Compatibility Issues: May not be compatible with certain hardware components.
    • Older software may not work on newer hardware.
  • Security Issues: May contain vulnerabilities exploitable by hackers or malware.
    • Unpatched vulnerabilities can be exploited by attackers.
  • Performance Issues: May not be optimized or may be resource-intensive,