The K42 Research Operating System

Innovation Matters


Designed to achieve scalability and fine-grain customizability while offering to applications the usual Linux API and ABI environment, the K42 research operating system is a flexible framework for conducting system software research. It allows applications to customize and thus optimize the OS services they require. It has been used to experiment with novel operating system policies and mechanisms, and evaluate the impact of architectural innovations.


K42 is a high performance, open source, general-purpose research operating system kernel for cache-coherent 64-bit multiprocessors. IBM Research is targeting next-generation servers, ranging from small-scale multiprocessors that we expect will become ubiquitous, to very large-scale non-symmetric multiprocessors that are becoming increasingly important in both commercial and technical environments. K42 uses clustered objects, a technology that enables an object to control its own distribution across processors, simplifying the development of scalable data structures. By designing the system from the start for multiprocessors, we achieve a high degree of spatial and temporal locality in code and data. To support large servers, K42 is designed to scale to hundreds of processors and to address the reliability, fault-containment, and fault-tolerance requirements of large commercial applications.

Object-oriented technology has been used throughout the system. Each resource (for example, virtual memory region, network connection, open file, or process) is managed by a different set of object instances. Each object encapsulates the meta-data necessary to manage the resource as well as the locks necessary to manipulate the meta-data, thus avoiding global locks, data structures, and policies. The object-oriented nature enables adaptability, because different resources can be managed by different implementations.

K42 provides the unique operating system capability of being able to customize resource management to the different needs of individual applications. Further, we have extended this capability to allow for the object instance managing the resource to be changed dynamically. This allows us to, for example, upgrade the system or respond to security threats without having to reboot the system. It also allows resource management to be modified for each phase of a scientific application.

K42 Operating System
K42 Operating System

As part of K42 we have developed efficient and scalable tracing infrastructure to allow us to understand the performance of the system. This has proved extremely valuable in understanding and improving the behavior of K42 and libraries on it as well as the DARPA benchmarks.

In collaboration with the Continuous Program Optimization (CPO) effort, we have begun to leverage the dynamic adaptation aspects of K42 to allow the system to automatically tune itself to the needs of different applications, achieving performance benefits that before now would have required manual programmer intervention.

The K42 team has also been involved with the Research Hypervisor project.

Related Publications  

Andrew Baumann, Jonathan Appavoo, Dilma Da Silva, Jeremy Kerr, Orran Krieger and Robert W. Wisniewski. Providing Dynamic Update in an Operating System. Usenix. 2005.

Robert W. Wisniewski and Bryan Rosenburg, "Efficient, Unified, and Scalable Performance Monitoring for Multiprocessor Operating Systems," Supercomputing 2003.

Craig A. N. Soules, Jonathan Appavoo, Kevin Hui, Robert W. Wisniewski, Dilma Da Silva, Gregory R. Ganger, Orran Krieger, Michael Stumm, Marc Auslander, Michal Ostrowski, Bryan Rosenburg, Jimi Xenidis, "
System Support for Online Reconfiguration," Proceedings of Usenix 2003, pg 141-154.

Jonathan Appavoo, Marc Auslander, Dilma Da Silva, Orran Krieger, Michal Ostrowski, Bryan Rosenburg, Robert W. Wisniewski, Jimi Xenidis, Michael Stumm, Ben Gamsa, Reza Azimi, Raymond Fingas, Adrian Tam, David Tam, "Enabling Scalable Performance for General Purpose Workloads on Shared Memory Multiprocessors," IBM Research Report RC22863.

Rate this article

Innovator's corner  

Robert WisniewskiRobert Wisniewski Researcher
What is the most exciting potential future use for the work you're doing?
Software and multiprocessors are becoming increasingly complex and the requirements of applications are becoming more divergent, especially on multiprocessors. To achieve good performance in this environment, the underlying system needs to be customizable to the application, and to handle complexity, mechanisms are needed to be able to automatically use this capability. K42 is an IBM Research project aimed at designing a research operating system kernel from the ground up. Its goals are to achieve good scalable performance and allow its resource management to be customized to the needs of individual applications. Also as part of K42, we are exploring how to provide that customization dynamically. To address automating the customization process, another group I work in is exploring continuous program optimization (CPO) -- how to gather performance data from all layers of the execution stack, including the hardware, operating system, libraries, application, etc., and analyze that data both off and online to make better automatic resource control decisions.


An exciting opportunity exists by combining the recommendations made by the CPO infrastructure with the dynamic hot-swapping capabilities provided in K42. With this combination we have the ability to automatically increase the application's performance without manual programmer intervention, thereby addressing system complexity.

What is the most interesting part of your research?
I have always enjoyed designing and implementing algorithms. An integral part of the above described research has involved inventing novel algorithms to figure out how to perform the dynamic resource management capability, as well as designing algorithms to analyze the data produced by the performance monitoring infrastructure to produce good resource control directives.


What inspired you to go into this field?
Growing up, I was always fascinated by the internals of calculators. I would take them apart and stare at the green circuit boards and wonder how the wires and chips could produce the computation results. As personal computers developed, this interest grew into wanting to understand them, and from there to wanting to be able to understand and program supercomputers.


What is your favorite invention of all time?
The computer has given people the unprecedented capability to understand the world, and has tremendously advanced many disciplines of science. Moving forward, computers will play an important role in allowing us to advance and expand beyond our current understanding and position.

Research team  

Jonathan Appavoo

Jonathan Appavoo

Marc Auslander

Marc Auslander

Maria Butrico

Maria Butrico

Dilma M Da silva

Dilma M Da silva

Jeremy Kerr

Jeremy Kerr

Orran Y Krieger

Orran Y Krieger

Mark Mergen

Mark Mergen

Michal Ostrowski

Michal Ostrowski

Bryan Rosenburg

Bryan Rosenburg

Amos Waterland

Amos Waterland

Chris Yeoh

Chris Yeoh

Jimi Xenidis

Related Research  

Disciplines: Computer Science
Research Areas: Operating Systems
Research Labs: Watson Research Center