Study form: Fulltime
Course language: Czech
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.
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
14. Submission and presentation of the results of the