Programme type: Undefined
Study form: Fulltime
Introduction into system programming for operating systems (OSs) Linux and MS Windows. Students learn about basic application programming interfaces (APIs) to OS kernels (file descriptors, semaphors, sockets, proceses, threads, access rights), about basic graphical APIs (windows and window management, X11, event driven programming), about basic OS libraries, and about principles of safe programming.
Linux, Win32, system programming, network programming, GUI, API
1. Introduction to the interplay between OS and CPU and between OS and high-level programming languages.
2. GNU libc in Linux and MS C library: Overview.
3. Errors in system programming (buffer overflows, exploits).
4. Safe system programming.
5. Network programming and remote exploits.
6. WIN32 API - files, synchronization.
7. WIN32 API - messages, windows, basic elements of GUI.
8. WIN32 API GDI - fonts, bitmaps.
9. LINUX - X server.
10. LINUX - QT library.
11. LINUX - GNOME/GTK.
12. Cross platform system programming.
13. Delphi/Kylix, Object Pascal, structure of VCL, comparison with C#.
14. Recap ? API survey, exploits and languages.
1. Introduction to the environment (gcc, delphi, C#). Discussion on semestral projects.
2. Assignment of semestral projects. Console applications Win vs Linux.
3. Specification of the 1st lab project: exploiting buffer overflow in a special daemon to get access to a machine.
4. Work on the 1st lab project.
5. Work on the 1st lab project.
6. Submission of the results of the 1st lab project and release of the source code.
7. Presentation of the results.
8. Demonstration of various environments for MS Windows and Linux with examples.
9. Specification of the 2nd lab project: writing a simple application for MS Windows and Linux.
10. Work on the 2nd lab project.
11. Work on the 2nd lab project.
12. Work on the 2nd lab project and submission of results.
13. Submission and presentation of the results of the semestral project.
14. Submission and presentation of the results of the semestral project.