Skip to content

Description of the work that I did as part of CS402 Course at USC

Notifications You must be signed in to change notification settings

HiranmayaGundu/weenix-os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

weenix-os

As part of my CS402 Course at USC, I built Weenix OS. Weenix OS was originally developed at Brown University and you can find out more about it here. As part of the project I implemented the following portions:

  • PROCS:- Implemented process management for a uniprocessor with a single thread. The scheduler was a simple non-preemtive FIFO queue. Thread switching happens either when the current process finishes or when it yields voluntarily (through a system call).
  • VFS:- Implemented the Virtual File System. This is an interface between the OS and the various file systems implementations that the OS supports (RamFS and SFS). This includes implementing most file related system calls.
  • VM:- Implemented Virtual Memory to get a user space shell up and running. This meant I implemented the page fault handler, and the virtual memory map required to have Copy-On-Write working, the fork(), brk() and mmap() system calls.

These are screenshots from my implementation of the OS:

screenshot of a terminal that shows the starting screen of the weenix os in the weenx shell

The Weenix User Space Shell

Output of the ls command listing all the contents of the root folder

Output of the ls command

Output of the README file using cat command

Output of the cat command showing the contents of the README file.

A screen showing that all the test cases for VFS passed

Ouptut of the vfstest command testing the VFS layer.

A screen showing that all the test cases for memory passed

Ouptut of the memtest command testing the virtual memory implementation.

A screen showing that the memory stress test passed

Output of the eatmem command that stress tests the OS by eating at least 10,000 pages.

A screen showing that forkbomb successfully completed

Output of the forkbomb limit500 command showing that it successfuly forked 500 processes.

A screen showing that stress test successfully completed

Output of the stress limit500 command showing that it successfuly stress tested the system.

shutdown screen for weenix

Showing that the OS cleanly halts after running these commands.

The code for this project is governed by a closed source license, but I can email a copy of it if required to potiential employers.

About

Description of the work that I did as part of CS402 Course at USC

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published