Coding tools

This is a brief introduction to coding projects at the KernelSec Lab. Most of our code is in C++ (C for kernel code), although we also have some Java code. This code has a (hopefully) long life in which several generations of students work on it; in addition to high quality code, it is therefore necessary to maximize the common code base so that new students can be made productive as soon as possible.

Code base

Our code base has been growing and includes:
  • KernelSec: the Linux kernel modules + patch which implement the kernel side of our authorization model.
  • KernelSecD: the user space configuration code for kernelSec.
  • omegaRPC: an object-oriented RPC system

We have several other projects in development.

Tools

To maintain this code base we use the following tools:
  • Subversion: a repository for software, papers, etc. allowing concurrent access and and version history.
  • A C++ Coding standard following a standard makes it easier to be consistent and allows the code to be written by different people yet be easier to read.
  • Makefiles
  • LaTeX for documentation and paper writing
  • Beamer (a LaTeX style) for presentations
  • OpenC++: we've used this only for RPC
Other than OpenC++, a student working in the lab will need to be proficient in each of these tools.