Week | Content | |
---|---|---|
W01 | Contract Description, Introduction to Unix and Systems Programming (Chapter 1 - Unix System Overview (Stevens & Rago) Course Objectives, Course Contract, Literature, Anatomy of Unix OS, Key Elements for the Kernel, System Calls, Shell Programming, Unix History, Course Content |
Contract 01 |
Basic Unix System Commands
UNIX commands: passwd, man, whatis, apropos, info, help, users, who, whoami, finger, w, File system structure, Navigation in file system structure (ls, cd, pwd, pathnames, pushd, popd), disk space (du, df), compression-decompression (zip, gzip, bzip2, unzip, gunzip, bunzip2, tar), links (symbolic, hard - ln). |
02 | |
W02 | Basic Unix System Commands Directory/File handling (mkdir, rmdir, cp, mv, rm), File Display & Conversion (file, head, tail, cat, more, wc, sort, uniq, iconv), In/Out Streams (stdin, stdout, stderr), File Redirection, Piping |
03 |
Advanced Unix Commands and System Utilities UNIX commands (echo, touch), Ownership and Access Rights(chmod, chgrp, chown, umask, suid, sgid, sticky bit), Regular Expressions (grep, egrep) |
04 | |
W03 | Advanced Unix Commands and System Utilities Process Control (jobs, ps, fg, bg, kill, top), Find File and Program (which, whereis, find, exec, xargs), UNIX Commands (alias, cut, tr, tee, mail, comm, diff, crontab). |
05 |
Unix System Utilities: Sed Stream editor used to perform basic text transformations on an input stream (a file or input from a pipeline). Supplementary Manual: + Sed Introduction Manual |
06
sed.pdf |
|
W04 | Unix System Utilities: Awk AWK is an interpreted programming language designed for finding and matching patterns as well as for performing actions on input files or streams. Supplementary Manual: + Awk Introduction Manual |
07
awk.pdf |
W05 | Bash Shell (Bash Guide - Chapters 1,2,3 Garrels) Introduction to Bash Shell, Environment and Variables (Environment and Variables, Control Files Login / Logout, Shell Variables, Shell Commands) Shell Programming (Program Execution, User Input, Command-line Parameters) Supplementary Manuals: + Bash Guide for Beginners, Machtelt Garrels + Advanced Bash Shell Scripting Guide, Mendel Cooper |
08
beg-bash.pdf adv-bash.pdf |
Bash Programming (Bash Guide - Chapters 7,9,10 Garrels) Control Conditions (If, Case), Logical Operators (&&, II, !), Relational Operators (-gt,-lt,..), Numerical Expressions and Arrays, Iterative and Nested Loops, File Testing, Functions, Arrays and Examples |
09 | |
W06 | Advanced Bash Shell Programming (Bash Guide - Chapter 12 and selected topics from Advanced Bash Programming) Debugging with set, Signal Handling (signals & trap), Examples Solution |
10 |
Low-Level I/O in C - Chapter 3 (Stevens & Rago) Error management with For revision, please study Chapter 5 - Standard I/O (Stevens & Rago) |
11 | |
W07 | Files & Directories - Chapter 4 Stevens & Rago Lecture 9 completion, File metadata (sys/stat.h): Structure and Access, File Management with System Calls [rename(), chmod(), link(), unlink(), symlink(), readlink()], Directory Management (mkdir(), rmdir()), Directory Access with dirent.h library [opendir(), readdir() και closedir()], Usage Examples (mystat, filetype, lsdirR) |
12 |
Process Environment & Control - Chapters 7,8 Stevens & Rago Processes: Introductory Concepts, Process Identity (getpid(), getppid(), getuid(), getgid()), Process in Memory (Structure & Representation), Process creation (fork()), Environment Variables, Orphan Processes, Processes and Files, Process Waiting (wait(), waitpid()), Zombie Processes |
13 | |
W08 | Processes and Signals - Chapters 9,10 Stevens & Rago
Lecture 11 completion, Function family exec(), system call system(), Signals in C, system call signal(), Signals and Processes, system call alarm(), Inter-process Signals (kill()). |
14 |
MIDTERM This is a closed book exam: no books, notebooks, notes, etc. allowed |
||
W09 | Inter-Process Communication: i)Pipes και ii)Named Pipes (FIFO) - Chapter 15 Stevens & Rago Lecture 12 completion, System Calls: dup, dup2, Communicatoin between Processes - Introduction, Problem and Solution Overview, IPC1: Pipes: Child=>Parent, child<=>Parent communication, Pipe Shell Implementaton, IPC2: FIFO (Named Pipes), FIFO and Shell, FIFO in C, Example Reader-Writer with FIFO. |
15 |
XSI IPC (System V) : iii) Message Queues, iv) Shared Memory and v) Semaphores - Chapter 15 Stevens & Rago Definitions (Identifiers and Keys, IPC Resource Management, IPC Management with shell commands. Message Queues (M.Q.): M.Q. Structure, Creation, Message Send/receive, Example, M.Q. Control. Shared Memory: Structure, Creation, Attach / Detach, Control, Example of 2 processes communicating through shared memory. Semaphores: Structure, Creation, Handling, control, Semaphore Server Example. |
16 | |
W10 | XSI IPC & Socket Programming - Chapter 16 Socket Programming, Socket Definition, Ports, Port Number Assignment, Socket Families, Socket Types, TCP Client/Server Communication, Client/Server Basic Principles. |
17 |
Socket Programming - Chapter 17 Stevens & Rago Byte sequence conversion, Socket Descriptors, Socket Creation (socket()), Socket Address Structure, Συσχέτιση Διεύθυνσης με Υποδοχή (bind()), Listening of Incoming Connections (listen()), Acceptance of Incoming Connection Requests (accept()), Connection Request (connect()), Data transfer (read(), write(), send(), recv()), Connection Shutdown (close(), shutdown()), IP Address handling (inet_addr(), inet_ntoa()), Additional Useful Functions (getpeername(), gethostname(), gethostbyname(), gethostbyaddr()), getsockname(), setsockopt(), bzero(), bcopy()), Client-Server Example. Supplementary Manual: + Beej's Guide to Network Programming Using Internet Sockets, Brian Hall |
18
sockets.pdf |
|
W11 | Multithreaded Programming - Chapter 11 Stevens & Rago Introduction and Thread Representation, Thread Advantages, Thread Types, Multithreaded Models, |
19 |
Multithreaded Programming - Chapters 11-12 Stevens & Rago Data Inconsistency, Thread Synchronization with Binary Semaphores, Deadlock Avoidance and Reader/Writer Locks, Linux Threading: Native POSIX Thread Library, Related Topics: Thread Pools, Thread-Safe Libraries, sysconf() function. |
20 | |
W12 | Student Presentations Note: Both source code and PPT presentation must be submitted to Moodle until the evening before the presentation. |
GO |
Student Presentations Note: Both source code and PPT presentation must be submitted to Moodle until the evening before the presentation. |
GO | |
W13 | Systems Software Security User Threats: Malware (Trojan Horses, Worms Computer Viruses, Spyware, Adware, Crimeware (e,g., Identity Theft, keystroke loggers, counterfeit websites, etc.), Rootkits System Threats: Snooping/Sniffing, Spoofing, Denial of Service |
21 |
Systems Software Security Code Threats: Buffer Overflow/Overrun, Stack Smashing, Heap Smashing, Code Injection and System, Other threats (supplementary article): Arc Injection (Return-into-libc exploits), Pointer Subterfuge Supplementary Article: Beyond Stack Smashing- Recent Advances in Exploiting Buffer Overruns |
22
22 |
|
FINAL EXAM T.B.A. This is a closed book exam: no books, notebooks, notes, etc. allowed. However, the use of an A4 sheet of notes is permitted. | - |