Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Running on the bare metal with GeekOS

Published: 01 March 2004 Publication History

Abstract

Undergraduate operating systems courses are generally taught using one of two approaches: abstract or concrete. In the abstract approach, students learn the concepts underlying operating systems theory, and perhaps apply them using user-level threads in a host operating system. In the concrete approach, students apply concepts by working on a real operating system kernel. In the purest manifestation of the concrete approach, students implement operating system projects that run on real hardware.GeekOS is an instructional operating system kernel which runs on real hardware. It provides the minimum functionality needed to schedule threads and control essential devices on an x86 PC. On this foundation, we have developed projects in which students build processes, semaphores, a multilevel feedback scheduler, paged virtual memory, a filesystem, and inter-process communication. We use the Bochs emulator for ease of development and debugging. While this approach (tiny kernel run on an emulator) is not new, we believe GeekOS goes further towards the goal of combining realism and simplicity than previous systems have.

References

[1]
B. Atkin and E. G. Sirer. PortOS: An Educational Operating System for the Post-PC Environment. In Proceedings of the ACM Technical Symposium on Computer Science Education, 2002.]]
[2]
GNU Binutils: http://www.gnu.org/software/binutils, 2003.]]
[3]
Bochs: http://bochs.sourceforge.net, 2003.]]
[4]
W. A. Christopher, S. J. Procter, and T. E. Anderson. The Nachos Instructional Operating System. In Proceedings of the 1993 Winter USENIX Conference, pages 481--488, 1993.]]
[5]
J. Dickinson. Operating Systems Projects Built on a Simple Hardware Simulator. In Proceedings of the ACM Technical Symposium on Computer Science Education, 2000.]]
[6]
J. L. Donaldson. An Architecture-Dependent Operating System Project Sequence. In Proceedings of the ACM Technical Symposium on Computer Science Education, 2001.]]
[7]
G. Fankhauser, C. Conrad, E. Zitzler, and B. Plattner. Topsy --- A Teachable Operating System: http://www.tik.ee.ethz.ch/~topsy/book/topsy_1.1.pdf, 2000.]]
[8]
GCC Home Page: http://gcc.gnu.org, 2003.]]
[9]
GDB: The GNU Project Debugger: http://www.gnu.org/software/gdb, 2003.]]
[10]
GeekOS: http://geekos.sourceforge.net, 2003.]]
[11]
D. A. Holland, A. T. Lim, and M. I. Seltzer. A New Instructional Operating System. In Proceedings of the ACM Technical Symposium on Computer Science Education, 2002.]]
[12]
Intel. Intel Architecture Software Developer's Manual. Intel, 1997.]]
[13]
T. Jim, G. Morrisett, D. Grossman, M. Hicks, J. Cheney, and Y. Wang. Cyclone: A Safe Dialect of C. In Proceedings of the USENIX Annual Technical Conference, pages 275--288, June 2002.]]
[14]
The Netwide Assembler: http://nasm.sourceforge.net, 2003.]]
[15]
T. Nicholas and J. A. Barchanski. TOS - An Educational Distributed Operating System in Java. In Proceedings of the ACM Technical Symposium on Computer Science Education, 2001.]]
[16]
D. M. Ritchie and K. Thompson. The UNIX Time-Sharing System. Communications of the ACM, 17(7), 1974.]]
[17]
T. Shanley. Protected Mode Software Architecture. Addison-Wesley, 1996.]]
[18]
A. Silberschatz and P. Galvin. Applied Operating System Concepts. John Wiley and Sons, 1999.]]
[19]
A. S. Tanenbaum and A. S. Woodhull. Operating Systems: Design and Implementation. Prentice Hall, second edition, 1997.]]
[20]
F. van Gilluwe. The Undocumented PC: A Programmer's Guide to I/O, CPUs, and Fixed Memory Areas. Addison-Wesley, second edition, 1996.]]
[21]
Virtutech: Simulators for hardware and software engineering: http://www.virtutech.com, 2003.]]

Cited By

View all
  • (2024)Using Embedded Xinu to Teach Operating Systems on Baremetal RISC-VProceedings of the 55th ACM Technical Symposium on Computer Science Education V. 110.1145/3626252.3630959(380-386)Online publication date: 7-Mar-2024
  • (2020)Using TOST in Teaching Operating Systems and Concurrent Programming ConceptsAdvances in Science, Technology and Engineering Systems Journal10.25046/aj0506105:6(96-107)Online publication date: 2020
  • (2020)Hardware-Accelerated Platforms and Infrastructures for Network Functions: A Survey of Enabling Technologies and Research StudiesIEEE Access10.1109/ACCESS.2020.30082508(132021-132085)Online publication date: 2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGCSE Bulletin
ACM SIGCSE Bulletin  Volume 36, Issue 1
March 2004
501 pages
ISSN:0097-8418
DOI:10.1145/1028174
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGCSE '04: Proceedings of the 35th SIGCSE technical symposium on Computer science education
    March 2004
    544 pages
    ISBN:1581137982
    DOI:10.1145/971300
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: 01 March 2004
Published in SIGCSE Volume 36, Issue 1

Check for updates

Author Tags

  1. education
  2. emulation
  3. hardware
  4. operating systems

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)1
Reflects downloads up to 16 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Using Embedded Xinu to Teach Operating Systems on Baremetal RISC-VProceedings of the 55th ACM Technical Symposium on Computer Science Education V. 110.1145/3626252.3630959(380-386)Online publication date: 7-Mar-2024
  • (2020)Using TOST in Teaching Operating Systems and Concurrent Programming ConceptsAdvances in Science, Technology and Engineering Systems Journal10.25046/aj0506105:6(96-107)Online publication date: 2020
  • (2020)Hardware-Accelerated Platforms and Infrastructures for Network Functions: A Survey of Enabling Technologies and Research StudiesIEEE Access10.1109/ACCESS.2020.30082508(132021-132085)Online publication date: 2020
  • (2020)A Virtual Reality Simulator to Assist in Memory Management LecturesComputational Science and Its Applications – ICCSA 202010.1007/978-3-030-58820-5_58(810-825)Online publication date: 30-Sep-2020
  • (2018)Balancing Theory and Practice in an Introductory Operating Systems CourseICT Education10.1007/978-3-030-05813-5_24(362-375)Online publication date: 31-Dec-2018
  • (2016)Synchron-ITS: An Interactive Tutoring System to Teach Process Synchronization and Shared Memory Concepts in an Operating Systems Course2016 International Conference on Collaboration Technologies and Systems (CTS)10.1109/CTS.2016.0047(180-187)Online publication date: Oct-2016
  • (2015)The JaeOS Project and the μARM EmulatorProceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education10.1145/2729094.2742596(3-8)Online publication date: 22-Jun-2015
  • (2015)MiniOSProceedings of the 46th ACM Technical Symposium on Computer Science Education10.1145/2676723.2677299(430-435)Online publication date: 24-Feb-2015
  • (2008)Implementation of threads as an operating systems projectACM SIGCSE Bulletin10.1145/1352322.135220040:1(187-191)Online publication date: 12-Mar-2008
  • (2008)Implementation of threads as an operating systems projectProceedings of the 39th SIGCSE technical symposium on Computer science education10.1145/1352135.1352200(187-191)Online publication date: 12-Mar-2008
  • 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