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:

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
  • 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

Docker

Linux kernel namespaces and cgroups

History of conteiner technology

Linux

Ptrace and debugging

Meetups

OpenStack

Simulators

NVMe

Storage