Bjoern B. Brandenburg

Ph.D. Student

Department of Computer Science
The University of North Carolina at Chapel Hill
Campus Box #3175, Sitterson Hall
Chapel Hill, NC 27599-3175 USA

About Me

Hello World, nice to meet you! Let me introduce myself. I am a 2nd year Ph.D. student and a German Fulbright fellow. Before coming to UNC, I attended Technische Universität Berlin. My first year at UNC was funded by Fulbright, now I am employed as a research assistant by my adviser Professor Dr. James H. Anderson.

My research interests include Multiprocessor Real-Time Systems, Real-Time Operating Systems, and Operating Systems in general. As part of my research, I contribute to LITMUSRT, a real-time extension for the Linux kernel. To obtain trace data from real-world systems, I developed Feather-Trace, a very low-overhead tracing toolkit for Intel x86 compatible CPUs.

In December 2006, Hennadiy Leontyev and I participated in the international CiberMouse@RTSS2006 programming contest. The challenge was to program a (simulated) robot that would find a beacon in an unknown (and unstructured) maze and return to the start position in the face of real-time constraints, sensor noise, and competing agents. Our agent, “Ramses the Rat”, won the competition!

I'd be very happy to hear from you if you have comments or questions. Just send an email to bbb >>AT<< cs.unc.edu.

Publications Activities Course Work

Spring 2008

  • COMP 915 Technical Communication in Computer Science
  • COMP 737 Real-Time Systems

Fall 2007

  • COMP 633 High Performance Computing.
  • COMP 790-95 Introduction to Computer Security.
  • COMP 991-062 Reading and Research (with Dr. Anderson).

Spring 2007

  • COMP 735 Distributed Algorithms.
  • COMP 790-042 Advanced OS Implementation.
    In this class, we studied and hacked on the FreeBSD operating system. That was a fun class!
  • COMP 790-078 Multiprocessor Real-Time Systems.
  • COMP 991-062 Reading and Research (with Dr. Anderson).
    Feather-Trace was designed and implemented in this class.

Fall 2006

  • COMP 750 Algorithm Analysis.
  • COMP 790-062 Real-Time Operating Systems.
  • COMP 665 Images, Graphics & Vision.
Open Source

I take great interest in Free and Open Source Software (FOSS), the FOSS community, and support its ideals. Projects that I contribute to and code that I write that I consider to be potentially of use or interest to others is made available here.

Projects

  • The LITMUSRT project develops and maintains a patch on top of Linux that enhances the vanilla kernel with multiprocessor real-time scheduling and synchronization algorithms. It is our group's main development and evaluation platform for applied research multiprocessor real-time research. The code is licensed under the GPL 2.
    Project homepage
  • Feather-Trace is a very low-overhead static tracing toolkit for the Intel x86 platform. The core part is distributed under a BSD license. The included Linux kernel patch is licensed under the GPL 2.
    Project homepage

Misc. Code

  • Simple Grep Shell
    The Simple Grep Shell (gsh) is a thin layer around GNU grep. Use it to save time when you search through a given set of files a lot. It comes with its own query history. Have a look at the screen shot to get a better idea.

    I use grep a lot. It is a great tool for navigating large software packages such as the Linux kernel. However, using grep directly from the shell can become tedious if you repeatedly execute many queries on the same set of files. Also, relying on the shell's history for recalling common or similar searches is somewhat cumbersome.

    The Simple Grep Shell solves both problems by offering a simple, specialized shell for invoking grep. Once started for a set of files, the user can repeatedly enter search queries, and even recall prior searches (thanks to libreadline). You can pass any command line options that GNU grep understands to gsh — they will be transparently passed to grep.

    gsh is written in Python and released under the BSD license.
    screen shot - download script

  • GRUB Boot Kernel Selector
    Simple shell script to update the default choice in GRUB's menu.lst file. Use it to avoid human error when updating remote machines late at night.

    If you happen to be switching the default choice in the GRUB bootloader menu.lst file a lot (for example, if you frequently update the kernel on a remote machine), then you might appreciate this little script. It provides a shell-based dialog to select a new default entry based on the ones already present in the config. It is even so nice to leave a backup of your original config, just in case anything goes wrong. ;-)

    Released under the BSD license.
    screen shot - download script

Once I get around to cleaning up some of the stuff I have sitting around I will post some more.