Difference between revisions of "Teaching With Xinu"

From Embedded Xinu
Jump to navigation Jump to search
 
(4 intermediate revisions by 3 users not shown)
Line 4: Line 4:
 
[[Category:Student Extended Xinu]]
 
[[Category:Student Extended Xinu]]
 
[[Category:Networking With Xinu]]
 
[[Category:Networking With Xinu]]
 +
[[Category:Compiler Construction With Embedded Xinu]]
 
== Overview ==
 
== Overview ==
Several [[:Category:HOWTO|'How To' pages]] on this wiki allow professors and assistants to develop and build a classroom or laboratory setting enabling the modification and use of [[Embedded Xinu]].
+
Several [[:Category:HOWTO|'How To' pages]] on this wiki allow instructors to develop and build a classroom or laboratory setting enabling the modification and use of [[Embedded Xinu]].
  
The set of pages found under the [[:Category:Teaching With Xinu|Teaching With Xinu]] category help a professor understand how to incorporate Embedded Xinu into a course for his or her department's curriculum. A professor can integrate Xinu into many different courses. The Embedded Xinu team at Marquette University has defined several potential course tracks as guidelines for professors. The provided course tracks should not be considered the only possibilities, but merely a few potential tracks of the many that can be developed to let a professor incorporate Embedded Xinu into a curriculum.
+
The set of pages found under the [[:Category:Teaching With Xinu|Teaching With Xinu]] category help an instructor understand how to incorporate Embedded Xinu into a course for his or her department's curriculum. Each of the models is based on an existing course that has been run at Marquette or one of our partner schools.
  
== Tracks ==
+
== Operating Systems Tracks ==
 
==== [[Student Built Xinu]] ====
 
==== [[Student Built Xinu]] ====
 
A student built operating system puts the student in the trenches of operating system development. The student will become intimately involved with the inner workings of an operating system. This will give the student a better understanding of the various systems that work together behind the scenes while an operating system is running. Operating systems topics that can be incorporated in a student built Xinu course include: memory management, scheduling, concurrent processing, device management, file systems and others.
 
A student built operating system puts the student in the trenches of operating system development. The student will become intimately involved with the inner workings of an operating system. This will give the student a better understanding of the various systems that work together behind the scenes while an operating system is running. Operating systems topics that can be incorporated in a student built Xinu course include: memory management, scheduling, concurrent processing, device management, file systems and others.
Line 16: Line 17:
 
Students will learn to extend an operating system by adding kernel level and user level applications.  Given a functional Embedded Xinu operating system the students will have to understand and manipulate existing operating system code to create additional operating system features.  To add more applications to the operating system students will have to understand the interactions between the program in design and the operating system's device and kernel interaction calls.  Programming for embedded devices allows students to engage in development on small resource constrained environments.  Through extending the existing Embedded Xinu operating system a student learns to use and understand code not written by the student and develops advanced operating system concepts.
 
Students will learn to extend an operating system by adding kernel level and user level applications.  Given a functional Embedded Xinu operating system the students will have to understand and manipulate existing operating system code to create additional operating system features.  To add more applications to the operating system students will have to understand the interactions between the program in design and the operating system's device and kernel interaction calls.  Programming for embedded devices allows students to engage in development on small resource constrained environments.  Through extending the existing Embedded Xinu operating system a student learns to use and understand code not written by the student and develops advanced operating system concepts.
  
 +
== Networking ==
 
==== [[Networking With Xinu]] ====
 
