nebelwelt.net logo
navigation logo

Research interests

My research interests include a wide area of topics. Here I will try to highlight some fields where I'd like to gain more knowledge.

 

Binary translation, compiler, VM, and STM related topics:

  • Security through a thin virtualization layer in user-space
  • Fast BT (Binary Translation) using Adaptive Optimization
  • Adaptive optimization systems in general
  • Speculative Execution in Virtual Machines
  • Optimizations using multiple cpu cores
  • STM - Software Transactional Memory - and potential optimizations
  • HPM - Hardware Performance Monitors (and how to use them)

Libdetox - User-space software-based fault isolation using additional security guards

"In computer science every problem can be solved with an additional layer of indirection." We user virtualization / user-space software-based fault isolation to wrap a running application into an additional layer of security. This virtualization layer checks and controls every single control flow instruction inside the application. Additional security guards are dynamically woven into the application and protect (potentially large) applications using a small trusted computing base. A second part of the virtualization system verifies all system calls and ensures that the calls conform to a given system call policy. See Projects/libdetox and Papers VEE'11, 27c3'10, and 26c3'09 for more details

 

FastBT - Fast Binary Translation

Binary Translation (BT) is the art of adding, removing, or altering instructions of a running program. BT can be used for instrumentation, virtualization, and security sandboxing. I'm interested in optimal online translation with hard virtualization that sandboxes processes in user-space without kernel modifications. These configurable sandboxes can then be used for instrumentation, security hardening, or policy based system call authorization and validation. See Publications (SYSTOR'10, 27c3, 26c3, and AMAS-BT), the Google TechTalk, and Projects (secuBT, and fastBT) for more information. Notification for additional papers are currently pending.

 

Adaptive optimization systems

I'm interested in the development of adaptive optimizations. Important questions are how to measure and gather profile data, how to forward these data to the virtual machine or runtime environment, and to determine the correct balance between optimization efficiency and optimization overhead.

 

Speculative Execution in Virtual Machines

Given single threaded programs, what is the best way to utilize multiple cores? Speculative Execution takes part of the program and runs it in a transactional context ahead of time. If the speculation is successful then the non speculative thread can fast-forward to the end of the speculation. I'm interested in developing such systems in a Java VM, with a focus on the transactional part of the spculation. This is work in progress.

 

Software Transactional Memory

Software Transactional Memory (STM) is an interesting playground for new algorithms and tools to tackle parallel programming. I'm interested in developing fast, low-level STM algorithms based on (hardware) feedback systems and adaptive optimization that offer good performance for parallel transactions. A notification for a paper is currently pending. See Projects/adaptSTM and Publications adaptSTM, and ISPASS'11 for more information

 

HPM - Hardware Performance Monitors

I'm interested in using hardware performance feedback to guide the adaptive optimization system of a JVM, to lower the profiling overhead, and to optimize object layout and object reordering based on online cache information. See Projects/PEBSI and Publications/PLDI'07 for more information.