Operating Systems

  1. Components of Operating Systems
    1. Kernel
      1. Functions and Role
        1. Acts as a bridge between applications and hardware
          1. Manages system resources
            1. Facilitates process management
              1. Handles memory management
                1. Manages device drivers
                  1. Provides security and protection level
                    1. Monitors system performance
                    2. Types of Kernels
                      1. Monolithic Kernel
                        1. Includes all OS services in a single process
                          1. Provides high-level hardware abstractions
                            1. Fast performance due to reduced communication overhead
                              1. Examples include Linux and traditional Unix
                              2. Microkernel
                                1. Minimizes kernel size for basic functionalities
                                  1. Runs most services in user space
                                    1. Emphasizes modularity and ease of maintenance
                                      1. Involves higher communication overhead for context switching
                                        1. Examples include MINIX and QNX
                                        2. Hybrid Kernel
                                          1. Combines aspects of both monolithic and microkernel architectures
                                            1. Runs some services in kernel space for performance
                                              1. Retains modularity for other components
                                                1. Examples include modern Windows NT and macOS
                                            2. Shell
                                              1. Command-Line Interface (CLI)
                                                1. Allows text-based commands for system tasks
                                                  1. Offers scripting capabilities for automation
                                                    1. Examples include Bash, Windows Command Prompt
                                                      1. Essential for managing systems without a GUI
                                                      2. Graphical User Interface (GUI)
                                                        1. Provides visual elements for interaction
                                                          1. Utilizes windows, icons, menus, and pointers
                                                            1. Enhances usability for non-technical users
                                                              1. Examples include Windows Explorer, GNOME, KDE
                                                            2. File System
                                                              1. File Management and Storage
                                                                1. Organizes data into files and directories
                                                                  1. Manages storage space allocation
                                                                    1. Provides operations like read, write, delete
                                                                    2. Types of File Systems
                                                                      1. NTFS
                                                                        1. New Technology File System used in Windows
                                                                          1. Supports large volumes and file compression
                                                                            1. Features security with file-level permissions
                                                                            2. HFS+ (Hierarchical File System Plus)
                                                                              1. Used in macOS for older versions
                                                                                1. Provides journaling for reliability
                                                                                  1. Features efficient storage management
                                                                                  2. ext4 (Fourth Extended Filesystem)
                                                                                    1. Default for many Linux distributions
                                                                                      1. Supports large files and journaling
                                                                                        1. Offers features like extents and delayed allocation
                                                                                      2. File System Access
                                                                                        1. Basic operations like create, delete, rename
                                                                                          1. Advanced controls for file permissions and security
                                                                                            1. Support for accessing network file systems
                                                                                          2. Process Management
                                                                                            1. Scheduling Algorithms
                                                                                              1. Determines the order of task execution
                                                                                                1. Types include Round Robin, Priority Scheduling, Multi-level Queue
                                                                                                2. Interprocess Communication (IPC)
                                                                                                  1. Mechanisms like pipes, message queues, and shared memory
                                                                                                    1. Facilitates data exchange between processes
                                                                                                    2. Context Switching
                                                                                                      1. Saves and loads process states for multitasking
                                                                                                        1. Essential for responsive user experience
                                                                                                      2. Memory Management
                                                                                                        1. Memory Allocation
                                                                                                          1. Dynamic vs. Static allocation
                                                                                                            1. Heap and Stack management
                                                                                                            2. Virtual Memory
                                                                                                              1. Extends physical memory to use disk space
                                                                                                                1. Implements paging and swapping for efficiency
                                                                                                                2. Segmentation
                                                                                                                  1. Divides memory into varying-sized segments
                                                                                                                    1. Combines with paging for flexibility and protection
                                                                                                                  2. Device Management
                                                                                                                    1. Device Drivers
                                                                                                                      1. Abstractions for hardware components
                                                                                                                        1. Standardizes communication between system and hardware
                                                                                                                        2. Input/Output Management
                                                                                                                          1. Controls data exchange with peripherals
                                                                                                                            1. Examples include keyboard, mouse, printers
                                                                                                                          2. Security and Protection
                                                                                                                            1. User Authentication
                                                                                                                              1. Ensures access control through credentials
                                                                                                                                1. Implements methods like passwords, biometric checks
                                                                                                                                2. Access Control
                                                                                                                                  1. Defines user permissions for resources
                                                                                                                                    1. Implement rules for data access and modification
                                                                                                                                    2. Data Encryption
                                                                                                                                      1. Secures data privacy through encryption protocols
                                                                                                                                        1. Protects data-at-rest and data-in-transit