Page 1
Experience with K42, an open-source, Linux-compatible, scalable operation-system kernel
IBM SYSTEM JOURNAL, VOL 44 NO 2, 2005J. Appovoo 、 M. Auslander 、 M. Butrico 、 D. M. da SilvaO. Krieger 、 M. F. Mergen 、 M. Ostrowski 、B. Rosenburg 、 R. W. Wisniewski 、 J. Xenidis
Page 2
About K42
Operating-system kernel Open-source Linux-compatible Scalable Being used for rapid prototyping of
OS policies and mechanisms.
Page 3
Main goals
Scalability / performance Adaptability Extensibility / maintainability Open-source compatibility
Page 4
Goal 1.Scalability / performance
Being structured in an object-oriented manner. Run efficiently on a range of mulitprocess
ors and applications. Each resource is managed by “per-insta
nce“ object. High degree of customizability. Provides self-managing capabilities.
Page 5
Goal 2.Adaptability
Match the changing needs of the running applications.
Contribute to the autonomic behavior of the system.
Page 6
Goal 3.Extensibility / maintainability
Support New hardware platforms or new applications easily.
Updating components without interrupting the system.
Page 7
Goal 4.Open-source compatibility
Facilitates open-source collaboration.
Supporting needs of specific user groups.
Page 8
Design Principle Use modular object-oriented code(C++). Avoid centralized code paths, global data st
ructure, and global locks. Move system functionality from the kernel t
o server processes and into application libraries.
These principles should not conflicted with scalability / performance goal.
Page 9
Structural overview of K42
Page 10
All layers of K42 is based on object-oriented technology.
Emulation layer Linux API and Linux ABI compatibility.
Standard Linux system call are trapped and reflected to the K42 library.
Page 11
Object-oriented design
Page 12
Each resource is managed by a different set of object instances.
Avoid global locks, global data structures, and global policies.
Clustered object model makes the distinction between independent and dependent request trasnparent.
Page 13
Achieve good performance on multiprocessors. No shared data structures and locks can be
processed concurrently. Good locality of reference is achieved for
resources accessed by a small number of processors.
The clustered-object technology lets widely accessed objects be implemented in a distributed fashion.
Page 14
Customizable Allows multiple policies and
mechanisms to be supported simultaneously.
Maintainable
Page 15
User-mode implementation of system services
Much of functionality is moved to libraries that is executed in the client process. Allows for a large degree of
customization. Overhead is reduced. Thread scheduling, Timer interrupts,
Page-fault handling, IPC services, I/O servers.
Page 16
Additional K42 technologies Integrated performance monitoring Hot-swapping Customizable and scalable operation system
KFS allows K42 to tailor the various workloads. Comprehensive scheduling
Processors, I/O, memory, synchronization Lock avoidance
Deletion of K42 objects is defferred.
Page 17
Other K42 features
K42 was Designed to run on 64-bit processors.
K42 is fully preemptable. Most of kernel data structures are pag
eable.
Page 18
Experiences Overall object-oriented design
It might be difficult to achieve a desired global state.
Trying to understand the interactions between the different components is complex.
The more applications that increase, the more infrastructure of recording objects is needed.
Page 19
Modularity for new applications and new HW A porting of K42 to the AMD**x86
64bit platform. Incorporating of test code for a new
memory model into K42.
Page 20
User-mode implementation This model is different from what an
open-source Linux developer is used to.
Version compatibility issues Multiple versions of the software that
are themselves incompatible makes it difficult for K42 to support Linux.
Page 21
Status and current directions HW
PowerPC 64-bit platforms including POWER3*, POWER4+*, POWER MCA** G5
Apple G5 Xserve hardware. SW
JVM SPEC(System Performance Evaluation Corporatio
n) SDET(Software Development Envirenment Throu
ghput) Apache MySQL
Page 22
Conclusions
K42 has the ability to serve as an open-source development platform.
Its modularity structure makes it a valuable teaching, researching, and prototyping vehicle.
Rapid prototyping of ideas.