Course goals:
- Introduce system programming for Linux
- Develop understanding core linux technologies:
- process/threads execution and planning
- daemons
- network programming with sockets
- shared libraries
- IPC fundamentals
Prerequisites:
Lecture topics
- Introduction into linux architecture
- Glibc. System utils, binutils
- Advanced debugging techniques
- Shared libraries, symbols, dynamic linking. Process loading. ELF format
- Pthreads. Synchronization primitives. Process priorities
- Networking in Linux; TCP/IP sockets and services
- Shared memory
- Daemons
- Packading (RPM, DEB, package management)
Practical exercises
- Mastering with binutils
- Dynamic libraries
- Pthreads and synchronization
- TCP/IP
- Daemon development
- Application packaging and repo maintenance
Course language:
- RUS, ENG