Research

I'm a research assistant in the Flux Research Group at the University Of Utah. The focus of the group spans topics in systems - networking testbeds, operating systems, storage etc. My research interests are mainly in systems. Some of my main interests include,

  • Newer Operating systems abstractions
  • Operating systems security
  • Embedded software
  • File systems, SSDs, distributed storage

My first research task was to study disk failures and to emulate disk failures in the Emulab Testbed. The goal was to aid researchers around the world to experiment and study the effects of random system crashers to design highly fault-tolerant systems. This was part of PRObE project which is deployed emulab testbed in Los Alamos. There have been a number of research papers describing the characteristics of disk failure. But none of them are conclusive enough and there is not many models developed to describe accurately disk failures. I investigated many existing alternatives to emulate disk failures such as SCSI fault injection using SystemTap, scsi fault injection for Linux, etc. I considered device mapper for Linux to be the best choice for emulab as I could easily fit this with the event system of emulab. More details are here. This still needs to be extended to make the fault-injection as reaslistic as possible. One idea is to design a I/O-replay mechanism which can replay real I/O trace collected from unstable storage systems. Another idea was to develop a probabilistic failure model that could describe the real system failures.

I'm now exploring Capabilities security mechanism. Developing better security policies has been one of the constant goals of operating systems research. Capabilities is not a new idea but its application has been limited to experimental operating systems such as EROS or verified microkernels such as seL4. Recently, Capsicum, which is a capability model was implemented on FreeBSD. Our idea is to extend Xen with Capabilities to push the idea of Principles of Least Authority (POLA) on virtulized platforms to study how we can build disaggregated services. This can further improve isolation and bug containment.