Skip to content

Latest commit

 

History

History
92 lines (73 loc) · 4.45 KB

UNIX_Programming.md

File metadata and controls

92 lines (73 loc) · 4.45 KB

Unix Programming

Tux

Introduction

This course is an introduction to Unix programming.

Topics

  • History, the origin and the current state of Unix
  • Introduction to Unix shell
  • Intro to kernel, virtual memory, process image
  • File system, I/O, I/O in C
  • Virtual memory, process image and memory management in C
  • Shell, command arguments, program arguments in C
  • Kernel and system calls in C
  • Compilation, debugging, make
  • Threads and multi-threaded programming
  • Processes, signals, inter-process communication, networking
  • Shell scripting

Assessment

Written exam 50% 5 Asssignments

Lesson Notes

  1. Lesson 01 (History of Unix)
  2. Lesson 02 (Unix Shell & Dir-Structure)
  3. Lesson 03 (Kernelspace)
  4. Lesson 04 (I/O in C)
  5. Lesson 05 (Memory Management in C)
  6. Lesson 06 (Pointers)
  7. Lesson 08 (Compiling)
  8. Lesson 09 (Headers and Dependencies)
  9. Lesson 10 (Execve)
  10. Lesson 11 (Threads)
  11. Lesson 12 (Threads cont)
  12. Lesson 13 (Networking)
  13. Lesson 14 (Networking cont)
  14. Lesson 16 (Threadsafety)
  15. Lesson 18 (IPC)
  16. Lesson 19 (Bash)
  17. Lesson 20 (Bash cont)

Lecture Material

  1. Lecture 01 (History of Unix)
  2. Lecture 02 (Unix Shell & Dir-Structure)
  3. Lecture 03 (Kernelspace)
  4. Lecture 04 (I/O in C)
  5. Lecture 05 (Memory Management in C)
  6. Lecture 06 (Pointers)
  7. Lecture 07 (System Calls)
  8. Lecture 08 (Compiling)
  9. Lecture 09 (Headers and Dependencies)
  10. Lecture 10 (Execve)
  11. Lecture 11 (Threads)
  12. Lecture 12 (Threads cont)
  13. Lecture 13 (Networking)
  14. Lecture 14 (Networking cont)
  15. Lecture 15 (Sockets)
  16. Lecture 16 (Threadsafety)
  17. Lecture 17 (Threadsafety cont)
  18. Lecture 18 (IPC)
  19. Lecture 19 (Bash)
  20. Lecture 20 (Bash cont)
  21. Lecture 21 (Even more bash)

Practicals

  1. Lab 01 (WSL setup and Hello World)
  2. Lab 02 (Unix Shell)
  3. Lab 03 (Shell arguments and String manipulation)
  4. Lab 04 (Arguments and flags)

Assignments

Assignment README

This repository is the collection of graded assignments for the UNIX Programming module in Semester 4 of the BSc in Computing in UCD. It is a collection of C programs that are designed to teach the student about the UNIX operating system and the C programming language.

The assignments are as follows:

  1. Assignment 1 (Writing a clone of the "head Utility")
  2. Assignment 2 (Writing a clone of the bash shell)
  3. Assignment 3 (Writing Socket based quizz)
  4. Assignment 4 (Writing a transcript generator in bash)