Course code: CSCI 3310U
Topic area: Systems Programming
Course structure overview with various introduction sequences.
By the end of today’s lecture, students will be able to:
Understand what Systems Programming is.
Identify different types of System Calls.
Recognize the roles of Operating Systems.
Setup their working environment details.
Definition: Systems programming involves creating system calls to execute tasks and services offered by the operating systems.
Interaction layers:
Operating Systems
Hardware
System Calls
Applications
User
Two primary execution modes for programs:
Definition: Limited access to memory, hardware, and other resources to ensure safety during program execution.
Characteristics:
Errors or crashes in user mode do not affect the entire system; considered "safe" for system stability.
Mostly used for running user applications and processes.
Definition: Provides programs direct access to memory and hardware resources, allowing for more control and functionality.
Characteristics:
A crash in kernel mode has the potential to lead to a complete system failure.
Used for executing core system operations and managing underlying hardware resources.
Definition: A system call is a programmatic request for services or tasks from the operating system's kernel.
Commonly coded in languages such as C, C++, and Rust.
When programs in User Mode need resources, they call the operating system.
Process Control: Manage processes (examples: end a process, load a process, execute, abort).
File Manipulation: Interact with files (examples: create file, delete file, write to a file).
Device Management: Handle devices (example: safely remove a device).
Information Maintenance: Manage information retrieval (example: get current time or date).
Communication: Facilitate message exchange between different processes.
Definition: Software that manages computer hardware and oversees processes and memory allocations.
Examples of popular operating systems:
Mobile Operating Systems: Android, Apple iOS
Traditional Systems: Windows, Mac OS X, Linux
Run in Kernel mode (also called Supervisor/privileged mode).
Provides direct access to hardware and can execute any instructions.
Monolithic Operating System Structure: Traditional structure without modularity.
Layered Operating Systems: Groups components by functionality into layers for better modularity and manageability.
MicroKernel Structure: Minimizes the amount of services within the kernel; promotes scalability, extensibility, and portability.
Loadable Kernel Modules: Modern OS might integrate loadable kernel modules, allowing components to communicate via known interfaces and load as necessary.
Recap of today's objectives:
Understanding Systems Programming.
Exploring System Calls.
Reviewing Operating Systems.
Setting up environment details.