Designed and implemented the building blocks of a UNIX based Operating System namely threads, the process subsystem and synchronization primitives.
Implemented Virtual memory management which involved implementation of process address space,page fault handling, stack management and system calls.
Implemented a simple file system and kernel-level thread scheduling mechanisms