├── LIBRARIES.md ├── LICENSE ├── README.md └── slides ├── 00-introduction.pdf ├── 01-system_calls.pdf ├── 02-files.pdf ├── 03-processes.pdf ├── 04-concurrency.pdf ├── 05-memory_management.pdf ├── 06-network_programming.pdf ├── 07-performance.pdf └── 08-container.pdf /LIBRARIES.md: -------------------------------------------------------------------------------- 1 | # Libraries 2 | 3 | This is a list of allowed libraries for the languages that we allow in the course. If you think that an additional library should be included in here, please ask your instructors. 4 | 5 | Generally, you're allowed to use any library that is installed on the Docker image that runs the tests. Below are libraries that you might add additionally to them. 6 | 7 | ## C++ 8 | 9 | - [libfmt](https://github.com/fmtlib/fmt) 10 | 11 | ## C 12 | 13 | ## Rust 14 | 15 | - Generally, all libraries included in the task templates 16 | - [nix](https://crates.io/crates/nix) 17 | - [libc](https://crates.io/crates/libc) 18 | - [clap](https://crates.io/crates/clap) for argument parsing 19 | - [parking_lot](https://crates.io/crates/parking_lot) 20 | - [tempfile](https://crates.io/crates/tempfile) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 ls1-sys-prog-course-WiSe21-22 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Practical course: Advanced Systems Programming in C/Rust 2 | 3 | - [Slack Workspace](https://ls1-courses-tum.slack.com) 4 | - [Youtube playlist](https://www.youtube.com/playlist?list=PLfKm1-FQibbAdPAHgK5Pv8LNRr0o4vou7) 5 | - [Bugtracker](https://github.com/ls1-sys-prog-course/docs/issues) 6 | - [Docker image](https://github.com/orgs/ls1-courses/packages/container/package/ls1-runner) 7 | 8 | **All deadlines are at 16:00.** 9 | 10 | ### 0. Overview and introduction 11 | 12 | - [Slides](slides/00-introduction.pdf) 13 | - Lecture recording: Incoming... 14 | - Task: [Implement sort(1)](https://github.com/ls1-sys-prog-course/task0-sort) 15 | - Organizer: [Redha](https://github.com/rgouicem) 16 | - Deadline: 12.05.2022 17 | - Points: - 18 | 19 | ### 1. Kernel and system calls 20 | 21 | - [Slides](slides/01-system_calls.pdf) 22 | - [Lecture recording](https://youtu.be/qO33G1od3Xo) 23 | - Task: [Manual syscalls and tracing](https://github.com/ls1-sys-prog-course/task1-syscalls) 24 | - Organizer: [Atsushi](https://github.com/AtsushiKoshiba) 25 | - Published on: 02.05.2022 26 | - Deadline: 23.05.2022 27 | - Points: 30 28 | 29 | ### 2. File I/O 30 | 31 | - [Slides](slides/02-files.pdf) 32 | - [Lecture recording](https://youtu.be/wDPH8DYZwCg) 33 | - Task: [Fuse filesystem](https://github.com/ls1-sys-prog-course/task2-fileio) 34 | - Organizer: [Peter](https://github.com/pogobanane) 35 | - Published on: 09.05.2022 36 | - Deadline: 02.06.2022 37 | - Points: 30 38 | 39 | ### 3. Processes 40 | 41 | - [Slides](slides/03-processes.pdf) 42 | - [Lecture recording](https://www.youtube.com/watch?v=qNzgterdPng) 43 | - Task: [Shell](https://github.com/ls1-sys-prog-course/task3-processes) 44 | - Organizer: [Sebastian](https://github.com/Sebastian-Reimers) 45 | - Published on: 16.05.2022 46 | - Deadline: 09.06.2022 47 | - Points: 30 48 | 49 | ### 4. Concurrency and synchronization (ipc) 50 | 51 | - [Slides](slides/04-concurrency.pdf) 52 | - [Lecture recording](https://youtu.be/Bj-1pFh8Bck) 53 | - Task: [Synchronization and Scalability](https://github.com/ls1-sys-prog-course/task4-concurrency) 54 | - Organizer: [Jin](https://github.com/mjntum) 55 | - Published on: 30.05.2022 56 | - Deadline: 23.06.2022 57 | - Points: 30 58 | 59 | ### 5. Memory management 60 | 61 | - [Slides](slides/05-memory_management.pdf) 62 | - [Lecture recording](https://youtu.be/1LxVzohqRx0) 63 | - Task: [Heap management implementation](https://github.com/ls1-sys-prog-course/task5-memory) 64 | - Organizer: [Sebastian](https://github.com/Sebastian-Reimers) 65 | - Published on: 06.06.2022 66 | - Deadline: 30.06.2022 67 | - Points: 40 68 | 69 | ### 6. Sockets 70 | 71 | - [Slides](slides/06-network_programming.pdf) 72 | - [Lecture recording](https://youtu.be/fDRaXnhjoDE) 73 | - Task: [Sockets](https://github.com/ls1-sys-prog-course/task6-sockets) 74 | - Organizer: [Simon](https://github.com/ackxolotl) 75 | - Published on: 20.06.2022 76 | - Deadline: 14.07.2022 77 | - Points: 40 78 | 79 | ### 7. Performance 80 | 81 | - [Slides](slides/07-performance.pdf) 82 | - [Lecture recording](https://youtu.be/o1SkOoCyHDI) 83 | - Task: [Performance](https://github.com/ls1-sys-prog-course/task7-performance) 84 | - Organizer: [Atsushi](https://github.com/AtsushiKoshiba) 85 | - Published on: 04.07.2022 86 | - Deadline: 28.07.2022 87 | - Points: 40 88 | 89 | ## Upcoming 90 | ### 8. Container virtualization 91 | 92 | - [Slides](slides/08-container.pdf) 93 | - [Lecture recording](https://youtu.be/GMs3kLteZvk) 94 | - Task: [Container](https://github.com/ls1-sys-prog-course/task8-container) 95 | - [Task Explaination](https://www.youtube.com/watch?v=INyb4Rj073U) 96 | - Organizer: [Jiyang](https://github.com/jedichen121) 97 | - Published on: 18.07.2022 98 | - Deadline: TBD 99 | - Points: 60 100 | 101 | ## Grades 102 | 103 | Grades are computed as follow: 104 | 105 | |From| To|Grade| 106 | |----|---|-----| 107 | |0 |120| 5.0 | 108 | |121 |135| 4.7 | 109 | |136 |150| 4.3 | 110 | |151 |165| 4.0 | 111 | |166 |180| 3.7 | 112 | |181 |195| 3.3 | 113 | |196 |210| 3.0 | 114 | |211 |225| 2.7 | 115 | |226 |240| 2.3 | 116 | |241 |255| 2.0 | 117 | |256 |270| 1.7 | 118 | |271 |285| 1.3 | 119 | |286 |300| 1.0 | 120 | -------------------------------------------------------------------------------- /slides/00-introduction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ls1-sys-prog-course-archive-SoSe22/docs/3c623947bef81e88d37de5feea8de83b06fba11f/slides/00-introduction.pdf -------------------------------------------------------------------------------- /slides/01-system_calls.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ls1-sys-prog-course-archive-SoSe22/docs/3c623947bef81e88d37de5feea8de83b06fba11f/slides/01-system_calls.pdf -------------------------------------------------------------------------------- /slides/02-files.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ls1-sys-prog-course-archive-SoSe22/docs/3c623947bef81e88d37de5feea8de83b06fba11f/slides/02-files.pdf -------------------------------------------------------------------------------- /slides/03-processes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ls1-sys-prog-course-archive-SoSe22/docs/3c623947bef81e88d37de5feea8de83b06fba11f/slides/03-processes.pdf -------------------------------------------------------------------------------- /slides/04-concurrency.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ls1-sys-prog-course-archive-SoSe22/docs/3c623947bef81e88d37de5feea8de83b06fba11f/slides/04-concurrency.pdf -------------------------------------------------------------------------------- /slides/05-memory_management.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ls1-sys-prog-course-archive-SoSe22/docs/3c623947bef81e88d37de5feea8de83b06fba11f/slides/05-memory_management.pdf -------------------------------------------------------------------------------- /slides/06-network_programming.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ls1-sys-prog-course-archive-SoSe22/docs/3c623947bef81e88d37de5feea8de83b06fba11f/slides/06-network_programming.pdf -------------------------------------------------------------------------------- /slides/07-performance.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ls1-sys-prog-course-archive-SoSe22/docs/3c623947bef81e88d37de5feea8de83b06fba11f/slides/07-performance.pdf -------------------------------------------------------------------------------- /slides/08-container.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ls1-sys-prog-course-archive-SoSe22/docs/3c623947bef81e88d37de5feea8de83b06fba11f/slides/08-container.pdf --------------------------------------------------------------------------------