[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1953163.1953250acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

Structured linux kernel projects for teaching operating systems concepts

Published: 09 March 2011 Publication History

Abstract

Linux has emerged as a widely-used platform for enabling hands-on kernel programming experience to learn about operating system concepts. However, developing pedagogically-effective programming projects in the context of a complex, production operating system can be a challenge. We present a structured series of five Linux kernel programming projects suitable for a one semester introductory operating systems course to address this issue. Each assignment introduces students to a core topic and major component of an operating system while implicitly teaching them about various aspects of a real-world operating system. Projects are of modest coding complexity, but require students to understand and leverage core components of the Linux operating system. The learning benefits for students from this approach include learning from real-world operating system code examples by expert kernel designers and gaining software engineering experience managing production code complexity. We have successfully used these structured Linux kernel projects to teach over a thousand students in the introductory operating systems course at Columbia University.

References

[1]
C. L. Anderson and M. Nguyen. A Survey of Contemporary Instructional Operating Systems for Use in Undergraduate Courses. Journal of Computing Sciences in Colleges, 21(1):183--190, 2005.
[2]
W. Christopher, S. Proctor, and T. Anderson. The Nachos Instructional Operating System. http://cs.berkeley.edu/ tea/nachos/nachos.ps.
[3]
A. Gaspar and C. Godwin. Root-kits & Loadable Kernel Modules: Exploiting the Linux Kernel for Fun and (Educational) Profit. Journal of Computer Sciences in Colleges, 22(2):244--250, 2006.
[4]
R. Hess and P. Paulson. Linux Kernel Projects for an Undergraduate Operating Systems Course. In Proceedings of SIGCSE 2010, Milwaukee, WI, Mar. 2010.
[5]
D. A. Holland, A. T. Lim, and M. I. Seltzer. A New Instructional Operating System. In Proceedings of SIGCSE 2002, Feb. 2002.
[6]
6.828: Operating System Engineering. http://pdos.lcs.mit.edu/6.828/2010/overview.html.
[7]
O. Laadan, J. Nieh, and N. Viennot. Teaching Operating Systems Using Virtual Appliances and Distributed Version Control. In Proceedings of SIGCSE 2010, Milwaukee, WI, Mar. 2010.
[8]
B. Lawson and L. Barnett. Using iPodLinux in an Introductory OS Course. In Proceedings of SIGCSE 2008, Portland, OR, Mar. 2008.
[9]
J. Nieh and C. Vaill. Experiences Teaching Operating Systems Using Virtual Platforms and Linux. In Proceedings of SIGCSE 2005, St. Louis, MO, Feb. 2005.
[10]
B. Pfaff, A. Romano, and G. Back. The Pintos Instructional Operating System Kernel. In Proceedings of SIGCSE 2009, Chattanooga, TN, Mar. 2009.
[11]
A. Tanenbaum. A UNIX Clone with Source Code for Operating Systems Courses. Operating Systems Review, 21(1):20--29, Jan. 1987.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGCSE '11: Proceedings of the 42nd ACM technical symposium on Computer science education
March 2011
754 pages
ISBN:9781450305006
DOI:10.1145/1953163
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 March 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. computer science educations
  2. open-source software
  3. operating systems

Qualifiers

  • Research-article

Conference

SIGCSE '11
Sponsor:

Acceptance Rates

SIGCSE '11 Paper Acceptance Rate 107 of 315 submissions, 34%;
Overall Acceptance Rate 1,595 of 4,542 submissions, 35%

Upcoming Conference

SIGCSE TS 2025
The 56th ACM Technical Symposium on Computer Science Education
February 26 - March 1, 2025
Pittsburgh , PA , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)21
  • Downloads (Last 6 weeks)3
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Resources for Teaching Operating Systems: A Survey of Instructors and a Literature ReviewACM Transactions on Computing Education10.1145/368885324:4(1-28)Online publication date: 24-Oct-2024
  • (2024)Teaching Process Management with an Operating Systems Simulator: The UR-OS Experience2024 IEEE Biennial Congress of Argentina (ARGENCON)10.1109/ARGENCON62399.2024.10735859(1-6)Online publication date: 18-Sep-2024
  • (2021)SPIFSJournal of Computing Sciences in Colleges10.5555/3447080.344709336:3(111-120)Online publication date: 27-Jan-2021
  • (2018)A User Space-based Project for Practicing Core Memory Management ConceptsProceedings of the 49th ACM Technical Symposium on Computer Science Education10.1145/3159450.3159581(98-103)Online publication date: 21-Feb-2018
  • (2018)A Systematic Map for Improving Teaching and Learning in Undergraduate Operating Systems CoursesIEEE Access10.1109/ACCESS.2018.28717686(60974-60992)Online publication date: 2018
  • (2017)ZygOSProceedings of the 26th Symposium on Operating Systems Principles10.1145/3132747.3132780(325-341)Online publication date: 14-Oct-2017
  • (2017)Using the Nanvix Operating System in Undergraduate Operating System Courses2017 VII Brazilian Symposium on Computing Systems Engineering (SBESC)10.1109/SBESC.2017.33(193-198)Online publication date: Nov-2017
  • (2016)NKEProceedings of the 31st Annual ACM Symposium on Applied Computing10.1145/2851613.2851947(1900-1902)Online publication date: 4-Apr-2016
  • (2016)Experience with an Incremental Approach to Teaching Single Processor Operating Systems2016 International Conference on Learning and Teaching in Computing and Engineering (LaTICE)10.1109/LaTiCE.2016.10(162-166)Online publication date: Mar-2016
  • (2016)Teaching Operating Systems: Just Enough AbstractionICT Education10.1007/978-3-319-47680-3_10(104-111)Online publication date: 16-Oct-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media