ABSTRACT
K42 is one of the few recent research projects that is examining operating system design structure issues in the context of new whole-system design. K42 is open source and was designed from the ground up to perform well and to be scalable, customizable, and maintainable. The project was begun in 1996 by a team at IBM Research. Over the last nine years there has been a development effort on K42 from between six to twenty researchers and developers across IBM, collaborating universities, and national laboratories. K42 supports the Linux API and ABI, and is able to run unmodified Linux applications and libraries. The approach we took in K42 to achieve scalability and customizability has been successful.The project has produced positive research results, has resulted in contributions to Linux and the Xen hypervisor on Power, and continues to be a rich platform for exploring system software technology. Today, K42, is one of the key exploratory platforms in the DOE's FAST-OS program, is being used as a prototyping vehicle in IBM's PERCS project, and is being used by universities and national labs for exploratory research. In this paper, we provide insight into building an entire system by discussing the motivation and history of K42, describing its fundamental technologies, and presenting an overview of the research directions we have been pursuing.
- A. Agarwal, R. Bianchini, D. Chaiken, K. L. Johnson, D. Kranz, J. Kubiatowicz, B.-H. Lim, K. Mackenzie, and D. Yeung. The MIT Alewife machine: architecture and performance. In ISCA '95: Proceedings of the 22nd annual international symposium on Computer architecture, pages 2--13, New York, NY, USA, 1995. ACM Press. Google ScholarDigital Library
- J. Appavoo, M. Auslander, D. Edelsohn, D. da Silva, O. Krieger, M. Ostrowski, B. Rosenburg, R. W. Wisniewski, and J. Xenidis. Providing a Linux API on the scalable K42 kernel. In Freenix track, USENIX Technical Conference, pages 323--336, San Antonio, TX, June 9--14 2003.Google Scholar
- J. Appavoo, K. Hui, M. Stumm, R. Wisniewski, D. da Silva, O. Krieger, and C. Soules. An infrastructure for multiprocessor run-time adaptation. In WOSS - Workshop on Self-Healing Systems, pages 3--8, 2002. Google ScholarDigital Library
- A. Baumann, J. Appavoo, D. da Silva, O. Krieger, and R. W. Wisniewski. Improving operating system availability with dynamic update. In Workshop of Operating System and Architectural Support for the On-demand IT Infrastructure (OASIS), pages 21--27, Boston Massachusetts, October 9, 2004 2004.Google Scholar
- A. Baumann, J. Appavoo, D. D. Silva, J. Kerr, O. Krieger, and R. W. Wisniewski. Providing dynamic update in an operating system. In USENIX Technical Conference, pages 279--291, Anaheim, CA, April 2005. Google ScholarDigital Library
- A. Baumann, J. Kerr, J. Appavoo, D. D. Silva, O. Krieger, and R. W. Wisniewski. Module hot-swapping for dynamic update and reconfiguration in K42. In Proc. of 6th Linux.conf.au (LCA), Canberra, April 2005.Google Scholar
- B. N. Bershad, S. Savage, P. Pardyn, E. G. Sirer, M. E. Fiuczynski, D. Becker, C. Chambers, and S. Eggers. Extensibility, safety and performance in the SPIN operating system. In ACM Symposium on Operating System Principles, 3--6 December 1995. Google ScholarDigital Library
- P. Bohrer, J. Peterson, M. Elnozahy, R. Rajamony, A. Gheith, R. Rockhold, C. Lefurgy, H. Shafi, T. Nakra, R. Simpson, E. Speight, K. Sudeep, E. V. Hensbergen, and L. Zhang. Mambo: a full system simulator for the PowerPC architecture. SIGMETRICS Perform. Eval. Rev., 31(4):8--12, 2004. Google ScholarDigital Library
- J. Bruno, E. Gabber, B. Ozden, and A. Silberschatz. The Eclipse operating system: Providing quality of service via reservation domains. In USENIX Technical Conference, New Orleans, LA, June 1998. Google ScholarDigital Library
- R. Bryant, J. Hawkes, and J. Steiner. Scaling Linux to the extreme: from 64 to 512 processors. In Ottawa Linux Symposium. Linux Symposium, 2004.Google Scholar
- J. Chapin, M. Rosenblum, S. Devine, T. Lahiri, D. Teodosio, and A. Gupta. Hive: Fault containment for shared-memory multiprocessors. In Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles, pages 12--25, 1995. Google ScholarDigital Library
- D. da Silva, L. Soares, and O. Krieger. KFS: Exploring flexilibity in file system design. In Proc. of the Brazilian Workshop in Operating Systems, Salvador, Brazil, August 2004.Google Scholar
- D. R. Engler, S. K. Gupta, and M. F. Kaashoek. Avm: application-level virtual memory. In Hot Topics in Operating Systems, pages 72--77. IEEE Computer Society, May 1995. Google ScholarDigital Library
- D. R. Engler, M. F. Kaashoek, and J. O'Toole Jr. Exokernel: an operating system architecture for application-level resource management. In ACM Symposium on Operating System Principles, pages 251--266, 3--6 December 1995. Google ScholarDigital Library
- M. E. Fiuczynski and B. N. Bershad. An extensible protocol architecture for application-specific networking. In USENIX. 1996 Annual Technical Conference, pages 55--64. USENIX. Assoc., 1996. Google ScholarDigital Library
- B. Ford, G. Back, G. Benson, J. Lepreau, A. Lin, and O. Shivers. The Flux OSKit: a substrate for kernel and language research. In SOSP '97: Proceedings of the sixteenth ACM symposium on Operating systems principles, pages 38--51, New York, NY, USA, 1997. ACM Press. Google ScholarDigital Library
- B. Gamsa, O. Krieger, J. Appavoo, and M. Stumm. Tornado: maximizing locality and concurrency in a shared memory multiprocessor operating system. In Symposium on Operating Systems Design and Implementation, pages 87--100, February 22--25 1999. Google ScholarDigital Library
- G. R. Ganger, D. R. Engler, M. F. Kaashoek, H. M. Briceno, R. Hunt, and T. Pinckney. Fast and flexible application-level networking on exokernel systems. ACM Transactions on Computer Systems, 20(1):49--83, February 2002. Google ScholarDigital Library
- K. Govil, D. Teodosiu, Y. Huang, and M. Rosenblum. Cellular disco: resource management using virtual clusters on shared-memory multiprocessors. ACM Transactions on Computer Systems (TOGS), 18(3):229--262, 2000. Google ScholarDigital Library
- R. Grindley, T. Abdelrahman, S. Brown, S. Caranci, D. DeVries, B. Gamsa, A. Grbic, M. Gusat, R. Ho, O. Krieger, G. Lemieux, K. Loveless, N. Manjikian, P. McHardy, S. Srbljic, M. Stumm, Z. Vranesic, and Z. Zilic. The NUMAchine multiprocessor. In Proc. of International Conference on Parallel Processing (ICPP'00), pages 487--496. IEEE Computer Society, 2000. Google ScholarDigital Library
- Guardian digital, inc., http://www.guardiandigital.com/.Google Scholar
- G. C. Hunt, J. R. Larus, D. Tarditi, and T. Wobber. Broad new OS research: Challenges and opportunities. In Proc. of the 10th Workshop on Hot Topics in Operating Systems, Santa Fe, NM, June 2005. USENIX. Google ScholarDigital Library
- F. L. R. III. Experience with the development of a microkernel-based, multi-server operating system. In HotOS - Workshop on Hot Topics in Operating Systems, pages 2--7, 1997. Google ScholarDigital Library
- D. Lenoski, J. Laudon, K. Gharachorloo, W.-D. Weber, A. Gupta, J. Hennessy, M. Horowitz, and M. S. Lam. The stanford dash multiprocessor. Computer, 25(3):63--79, 1992. Google ScholarDigital Library
- I. M. Leslie, R. B. D. McAuley, T. Roscoe, P. Barham, D. Evers, and R. F. E. Hyden. The design and implementation of an operating system to support distributed multimedia applications. IEEE Journal on Selected Areas In Communications, 17(7), May 2005. Google ScholarDigital Library
- J. Liedtke. On micro-kernel construction. In Proceedings of the 15th ACM Symposium on Operating Systems Principles, pages 237--250. ACM Press, 1995. Google ScholarDigital Library
- P. McKenney, J. Appavoo, A. Kleen, O. Krieger, R. Russell, D. Sarma, and M. Soni. Read Copy Update. In OLS: Ottawa Linux Symposium, July 2001.Google Scholar
- P. E. McKenney, D. Sarma, A. Arcangeli, A. Kleen, O. Krieger, and R. Russell. Read copy update. In Proceedings of the Ottawa Linux Symposium (OLS), pages 338--367, 26--29 June 2002.Google Scholar
- M. Rosenblum and J. K. Ousterhout. The Design and Implementation of a Log-Structured File System. ACM Transactions on Computer Systems, 10(1):26--52, 1992. Google ScholarDigital Library
- Security-enhanced linux, http://www.nsa.gov/selinux/index.html.Google Scholar
- M. Seltzer, Y. Endo, C. Small, and K. A. Smith. An introduction to the architecture of the VINO kernel. Technical report, Harvard University, 1994.Google Scholar
- SGI. Sgi irix. http://www.sgi.com/developers/technology/irix/.Google Scholar
- L. Soares, O. Krieger, and D. D. Silva. Meta-data snapshotting: A simple mechanism for file system consistency. In SNAPI'03 (International Workshop on Storage Network Architecture and Parallel I/O), pages 41--52, 2003. Google ScholarDigital Library
- C. A. N. Soules, J. Appavoo, K. Hui, R. W. Wisniewski, D. da Silva, G. R. Ganger, O. Krieger, M. Stumm, M. Auslander, M. Ostrowski, B. Rosenburg, and J. Xenidis. System support for online reconfiguration. In USENIX Technical Conference, pages 141--154, San Antonio, TX, June 9--14 2003.Google Scholar
- G. Team. Gentoo linux. http://www.gentoo.org.Google Scholar
- R. H. Team. The research hypervisor. www.research.ibm.com/hypervisor, march 2005.Google Scholar
- R. Unrau, O. Krieger, B. Gamsa, and M. Stumm. Hierarchical clustering: A structure for scalable multiprocessor operating system design. Journal of Supercomputing, 9(1/2):105--134, 1995. Google ScholarDigital Library
- D. A. Wallach, D. R. Engler, and M. F. Kaashoek. Ashs: application-specific handlers for high-performance messaging. In ACM SIGCOMM Conference, August 1996. Google ScholarDigital Library
- R. W. Wisniewski and B. Rosenburg. Efficient, unified, and scalable performance monitoring for multiprocessor operating systems. In Supercomputing, Phoenix Arizona, November 17--21 2003. Google ScholarDigital Library
- T. Zanussi, K. Yaghmour, R. W. Wisniewski, M. Dagenais, and R. Moore. An efficient unified approach for trasmitting data from kernel to user space. In Proceedings of the Ottawa Linux Symposium (OLS), pages 519--531, July 23--26 2003.Google Scholar
Index Terms
- K42: building a complete operating system
Recommendations
K42: building a complete operating system
Proceedings of the 2006 EuroSys conferenceK42 is one of the few recent research projects that is examining operating system design structure issues in the context of new whole-system design. K42 is open source and was designed from the ground up to perform well and to be scalable, customizable, ...
Fast concurrent dynamic linking for an adaptive operating system
ICCDS '96: Proceedings of the 3rd International Conference on Configurable Distributed SystemsThe need for customizable and application-specific operating systems has been recognized for many years. A customizable operating system is one that can adapt to some particular circumstance to gain some functional or performance benefits. Microkernels ...
Experience with K42, an open-source, Linux-compatible, scalable operating-system kernel
K42 is an open-source, Linux-compatible, scalable operating-system kernel that can be used for rapid prototyping of operating-system policies and mechanisms. This paper reviews the structure and design philosophy of K42 and discusses our experiences in ...
Comments