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.
- L. W. Cannon et al. Recommended C style and coding standards. Available online (February 2008) http://sunland.gsfc.nasa.gov/info/cstyle.html.Google Scholar
- 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 ScholarCross Ref
- 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 Scholar
- D. Coleman, D. Ash, B. Lowther, and P.W. Oman. Using metrics to evaluate software system maintainability. Computer, 27(8):44--49, 1994. Google ScholarDigital Library
- M. A. Cusumano and R. W. Selby. Microsoft Secrets. The Free Press, New York, 1995.Google Scholar
- M. A. Cusumano and R. W. Selby. Microsoft Secrets. The Free Press, New York, 1995.Google Scholar
- J. Feller, editor. 5-WOSSE: Proceedings of the Fifth Workshop on Open Source Software Engineering. ACM Press, 2005.Google Scholar
- J. Feller and B. Fitzgerald. Understanding Open Source Software Development. Addison-Wesley, Reading, MA, 2001. Google ScholarDigital Library
- J. Feller, B. Fitzgerald, S. Hissam, and K. Lakhani, editors. Perspectives on Free and Open Source Software. MIT Press, Boston, 2005. Google ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- R. L. Glass. Of open source, Linux .. and hype. IEEE Software, 16(1):126--128, January/February 1999. Google ScholarDigital Library
- M. H. Halstead. Elements of Software Science. Elsevier New Holland, New York, 1977. Google ScholarDigital Library
- S. P. Harbison and G. L. Steele Jr. C: A Reference Manual. Prentice Hall, Englewood Cliffs, NJ, third edition, 1991. Google ScholarDigital Library
- 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 ScholarDigital Library
- J.-H. Hoepman and B. Jacobs. Increased security through open source. Communications of the ACM, 50(1):79--83, 2007. Google ScholarDigital Library
- D. M. Hoffman and D. M. Weiss, editors. Software Fundamentals: Collected Papers by David L. Parnas. Addison-Wesley, Boston, MA, 2001. Google ScholarDigital Library
- 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 ScholarDigital Library
- B. W. Kernighan and P. J. Plauger. The Elements of Programming Style. McGraw-Hill, New York, second edition, 1978. Google ScholarDigital Library
- B. W. Kernighan and P. J. Plauger. The Elements of Programming Style. McGraw-Hill, New York, second edition, 1978. Google ScholarDigital Library
- 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 ScholarDigital Library
- T. J. McCabe. A complexity measure. IEEE Transactions on Software Engineering, 2(4):308--320, 1976. Google ScholarDigital Library
- T. J. McCabe. A complexity measure. IEEE Transactions on Software Engineering, 2(4):308--320, 1976. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- P. H. Salus. A Quarter Century of UNIX. Addison-Wesley, Boston, MA, 1994. Google ScholarDigital Library
- 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 ScholarDigital Library
- H. A. Small, editor. Form and Function: Remarks on Art by Horatio Greenough. University of California Press, Berkeley and Los Angeles, 1947.Google Scholar
- S. K. Sowe, I. G. Stamelos, and I. Samoladas, editors. Emerging Free and Open Source Software Practices. IGI Publishing, Hershey, PA, 2007. Google ScholarDigital Library
- D. Spinellis. Global analysis and transformations in preprocessed languages. IEEE Transactions on Software Engineering, 29(11):1019--1030, Nov. 2003. Google ScholarDigital Library
- D. Spinellis. Global analysis and transformations in preprocessed languages. IEEE Transactions on Software Engineering, 29(11):1019--1030, Nov. 2003. Google ScholarDigital Library
- D. Spinellis. Code Quality: The Open Source Perspective. Addison-Wesley, Boston, MA, 2006. Google ScholarDigital Library
- D. Spinellis and C. Szyperski. How is open source affecting software development? IEEE Software, 21(1):28--33, January/February 2004. Google ScholarDigital Library
- R. Stallman et al. GNU coding standards. Available online http://www.gnu.org/prep/standards/ (January 2006), Dec. 2005.Google Scholar
- 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 ScholarCross Ref
- A. S. Tanenbaum. Operating Systems: Design and Implementation. Prentice Hall, Englewood Cliffs, NJ, 1987. Google ScholarDigital Library
- L. Torvalds and D. Diamond. Just for Fun: The Story of an Accidental Revolutionary. HarperInformation, New York, 2001. Google ScholarDigital Library
- G. von Krogh and E. von Hippel. The promise of research on open source software. Management Science, 52(7):975--983, July 2006. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- A tale of four kernels
Recommendations
The evolution of FreeBSD and linux
ISESE '06: Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineeringIs the nature of Open Source Software (OSS) evolution fundamentally different from that of the traditional and commercially available software systems? Lehman and others conducted a series of empirical studies that found that traditional systems grow at ...
Maintainability of the kernels of open-source operating systems: A comparison of Linux with FreeBSD, NetBSD, and OpenBSD
We compared and contrasted the maintainability of four open-source operating systems: Linux, FreeBSD, NetBSD, and OpenBSD. We used our categorization of common coupling in kernel-based software to highlight future maintenance problems. An unsafe ...
Methodology to evaluate the performance of simulation models for alternative compiler and operating system configurations
Simulation modelers increasingly require greater flexibility for model implementation on diverse operating systems, and they demand high computational speed for efficient iterative simulations. Additionally, model users may differ in preference for ...
Comments