The Operating System

Operating System: Lets computers share peripherals and memory, communicate, and run more than one program.

Kernel: Performs critical system functions and interacts with the hardware.

Systems Utilities: Programs and libraries that provide various functions through systems calls to the kernel.

More on the Kernel

Main Kernel Tasks

  1. Resource Allocation: Share limited resources among competing processes.
  2. Process Management: Allow execution of applications and support them with features like hardware abstraction.
  3. Memory Management: Allow processes to safely access system’s memory.
  4. I/O Device Management: Give processes access to peripherals connected to the computer.
  5. Inter-Process Communication: Provides methods for synchronization and communication between processes (IPC).
  6. Scheduling: Gives every program a slice of time and rapidly switches from process-to-process to make it seem like they are being executed simultaneously.
  7. System Calls and Interrupt Handling:
  8. Security of Protection Management: Provides protection from faults (error control) and from malicious behaviors (security)

Kernel Subsystems

  1. Process Management
  2. Memory Management
  3. I/O System

System Calls

System Calls: Set of functions provided to other programs to interface with the kernel.

Note: Standards and programming languages
Over the years, standards have been developed to standardize some system calls across UNIX versions, like the ones set by the POSIX committee.

Note: The standard C library provides a portion of the system call interface for many versions of UNIX and Linux.

UNIX System Calls

Kernel API: Interface to the kernel.

Five Categories of System Calls:

  1. File Management
  2. Process Control
  3. Information Management
  4. Device Management
  5. Communication

UNIX Structural Layout

  1. User Space
  2. Kernel
  3. Devices