Programming Interface of Operating Systems
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
A7B36API | KZ | 5 | 2+2s | Czech |
- The course cannot be taken simultaneously with:
- Programming Interface of Operating Systems (Y36API)
- The course is a substitute for:
- Programming Interface of Operating Systems (Y36API)
- Lecturer:
- Radim Ballner (gar.), Tomáš Zahradnický
- Tutor:
- Radim Ballner (gar.), 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: