experience with k42, an open- source, linux-compatible, scalable operation-system kernel ibm system...
TRANSCRIPT
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
About K42
Operating-system kernel Open-source Linux-compatible Scalable Being used for rapid prototyping of
OS policies and mechanisms.
Main goals
Scalability / performance Adaptability Extensibility / maintainability Open-source compatibility
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.
Goal 2.Adaptability
Match the changing needs of the running applications.
Contribute to the autonomic behavior of the system.
Goal 3.Extensibility / maintainability
Support New hardware platforms or new applications easily.
Updating components without interrupting the system.
Goal 4.Open-source compatibility
Facilitates open-source collaboration.
Supporting needs of specific user groups.
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.
Structural overview of K42
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.
Object-oriented design
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.
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.
Customizable Allows multiple policies and
mechanisms to be supported simultaneously.
Maintainable
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.
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.
Other K42 features
K42 was Designed to run on 64-bit processors.
K42 is fully preemptable. Most of kernel data structures are pag
eable.
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.
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.
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.
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
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.