System Software - Quick Reference

System Software

  • Controls the internal computer operation; bridge between user, applications, and hardware.

  • Major types: Compilers,Interpreters,Linkers,DeviceDrivers,OperatingSystems,UtilitiesCompilers, Interpreters, Linkers, Device Drivers, Operating Systems, Utilities

  • Developing Software:

    • ProgrammingLanguageProgramming Language

    • LanguageTranslatorLanguage Translator

    • LinkerLinker

    • LoaderLoader

  • General Purpose Software: Word Processor; Presentation; Spreadsheet; Image editor

  • Specific Purpose Software: Reservation System; Attendance System; Billing System; Report Card Generator, etc.

1. Types of System Software

  • 1.11.1 Compilers

    • Description: A compiler translates high-level programming code into machine code (binary) in a single pass, generating an executable file.

    • Uses: Used for converting entire programs written in languages like C, C++, and Java into machine code before execution.

  • 1.21.2 Interpreters

    • Description: An interpreter translates high-level programming code into machine code line by line, executing each line immediately.

    • Uses: Commonly used in languages like Python, JavaScript, and PHP, where code needs to be tested or executed without creating an executable file.

  • 1.31.3 Linkers

    • Description: A linker combines various object files (from compiled code) into a single executable program. It resolves references between program modules.

    • Uses: Used when large programs are divided into multiple modules, allowing for modular development and easy code integration.

  • 1.41.4 Device Drivers

    • Description: Device drivers are specialized software that allow the operating system to communicate with hardware devices (e.g., printers, graphics cards, and storage devices).

    • Uses: Every hardware component requires a driver for seamless communication with the operating system.

  • 1.51.5 Operating Systems

    • Description: An operating system (OS) is software that manages hardware resources and provides services to application software.

    • Uses: OS like Windows, macOS, Linux, and Android manage tasks like file management, memory management, and user interfaces, enabling the functioning of computer systems.

  • 1.61.6 Utilities

    • Description: Utility software performs system maintenance tasks such as disk defragmentation, virus scanning, and file compression.

    • Uses: Utilities enhance system performance, ensure security, and manage file systems.

2. Uses of System Software

  • Compilers: Used in software development environments to convert high-level code into machine-readable code for faster execution in production environments.

  • Interpreters: Beneficial in debugging and program development because they allow immediate execution and testing without compiling the entire code.

  • Linkers: Help in developing large programs by linking different program modules together, ensuring they work as a cohesive whole.

  • Device Drivers: Ensure compatibility between hardware devices and operating systems, allowing seamless user interaction with peripherals.

  • Operating Systems: Provide the necessary environment for running applications, managing files, multitasking, and interfacing between the user and hardware.

  • Utilities: Perform maintenance tasks that optimize system performance, secure data, and ensure efficient use of hardware resources.

3. Advantages and Disadvantages of System Software

  • 3.13.1 Compilers

    • Advantages:

    • Faster execution once code is compiled.

    • Optimized machine code for better performance.

    • Disadvantages:

    • Debugging is more difficult since compilation must happen before testing.

    • Requires recompilation for any changes, which can be time-consuming.

  • 3.23.2 Interpreters

    • Advantages:

    • Easier to debug since errors are detected immediately during execution.

    • No need to recompile the code after every change.

    • Disadvantages:

    • Slower execution due to line-by-line interpretation.

    • Code must be interpreted each time it is executed, consuming more resources.

  • 3.33.3 Linkers

    • Advantages:

    • Enables modular development, allowing programs to be broken into smaller, manageable pieces.

    • Resolves references between multiple object files efficiently.

    • Disadvantages:

    • Linking errors can occur if modules are not referenced correctly.

    • Larger programs can take time to link and build.

  • 3.43.4 Device Drivers

    • Advantages:

    • Allows hardware to communicate efficiently with the operating system.

    • Ensures compatibility and functionality of new devices with existing systems.

    • Disadvantages:

    • Outdated or incorrect drivers can lead to hardware malfunction.

    • Drivers need to be updated regularly for new features or security.

  • 3.53.5 Operating Systems

    • Advantages:

    • Manages hardware and software resources efficiently.

    • Allows multitasking, security management, and user interaction through a graphical interface.

    • Disadvantages:

    • Operating systems require regular updates to fix bugs and security vulnerabilities.

    • Compatibility issues may arise with certain applications or hardware.

  • 3.63.6 Utilities

    • Advantages:

    • Improves system performance through optimization.

    • Enhances system security by providing antivirus and malware protection.

    • Disadvantages:

    • Utility software can consume system resources, potentially slowing down operations.

    • Some utilities may require frequent updates or paid versions for full functionality.

4. High-Level Language Translation

  • High-level languages (like Python, Java, C++) are translated into machine language so that they can run on different computer systems.

  • This translation is done through:

    • Compilers: These convert high-level code into machine code for a specific processor architecture. The machine code is then executable on that system without needing further translation.

    • Interpreters: For languages that use interpreters, the source code is read and executed line by line, allowing it to run across different systems without needing compilation for each one.

  • By translating high-level languages, system software ensures that different types of programs can run on various hardware architectures, making it possible to develop applications across different computing environments.

5. High Level Language vs Low Level Language

  • High Level Language examples: FORTRAN,C,PASCALFORTRAN, C, PASCAL

  • Low Level Language examples: AssemblyLanguage,MachineLanguageAssembly Language, Machine Language

  • Path: High Level Language → (via compilers/interpreters) → Machine Language → Hardware

  • Summary: High-level languages are designed for portability across architectures; low-level languages map more directly to hardware for efficiency.