Skip to content

dyune/minos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

About this

Learning about operating systems (McGill's ECSE 427) this fall semester was quite fun, especially with the topics of process management, virtual memory management, and persistent storage. I found it to be quite a fascinating class as it really explained the black magic that runs our computers. Actually, for this course, a main method of evaluation was implementing a toy OS that called upon topics we learnt in class such as manual memory management, process scheduling, and demand paging. There are some topics we haven't implemented but learnt about, such as disk operations, file systems and demand paging combined with segmentation or multi-level pages.

Note

This is NOT a true OS you boot on a system, it's just a program running in user space meant to simulate an operating system.

With this in mind, I thought about expanding this assignment to implement these cool new features I never got to touch on. But, then I remembered how hard it was to parse a string with C and how many times I ended up getting SIGSEGV!

So, like any good programmer in 2025, I decided to re-write it in Rust because I find the language interesting and want to learn it, and I'd rather fight the borrow checker than to get another segfault :D

Features (to come)

  • File System implementation (hefty one)
  • Allocating variables in heap and stack for programs
  • Multi-level page (jury's still out on this one)

TODO:

  • FCFS, RR, SJF scheduling options
  • Baseline demand paging implementation

About

Rust rewrite of an assignment from my systems programming class where we built a toy operating system shell.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages