CS 374 - Operating Systems
Course Info
Syllabus
Schedule
OS1 Setup Guide
Style Guide
Modules
Operating Systems Fundamentals
Introduction
Operating Systems Overview
A Brief History of Unix
Standards and Specifications
Linux Distributions
The C Programming Language
Processes
Virtual Memory
System Call Interface
Process Hierarchy
Identity
File System Access
Inter-process Communication
File Systems
Mounting and Unmounting
Structure
Permissions
Metadata
The Filesystem Hierarchy Standard
Additional Concepts
Terminal Interface
Terminal Operating Modes
Control Codes
Utilities
The Interactive Shell
Simple Commands
Quoting
Expansion
Variable Assignment and Redirection
Command Execution
Pipelines
Background Commands
Software Development in Vim
The Shell Command Language
The Non-interactive Shell
Shell Parameters
Positional Parameters
Special Parameters
Control Flow
Reserved Words and Operators
Exit Status
Shell Grammar
Grouping Constructs
Loops
Conditional Constructs
Function Definition
Builtins
Alias Substitution
Options Processing
File Access and Creation
Parameters and Options
Signal Handling
Executable Shell Scripts
Assignments
Introduction to C Programming
Assignments
Overview
Type System
Integer Types
Special Integer Types
Floating Types
Special Types
Derived Types
Object Model
Identifiers
Declaration Syntax
Declaration Specifiers
Declarators
Practical Declarations
Functions
Objects
User-Defined Types
Expressions
Abstract Machine Model
Statements and Structure
Preprocessor Language
Standard Library
Data Access and Storage
File System Concepts
File System History
File System Structure
The C Standard Input/Output Library
Motivation
File Access and Operations
Input/Output Methods
Character i/o
Direct i/o
String i/o
Formatted i/o
Variadic Functions
Formatted Output
Formatted Input
POSIX I/O
File Control Operations
File I/O
Standard I/O Extensions
Memory Management
Standard C Allocations
POSIX Allocations
Assignments
Processes
What is a Process?
Processes and the File System
Process Identification
The init Process
Process Lifecycle
Signals
Execution Times
Multiprogramming
Inter-Process Communication
Signals
Sending Signals
Receiving Signals
Asynchronous Signal Safety
File System
Regular Files
Special Files
The Role of Drivers
FIFOs
UNIX Domain Sockets
Understanding File Descriptors
Memory Mappings
Networking
Stream Sockets
TCP Client Example
TCP Server Example
Assignments
BigShell
Specification
BigShell Command Language
GradeScope
Starter Code
GitHub/os1 Setup
Final Report
External Links
Oregon State University
Canvas
Ed Discussions
Microsoft Teams
Appendix
Glossary
Glossary of C Language Terminology
Glossary of Operating Systems Terminology
Glossary of Computer Science Terminology
Index
CS 374 - Operating Systems
Index
Index
A
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
K
|
L
|
M
|
N
|
O
|
P
|
R
|
S
|
T
|
U
|
V
|
W
A
absolute pathname
address translation
aliasing
C
current working directory
cwd
D
derived type
array
function
pointer
structure
type define
union
E
effective group-id
effective type
effective user-id
EGID
see effective group-id
EUID
see effective user-id
F
file descriptor
file mode creation mask
forward declaration
function prototype
G
GID
see group-id
group-id
H
home directory
I
inline function
integer type
data model
padding bit
rank
sign bit
value bit
inter-process communication
pipe
signal
unix socket
IPC
see inter-process communication
K
kernel
,
[1]
L
lazy allocation
lvalue
M
marshalling
N
nullary
O
object model
address
alignment
representation
size
storage duration
type
value
P
pipe
inter-process communication
POSIX
precision
preprocessing translation unit
procedure
process
,
[1]
creation
hierarchy
identity
init
termination
program
,
[1]
R
relative pathname
root directory
root user
rvalue
S
serialization
set-group-identity
set-user-identity
setgid
setuid
sgid
shadowing
shared memory
side effect
signal
inter-process communication
standard error
standard input
standard output
static typing
strict typing
suid
SuS
swapping
system call
T
translation unit
type system
derived types
integer type
U
UID
see user-id
umask
unix socket
inter-process communication
user-id
V
virtual memory
W
width