360 Course Plan
CPTS 360 COURSE PLAN Spring, 2023
COURSE TITLE : CPTS 360 Systems Programming in Unix/Linux
TEXT 1:(REQUIRED)
Systems Programming in Unix/Linux,
K.C. Wang, Springer International AG, 2018
TEXT 2:(Highly Recommended)
Design and Implementation of the MTX Operating System,
K.C. Wang, Springer International AG, 2015
CLASS NOTES : https://www.eecs.wsu.edu/~cs360/
INSTRUCTOR : K. C. Wang, Professor of EECS, Sloan 321
335-3769, kwang@eecs.wsu.edu
Office Hours: T,Th: 9:00-10:00 AM via ZOOM
TAs :
Logan Kloft (Wednesday 1:45-3:45 PM via ZOOM)
logan.kloft@wsu.edu
Zoom link: https://wsu.zoom.us/j/9503813536
Meeting ID: 950 381 3536
Taylor West (Monday 3:30-5:30 PM via ZOOM)
taylor.west@wsu.edu
Zoom link: https://wsu.zoom.us/j/6147467952?pwd=YjJPbDMzMXA1OFYwbjBQS2RzNllyZz09
Meeting ID: 614 746 7952
Passcode: 316231
Brandon Cook (Tuesday 12-2:00 PM via Zoom)
brandon.cook@wsu.edu
Zoom link: https://wsu.zoom.us/j/3037527480?pwd=cUlrYnp5T1IrRlh5UHd3U252MkxrQT09
Meeting ID: 303 752 7480
Passcode: 2023
Gabriel Righi (Friday 12:30-2:30 PM via Zoom)
gabriel.righi@wsu.edu
Zoom Link: https://wsu.zoom.us/j/9498380968?pwd=UkxBaHhuNU45a2U0Rk5oWUN0dnN6UT09
Meeting ID: 949 838 0968
Passcode: 252054
PREREQUISITES :
Basic knowledge and working experience in Unix commands.
Ability to program in C or C++.
COURSE CONTENTS:
Introduction to Unix/Linux and MTX Operating Systems:
Files, directories, special files, logical organization of
Unix file system; user account, login process and command
execution.
Program development
Source files; compiler, assembler and object files;
linker, library and executable files; loader and execution
images. Symbolic debugger and run-time support.
Execution image of C programs
Code, data and stack segments; function calling convention,
stack frames and parameter passing; long jumps.
File I/O
System calls and low-level file I/O; open, close, read, write,
lseek, file descriptors and file sharing. Execution of User
mode and Kernel mode images, implementation and implications
of system calls.
File Control
Permissions and access control, fcntl, chown, chmod, hard
and soft links, file status and statistics.
I/O redirection, pipes, filters and applications.
Standard I/O Library
Streams and high-level file I/O; user space buffering,
relationship with low-level I/O, char and line mode I/O.
Formatted I/O.
File system implementation
Inodes and file representation; mkfs and physical file
system layout; traversal of the file system tree; booting
system images.
Processes
Concept and implementation of processes, process execution
environment, user mode and kernel mode images, process
states transitions. Processes in the Unix system; init,
login and user processes.
Process Control
fork, vfork, wait, exit, kill, exec operations. traps and
signal handling.
Process Synchronization and Communication
Signals, pipes, semaphores, messages and shared memory
segments. Sockets.
Concurrent Programming
Threads and parallel programming
Networking
Introduction to Internet; host, address resolution,
routing; protocols, client and server; ftp, rlogin, nfs,
and nis, Socket Programming.
Project: To be announced later
Misc Topics: sh and Perl programming, Linux system administration.
COMPUTER SYSTEMS:
YOU MUST have a PC/laptop running Linux AND you can compile and run C programs.
Other Linux systems in EECS for general use.
LAB SESSIONS
NO formal Lab sessions.
Lab assignments and DUE date will be given in class AND posted online HERE.
Academic Honesty Rule: Absolutely NO copying allowed!!
Exam#1: Thursday, February 23, 2023; in class
Exam#2: Thursday, April 20, 2023; in class
---------------------------------------------------------------------
GRADING:
Programming Assignments %20 (DUE and DEMO to TA on Th)
Quizz %10 (one per Lab assignment; in class OR demo)
Exams %40 (2-23, 4/20, 2023, in class).
Project %30 (DUE and DEMO in close week)
-------------- Letter grades and score ranges -----------------------
A: 90-100 %
B: 70-89 %
C: 50-69 %
D: 30-49 %
F: 0-29 %
---------------------------------------------------------------------
Late Policy:
Late work is not allowed. Please reach out to the TA's in advance
if you are sick or have an extraneous circumstance.