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
- Multi process Model
- Multi threaded Model
- 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
'Operating System > System Programming(Arif Butt)' 카테고리의 다른 글
Lec 6, 7) Versioning Systems git-1,2 (0) | 2021.06.15 |
---|---|
Lec05) GNU autotools and cmake (0) | 2021.06.13 |
Lec04) UNIX make utility (0) | 2021.06.12 |
Lec03) Working of Linkers: Creating your own Libraries (0) | 2021.06.11 |
Lec02) C Compilation: A System Programmer Perspective (0) | 2021.06.09 |