Operating System/System Programming(Arif Butt)

Lec1) Introduction to System Programming

Tony Lim 2021. 6. 8. 12:06
728x90

Application progamming = aims to produce software which provides services to the user, e.g., word processors, browsers, multi-media applications 

System programming = aims to produce software which provides services to computer hardware , disk defragmenter. The next step is writing kernel code to manage main memory , disk space management, cpu scheduling and management of I/O devices through device drivers.

numbers indicate order of control

 

lists of what we will be learning

Module 1 = Preparing your tool box

  • GNU gcc and gdb
  • NASM
  • UNIX readelf , objdump , od , nm , ldd and ldconfig
  • Creating your own Static and Dynamic libraries
  • Unix make, atocnof and cmake utilities
  • Unix gprof utility
  • Exit handlers, electric fence and valgrind libraries
  • Git

Module 2 = File , Information and Time Management

  • Unix universal I/O model and File System Architecutre
  • Writing your own ls ,pwd ,find , grep ,and more utilities
  • Digging out information from system files
  • Writing uname and who utilities
  • Changing Terminal attributes
  • Modifying real time using Linux OS API

Module 3 = Process Management and Scheduling

  • Process identifications
  • Process trees, chains, and fans
  • Zombie and orphan processes
  • Process groups , sessions and controlling terminals
  • UNIX daemons
  • System-VR3 and System-VR4 Scheduler
  • Linux O(1) and CFS Scheduler
  • Microsoft and Solaris Scheduler
  • Changing process scheduling parameters using Linux OS API

Module 4 = UNIX IPC Tools

  • Signals
  • PIPES/FIFOS
  • Message Queues
  • Shared Memory
  • Memory Mappings

Module 5 = Thread Management and Synchronization

  • POSIX Thread API
  • Synchronization among threads using mutex and condition variables
  • Synchronization among related and unrelated processes using semaphores

Module 6 = Network Programming

  • UNIX socket API
  • Writing concurrent servers using
  1. Multi process Model
  2. Multi threaded Model
  3. Non Blocking I/O using select() System call
  • Managing your servers using xinet and system daemons

Module 7 = Network Security

  • Buffer overflow vulnerability
  • Exploiting i tusing Metasploit framework

 

 

728x90