skip to main content
10.1145/1368088.1368140acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

A tale of four kernels

Published:10 May 2008Publication History

ABSTRACT

The FreeBSD, GNU/Linux, Solaris, and Windows operating systems have kernels that provide comparable facilities. Interestingly, their code bases share almost no common parts, while their development processes vary dramatically. We analyze the source code of the four systems by collecting metrics in the areas of file organization, code structure, code style, the use of the C preprocessor, and data organization. The aggregate results indicate that across various areas and many different metrics, four systems developed using wildly different processes score comparably. This allows us to posit that the structure and internal quality attributes of a working, non-trivial software artifact will represent first and foremost the engineering requirements of its construction, with the influence of process being marginal, if any.

References

  1. L. W. Cannon et al. Recommended C style and coding standards. Available online (February 2008) http://sunland.gsfc.nasa.gov/info/cstyle.html.Google ScholarGoogle Scholar
  2. S. N. Cant, D. R. Jeffery, and B. L. Henderson-Sellers. A conceptual model of cognitive complexity of elements of the programming process. Information and Software Technology, 37(7):351--362, June 1995.Google ScholarGoogle ScholarCross RefCross Ref
  3. A. Capiluppi and G. Robles, editors. FLOSS ?07: Proceedings of the First International Workshop on Emerging Trends in FLOSS Research and Development. IEEE Computer Society, May 2007.Google ScholarGoogle Scholar
  4. D. Coleman, D. Ash, B. Lowther, and P.W. Oman. Using metrics to evaluate software system maintainability. Computer, 27(8):44--49, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. A. Cusumano and R. W. Selby. Microsoft Secrets. The Free Press, New York, 1995.Google ScholarGoogle Scholar
  6. M. A. Cusumano and R. W. Selby. Microsoft Secrets. The Free Press, New York, 1995.Google ScholarGoogle Scholar
  7. J. Feller, editor. 5-WOSSE: Proceedings of the Fifth Workshop on Open Source Software Engineering. ACM Press, 2005.Google ScholarGoogle Scholar
  8. J. Feller and B. Fitzgerald. Understanding Open Source Software Development. Addison-Wesley, Reading, MA, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Feller, B. Fitzgerald, S. Hissam, and K. Lakhani, editors. Perspectives on Free and Open Source Software. MIT Press, Boston, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. B. Fitzgerald and J. Feller. A further investigation of open source software: Community, co-ordination, code quality and security issues. Information Systems Journal, 12(1):3--5, 2002.Google ScholarGoogle ScholarCross RefCross Ref
  11. The FreeBSD Project. Style?Kernel Source File Style Guide, Dec. 1995. FreeBSD Kernel Developer?s Manual: style(9). Available online http://www.freebsd.org/docs.html (January 2006).Google ScholarGoogle Scholar
  12. G. K. Gill and C. F. Kemerer. Cyclomatic complexity density and software maintenance productivity. IEEE Transactions on Software Engineering, 17(12):1284--1288, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. L. Glass. Of open source, Linux .. and hype. IEEE Software, 16(1):126--128, January/February 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. H. Halstead. Elements of Software Science. Elsevier New Holland, New York, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. P. Harbison and G. L. Steele Jr. C: A Reference Manual. Prentice Hall, Englewood Cliffs, NJ, third edition, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. M. Henry and D. Kafura. Software structure metrics based on information flow. IEEE Transactions on Software Engineering, SE-7(5):510--518, 1981 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J.-H. Hoepman and B. Jacobs. Increased security through open source. Communications of the ACM, 50(1):79--83, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. M. Hoffman and D. M. Weiss, editors. Software Fundamentals: Collected Papers by David L. Parnas. Addison-Wesley, Boston, MA, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Izurieta and J. Bieman. The evolution of FreeBSD and Linux. In ISESE ?06: Proceedings of the 2006 ACM/IEEE International Symposium on Empirical Software Engineering, pages 204--211. ACM Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. B. W. Kernighan and P. J. Plauger. The Elements of Programming Style. McGraw-Hill, New York, second edition, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. B. W. Kernighan and P. J. Plauger. The Elements of Programming Style. McGraw-Hill, New York, second edition, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Z. Li, S. Lu, S. Myagmar, and Y. Zhou. CP-miner: Finding copy-paste and related bugs in large-scale software code. IEEE Transactions on Software Engineering, 32(3):176--192, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. T. J. McCabe. A complexity measure. IEEE Transactions on Software Engineering, 2(4):308--320, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. T. J. McCabe. A complexity measure. IEEE Transactions on Software Engineering, 2(4):308--320, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. L. Parnas. On the criteria to be used for decomposing systems into modules. Communications of the ACM, 15(12):1053--1058, Dec. 1972. Also in {18} pp. 145--155. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. J. W. Paulson, G. Succi, and A. Eberlein. An empirical study of open-source and closed-source software products. IEEE Transactions on Software Engineering, 30(4):246--256, Apr. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Polze and D. Probert. Teaching operating systems: The Windows case. In SIGCSE ?06: Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education, pages 298--302. ACM Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. P. C. Rigby and D. M. German. A preliminary examination of code review processes in open source projects. Technical Report DCS-305-IR, University of Victoria, January 2006.Google ScholarGoogle Scholar
  29. P. H. Salus. A Quarter Century of UNIX. Addison-Wesley, Boston, MA, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. I. Samoladas, I. Stamelos, L. Angelis, and A. Oikonomou. Open source software development should strive for even greater code maintainability. Communications of the ACM, 47(10):83--87, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. H. A. Small, editor. Form and Function: Remarks on Art by Horatio Greenough. University of California Press, Berkeley and Los Angeles, 1947.Google ScholarGoogle Scholar
  32. S. K. Sowe, I. G. Stamelos, and I. Samoladas, editors. Emerging Free and Open Source Software Practices. IGI Publishing, Hershey, PA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. D. Spinellis. Global analysis and transformations in preprocessed languages. IEEE Transactions on Software Engineering, 29(11):1019--1030, Nov. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. D. Spinellis. Global analysis and transformations in preprocessed languages. IEEE Transactions on Software Engineering, 29(11):1019--1030, Nov. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. D. Spinellis. Code Quality: The Open Source Perspective. Addison-Wesley, Boston, MA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. D. Spinellis and C. Szyperski. How is open source affecting software development? IEEE Software, 21(1):28--33, January/February 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. R. Stallman et al. GNU coding standards. Available online http://www.gnu.org/prep/standards/ (January 2006), Dec. 2005.Google ScholarGoogle Scholar
  38. I. Stamelos, L. Angelis, A. Oikonomou, and G. L. Bleris. Code quality analysis in open source software development. Information Systems Journal, 12(1):43--60, 2002.Google ScholarGoogle ScholarCross RefCross Ref
  39. A. S. Tanenbaum. Operating Systems: Design and Implementation. Prentice Hall, Englewood Cliffs, NJ, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. L. Torvalds and D. Diamond. Just for Fun: The Story of an Accidental Revolutionary. HarperInformation, New York, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. G. von Krogh and E. von Hippel. The promise of research on open source software. Management Science, 52(7):975--983, July 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. L. Yu, S. R. Schach, K. Chen, G. Z. Heller, and J. Offutt. Maintainability of the kernels of open source operating systems: A comparison of Linux with FreeBSD, NetBSD and OpenBSD. Journal of Systems and Software, 79(6):807--815, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. L. Yu, S. R. Schach, K. Chen, and J. Offutt. Categorization of common coupling and its application to the maintainability of the Linux kernel. IEEE Transactions on Software Engineering, 30(10):694--706, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A tale of four kernels

      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
      • Published in

        cover image ACM Conferences
        ICSE '08: Proceedings of the 30th international conference on Software engineering
        May 2008
        558 pages
        ISBN:9781605580791
        DOI:10.1145/1368088

        Copyright © 2008 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 10 May 2008

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        ICSE '08 Paper Acceptance Rate56of370submissions,15%Overall Acceptance Rate276of1,856submissions,15%

        Upcoming Conference

        ICSE 2025

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader