Programming Interface of Operating Systems
Code | Completion | Credits | Range |
---|---|---|---|
Y36API | KZ | 4 | 2+2s |
- The course cannot be taken simultaneously with:
- Programming Interface of Operating Systems (A7B36API)
- The course is a substitute for:
- Programming Interface of Operating Systems (A7B36API)
- Lecturer:
- Radim Ballner (gar.), Karel Šimeček, Tomáš Zahradnický
- Tutor:
- Tomáš Siegl, Karel Šimeček, Tomáš Zahradnický
- Supervisor:
- Department of Computer Science and Engineering
- Synopsis:
-
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.
- Requirements:
- Syllabus of lectures:
-
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.
- Syllabus of tutorials:
-
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.
- Study Objective:
- Study materials:
- Note:
- Further information:
- No time-table has been prepared for this course
- The course is a part of the following study plans:
-
- Softwarové inženýrství (compulsory elective course)