Gmür, Matteo and Imhof, Fabian (2025) TeachOS: Design and Implementation of an OS for Use in the Operating Systems Lecture Track. Other thesis, OST Ostschweizer Fachhochschule.
FS 2025-BA-EP-Imhof-Gmür- TeachOS Design and Implementation of an OS for Use in the.pdf - Supplemental Material
Download (2MB)
Abstract
TeachOS is an operating System for the x86_64 CPU architecture. It is designed to be an interactive learning tool used in the «Operating Systems 1» and «Operating Systems 2» lecture track at OST.
As part of a previous thesis, a foundation in form of memory management, including physical and heap memory was created. Topics covered included parsing Multiboot2 information, implementing frame allocation and page tables, and using these components to remap the kernel. Based on this, dynamic memory allocation during kernel runtime was implemented using different allocation strategies.
This paper examines the core concept of context-switching in operating systems for the x86 processor architecture. To implement the context-switch mechanisms, multiple operating system concepts had to be researched and implemented. These concepts include Privilege Levels, the Global Descriptor Table, Interrupts and the Interrupt Descriptor Table and Procedure Calls.
To give the newly created access to user mode a purpose, the existing heap implementation has been expanded upon, by utilizing the ```cpp new``` and ```cpp delete``` operators in various data-structures. Additionally a separate user mode heap has been created, which is separated from the kernel mode heap via paging, and is dynamically extended when running out of memory.
This foundation can be extended in the future, by separating kernel-code and user-code binaries. Doing this allows for better separation of the different privilege levels inside the paging mechanism, which in turn better resembles real world operating systems, and thus better fulfills the primary goal of providing an operating system designed for education.
| Item Type: | Thesis (Other) |
|---|---|
| Subjects: | Topics > Software Area of Application > Academic and Education Technologies > Operating Systems |
| Divisions: | Bachelor of Science FHO in Informatik > Bachelor Thesis |
| Depositing User: | OST Deposit User |
| Date Deposited: | 29 Sep 2025 10:48 |
| Last Modified: | 29 Sep 2025 10:48 |
| URI: | https://eprints.ost.ch/id/eprint/1303 |
