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,