==== [[Networking With Xinu]] ====
A networking course incorporating Embedded Xinu can have students build a networking functionality into Embedded Xinu over the period of the course.  Courses may vary in starting point; some choosing to use a core Embedded Xinu release and having students build the entire network stack and ethernet driver.  While others may choose an Embedded Xinu release with the ethernet driver available so that the students can concentrate on other parts of the network stack.  Network stack implementation assignments for students can parallel various networking lectures that traverse the stack over the course of the semester, terminating in the students implementing an application that uses the developed network stack.
+
A networking course incorporating Embedded Xinu can have students build networking functionality into Embedded Xinu over the period of the course.  Courses may vary in starting point; some choosing to use a core Embedded Xinu release and having students build the entire network stack and ethernet driver.  While others may choose an Embedded Xinu release with the ethernet driver available so that the students can concentrate on other parts of the network stack.  Network stack implementation assignments for students can parallel various networking lectures that traverse the stack over the course of the semester, terminating in the students implementing an application that uses the developed network stack.
 +
 
 +
== Compilers ==
 +
==== [[Compiler Construction With Embedded Xinu]] ====
 +
Including Embedded Xinu in a compiler construction course allows students to explore the compilation of high level language constructs that rely on interacting with the underlying runtime. Many traditional compilers courses simply target a processor or simulator, but by targeting a ''platform'' (a processor and operating system combination) one can extend the source language to include more advanced language features such as I/O operations and thread creation, manipulation, and concurrency. This also allows students to run their test cases on real hardware and see these programs actually interacting with a real runtime. In modern programming these high level language features are vital, and it is important for students to see what the processor and runtime are doing when they use these features in their own programs.  
  
 
----
 
----
  
 
<small><small>This work funded in part by NSF grant DUE-CCLI-0737476.</small></small>
 
<small><small>This work funded in part by NSF grant DUE-CCLI-0737476.</small></small>

Latest revision as of 20:39, 26 July 2010

Overview

Several 'How To' pages on this wiki allow instructors to develop and build a classroom or laboratory setting enabling the modification and use of Embedded Xinu.

The set of pages found under the Teaching With Xinu category help an instructor understand how to incorporate Embedded Xinu into a course for his or her department's curriculum. Each of the models is based on an existing course that has been run at Marquette or one of our partner schools.

Operating Systems Tracks

Student Built Xinu

A student built operating system puts the student in the trenches of operating system development. The student will become intimately involved with the inner workings of an operating system. This will give the student a better understanding of the various systems that work together behind the scenes while an operating system is running. Operating systems topics that can be incorporated in a student built Xinu course include: memory management, scheduling, concurrent processing, device management, file systems and others.

Student Extended Xinu

Students will learn to extend an operating system by adding kernel level and user level applications. Given a functional Embedded Xinu operating system the students will have to understand and manipulate existing operating system code to create additional operating system features. To add more applications to the operating system students will have to understand the interactions between the program in design and the operating system's device and kernel interaction calls. Programming for embedded devices allows students to engage in development on small resource constrained environments. Through extending the existing Embedded Xinu operating system a student learns to use and understand code not written by the student and develops advanced operating system concepts.

Networking

Networking With Xinu

A networking course incorporating Embedded Xinu can have students build networking functionality into Embedded Xinu over the period of the course. Courses may vary in starting point; some choosing to use a core Embedded Xinu release and having students build the entire network stack and ethernet driver. While others may choose an Embedded Xinu release with the ethernet driver available so that the students can concentrate on other parts of the network stack. Network stack implementation assignments for students can parallel various networking lectures that traverse the stack over the course of the semester, terminating in the students implementing an application that uses the developed network stack.

Compilers

Compiler Construction With Embedded Xinu

Including Embedded Xinu in a compiler construction course allows students to explore the compilation of high level language constructs that rely on interacting with the underlying runtime. Many traditional compilers courses simply target a processor or simulator, but by targeting a platform (a processor and operating system combination) one can extend the source language to include more advanced language features such as I/O operations and thread creation, manipulation, and concurrency. This also allows students to run their test cases on real hardware and see these programs actually interacting with a real runtime. In modern programming these high level language features are vital, and it is important for students to see what the processor and runtime are doing when they use these features in their own programs.


This work funded in part by NSF grant DUE-CCLI-0737476.