skip to main content
10.1145/1217935.1217949acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
Article

K42: building a complete operating system

Published:18 April 2006Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. Guardian digital, inc., http://www.guardiandigital.com/.Google ScholarGoogle Scholar
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. J. Liedtke. On micro-kernel construction. In Proceedings of the 15th ACM Symposium on Operating Systems Principles, pages 237--250. ACM Press, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. Security-enhanced linux, http://www.nsa.gov/selinux/index.html.Google ScholarGoogle Scholar
  31. 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 ScholarGoogle Scholar
  32. SGI. Sgi irix. http://www.sgi.com/developers/technology/irix/.Google ScholarGoogle Scholar
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle Scholar
  35. G. Team. Gentoo linux. http://www.gentoo.org.Google ScholarGoogle Scholar
  36. R. H. Team. The research hypervisor. www.research.ibm.com/hypervisor, march 2005.Google ScholarGoogle Scholar
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  40. 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 ScholarGoogle Scholar

Index Terms

  1. K42: building a complete operating system

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader