OSW-2026b
Operating systems workshop 2026b
Registration Process
To register for the workshop, the following prerequisites must be fulfilled by the beginning of the spring semester:
- Successfully completed the Operating Systems course.
- Accumulated at least 36 credit points in Computer Science.
- Completed English proficiency requirements and Bibliographic Guidance.
Registration Steps
Step 1: Fulfill Registration Prerequisites
Complete all required prerequisite tasks before moving to the next step.Step 2: Schedule a 30-min "Meeting Expectations" Talk with Instructor
Contact the course instructor to arrange a time for the required orientation meeting.Step 3: Register for the Course
Complete the official registration process through the registration system.Step 4: Send Notification Email to the Instructor
Send a confirmation email to the course instructor after completing registration.Note: If you are currently enrolled in the Operating Systems course during the autumn semester, you must take the first exam (Moed Aleph) and meet all requirements before the spring semester begins.
Course Timeframes
Spring Semester
The course will consist of 7 Zoom meetings throughout the semester. The activities during the semester include:
- Learning the required material for project preparation.
- Completing 2 project-related assignments, each requiring approximately 8–16 hours of work.
- Delivering a 50-minute presentation related to the selected project requiring approximately 8 hours of work.
- Preparing a project specification and dividing the project into 7–8 implementation stages requiring approximately 24 hours of work
Summer Semester
The activities during the summer semester include:
- Participating in a 30-minute weekly synchronization meeting with other students via Google Meet.
- Progressing through the project stages according to the plan, with each stage taking approximately 16–20 hours of work.
Course Objectives
- Significant Contribution to Open Source Projects
- Contribute to one of the open-source projects listed in Tab1.
- Aim for:
- 112-192 work hours (assignments, prsentatoin, project specifcation and implemntation)
-
Presentation Skills
- Agile Workflow & Collaboration
- Break work into small, manageable tasks.
- Use a project management board.
- Perform pair code reviews (CRs).
- Interpret logs from the continuous integration (CI) system.
Important Due Dates
- Maman 11 – due by 1 May 2026 - 3%
- Maman 12 – due by 29 May 2026 - 7%
- Maman 13 - Project Presentation – to be scheduled between 1 May and 19 June 2026 - 6%
- Maman 14 - Project Specification – due by 19 June 2026 - 20%
- Maman 15 - Final Project Implementation – due by 30 September 2026 - 64%
Clarification Regarding the Tasks During the Semester
First and Second Assignments (Maman 11/12)
- Assignments (Maman 11/12) are published on the Trello board.
- Each student should choose an epic from the eVSSIM, or Swift boards and identify which assignments are related to that epic.
- Each student should assign themselves to an epic (no more than 2 students per epic) and also to the Trello cards related to the epic.
- Assignments labeled “can be done in pairs” may be completed in pairs as indicated. All other assignments are individual.
Third Assignment (Maman 13)
- Maman 13 can be done in pairs.
- Each student (or pair) is expected to:
- Create a Trello card and link it from the assignments checklist in the appropriate epic Trello card.
- Assign themselves to the card.
- Create a Google Doc containing the project specification, following the format described in “HOWTO Submit a Project Spec”.
- Each epic includes a checklist of implementation steps. The student’s mission in Maman 13 is to:
- Translate the checklist into a well-documented:
- Functional specification
- Implementation plan
- Testing specification
- Create 7 to 8 Trello cards (stories), each representing about 1-2 weeks of effort (approximately 16–24 hours of focused work).
- Each card must include a Definition of Done (DoD) that clearly describes:
- Features implemented at this stage
- Corresponding tests for the implemented code
- Each card must include a Definition of Done (DoD) that clearly describes:
- Translate the checklist into a well-documented:
- Toward the end of the semester, after work on Maman 13 begins, 30-minute weekly sync meetings for the eVSSIM, and Swift tracks will be scheduled.
Student Talks
- Each student is expected to assign themselves to the Trello card related to a student talk topic associated with the chosen epic.
- Each epic includes a link to a Trello card describing the mandatory student talk.
- Google Slides (in English) should be shared with the instructor at least one week before a scheduled talk for comments and feedback.
- Reuse and improvement of existing slides (attached to the corresponding Trello card) is encouraged.
Assignment Submissions & CI
- Gerrit change requests must pass CI regression checks.
- Each student (or pair) is responsible for obtaining peer reviews from at least two reviewers from their track (eVSSIM, or Swift) by requesting reviews via the appropriate WhatsApp group.
- Instructors will assess the quality of the peer reviews.
- Review quality will impact the reviewer’s own assignment grade.
- After a Gerrit change is merged, a text file containing a link to the Gerrit change should be submitted via the university’s electronic submission system.
Clarification Regarding the Tasks During the Summer Semester
Final Assignment (Maman 14)
- Maman 14 can be done in pairs.
- Each student (or pair) is expected to:
- Implement stories according to the specification and plan created during Maman 13.
- Participate in 30-minute weekly sync meetings. During these meetings, each student will:
- Briefly present the progress made on their current story
- Share the plan for the upcoming week
- Raise any flags, unresolved issues, or questions requiring broader input
- Students are encouraged not to wait for the meetings to raise issues. They should use the appropriate WhatsApp groups (general or track-specific for eVSSIM, or Swift) to share problems or concerns as early as possible. The same applies to concerns about the merge order of change requests.
- Assignment Submissions & CI rules apply to every story.
- After all 7 to 8 Gerrit change requests related to the stories are merged, a text file containing links to the Gerrit changes should be submitted via the university’s electronic submission system.
Projects
| Project | Description | HW/SW Requirements | Skills | Resources |
|---|---|---|---|---|
| eVSSIM | SSD simulator based on QEMU/KVM, exposing NVMe protocol to guest OS. Used to evaluate SSD performance under various firmware designs. | 4–64 GB RAM 150 GB disk Cosmos OpenSSD Platform (for one epic) Ubuntu 24.04 (bare-metal) | C (high) C++ (basic) Python (basic) | VSSIM article eVSSIM architecture Project management board Analytical modelling article NVMe spec |
| Swift | OpenStack Object Store for scalable unstructured data storage and retrieval via a simple API. Designed for high availability and concurrency. | 4–64 GB RAM 150 GB disk Ubuntu 24.04 (bare-metal) | Python (high) Testing frameworks Design patterns | OpenStack Swift book Project management board Swit - PPT Implementing cloud storage with Openstack Swift - wiki |
Meetings
| Date | Track | Presenter | Agenda | Materials |
|---|---|---|---|---|
| 10/04 | ||||
| all | David S | OSW Intro Project demos, epics Bottom line During the next two weeks, read the materials covered today and assign yourself to one of the tracks (eVSSIM, or Swift). | slides |
Linux kernel bucket
| # | Date/Time/Duration | Track/Presenter | Agenda | presentation |
|---|---|---|---|---|
| 3 | [TBD] 60m | [kernel]/[First and last Name] | Linux kernel (based on R. Loves’ book): Interrupts and Interrupt Handlers Bottom Halves | Slides |
| 5 | [TBD] 40m | [kernel]/[First and last Name] | Linux kernel (based on R. Loves’ book): Block I/O layer | Slides |
| 6 | [TBD] 40m | [kernel]/[First and last Name] | Linux kernel (based on R. Loves’ book): VFS | Slides |
| 7 | [TBD] 40m | [kernel]/[First and last Name] | Linux kernel (based on R. Loves’ book): The Page Cache and Page Writeback | Slides |
| 8 | [TBD] 40m] | [kernel]/[First and last Name] | Blk-mq and nvme-core.c Article slides |
eVSSIM bucket
see TALKS column on the Trello board
Swift bucket
see TALKS column on the Trello board
Resources
Linux containers
- https://www.nccgroup.com/media/eoxggcfy/_ncc_group_understanding_hardening_linux_containers-1-1.pdf
- https://github.com/lxc/lxc
- https://linuxcontainers.org/lxc/getting-started/
- https://en.wikipedia.org/wiki/LXC
- https://www.ibm.com/developerworks/linux/library/l-lxc-containers/
- https://wiki.deimos.fr/LXC_:_Install_and_configure_the_Linux_;Containers
Docker
- Docker containers - building and running
- https://www.simplilearn.com/tutorials/docker-tutorial/what-is-dockerfile
Linux kernel namespaces and cgroups
- https://blog.lizzie.io/linux-containers-in-500-loc.html
- http://www.haifux.org/lectures/299/netLec7.pdf
- audio track http://www.haifux.org/lectures/299/
- http://www.haifux.org/lectures/320/netLec8_final.pdf
- http://man7.org/conf/ - Conference presenttaions
- http://man7.org/training/index.html - trainings (not only about the $subject)
- https://man7.org/conf/ndctechtown2019/Linux-namespaces-NDC-TechTown-2019-Kerrisk.pdf - a good namespaces presentation
- Managing Linux Resources with cgroups - a good cgroups presentation
History of conteiner technology
- https://www.slideshare.net/insideHPC/linux-container-technology-101 - history and 101
- https://dzone.com/articles/evolution-of-linux-containers-future
- https://blog.aquasec.com/a-brief-history-of-containers-from-1970s-chroot-to-docker-2016
- http://www.cs.ucr.edu/~nael/cs202/containers.pdf - article on process containers (a milestone)
- https://lwn.net/Articles/531114/ - lwn article (a milestone)
- http://linuxbsdos.com/2015/10/01/whats-a-type-c-hypervisor/
Linux
- https://github.com/torvalds/linux/
- https://elixir.bootlin.com/linux/v4.16.10/source
- https://www.kernel.org/doc/htmldocs/kernel-api/
- https://lwn.net/Articles/719732 - struct layout randomization plugin
Ptrace and debugging
- Ptrace Part 1 - https://www.linuxjournal.com/article/6100?page=0,1
- Ptrace Part 2 - https://www.linuxjournal.com/article/6210
- Code [ftp.linuxjournal.com/pub/lj/listings/issue104/6210.tgz].
- Debuggers (part1-3): https://eli.thegreenplace.net/tag/debuggers
Meetups
OpenStack
- OpenStack Cloud storage - SNIA - Bright Talk (cinder, manila, swift)
- OpenStack deployment with netapp technologies
- OpenStack 10 - Architecture guide and Object Storage (swift)
- OpenStack 16 - Partner integration
- OpenStack services on Openshift - 18.0
- Manila presentation
- TripleO - deploying openstack with tripleo
- TripleO - Openstack on Openstack
- TripleO OpenStack Summit Boston 2017
Simulators
NVMe
- SNIA NVMe over Fabrics on youtube
Storage