Difference between revisions of "Networking With Xinu"

From Embedded Xinu
Jump to navigation Jump to search
 
(28 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Teaching With Xinu]]
 
[[Category:Teaching With Xinu]]
[[Category:Student Built Xinu]]
+
[[Category:Networking With Xinu]]
 
== Overview ==
 
== Overview ==
Having students develop networking aspects of their own or a provided [[Xinu]] operating system is one of the potential tracks presented for a professor that is [[Teaching With Xinu]].
+
Having students develop networking aspects with their own, or a provided, [[Xinu]] operating system is one of the potential tracks for a professor that is [[Teaching 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 allows students to build networking functionality into Embedded Xinu over the period of the course. Courses may vary in starting point.  Some may begin with a core release of Embedded Xinu, having students implement an Ethernet driver and develop the entire network stack; others may chose to utilize an Embedded Xinu release with the Ethernet driver provided, and have students concentrate on implementing specific protocols within 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.
  
 
== Course Outcomes ==
 
== Course Outcomes ==
Course development can parallel learning objectives and topics associated with many Communication and Networking courses.
+
Course development can parallel learning objectives and topics associated with many Communication and Networking courses. [[Networking With Xinu#References|[1]]]
  
 
=== Topics ===
 
=== Topics ===
Line 30: Line 30:
  
 
== Potential Course Structure ==
 
== Potential Course Structure ==
A course using the below course outline or something similar will introduce students to some fundamental and advanced concepts of operating systems combined with the development in a resource constrained environment.
+
The students will use a base Embedded Xinu release with an Ethernet driver; this kernel can be professor provided or student built in previous courses.  All assignments provided below (after the first one) are intended for groups of two or three students.
 +
 
 +
Optionally, with each new assignment professors may provide students with a proper implementation of the previous assignment.  This allows students to concentrate on implementing the current assignment and avoid distractions caused by implementation blunders in previous assignments.  Alternatively, students can utilizing their same code base throughout the semester, learning the importance of correcting prior mistakes.
 +
 
 
===== Course Outline =====
 
===== Course Outline =====
 
{|
 
{|
 
| Week || || || Topics || || || || Assignments
 
| Week || || || Topics || || || || Assignments
 
|-
 
|-
| 01 || || || C (basics) and OS Structures, Processes || || || || [[Assignment: C Basics|C Basics]]
+
| 01 || || || History of networking and the Internet & specializations of net-centric computing || || || || [[Assignment: Networking Standards|Networking Standards]]  
 
|-
 
|-
| 02 || || || C (functions, control flow) and Processes ||  
+
| 02 || || || Networking standards & 7-layer ISO model || || || || [[Assignment: Packet Demultiplexing|Packet Demultiplexing]]
 
|-
 
|-
| 03 || || || C (pointers, arrays, structs) and Threads || || || || [[Assignment: C Structs and Pointers|C Structs and Pointers]]
+
| 03 || || || Ethernet & Address Resolution Protocol || || || || [[Assignment: ARP|Implementing ARP]]
 
|-
 
|-
| 04 || || || CPU Scheduling || || || || [[Assignment: Synchronous Serial Driver|Synchronous Serial Driver]]
+
| 04 || || || Internet Protocol || || || || [[Assignment: IP-ICMP|Implementing IP & ICMP]]
 
|-
 
|-
| 05 || || || CPU Scheduling ||
+
| 05 || || || Internet Protocol and Internet Control Message Protocol ||
 
|-
 
|-
| 06 || || || Process Synchronization || || || || [[Assignment: Context Switch and Non-Preemptive Scheduling|Context Switch and Non-Preemptive Scheduling]]
+
| 06 || || || Internet Packet Traversal, Security Concerns for IP & ARP || || || || [[Assignment: IP-ICMP-ARP Applications|IP, ICMP and ARP Applications]]
 
|-
 
|-
| 07 || || || Deadlocks || || || || [[Assignment: Priority Scheduling and Process Termination|Priority Scheduling and Process Termination]]
+
| 07 || || || Datagrams - UDP || || || || [[Assignment: UDP Implementation|UDP Development and Implementation]]
 
|-
 
|-
| 08 || || || Main Memory and Virtual Memory ||
+
| 08 || || || Datagrams - UDP, Dynamic Host Configuration Protocol || || || ||  
 
|-
 
|-
| 09 || || || File System Interface || || || || [[Assignment: Preemption and Synchronization|Preemption and Synchronization]]
+
| 09 || || || Dynamic Host Configuration Protocol, Streams - TCP || || || || [[Assignment: DHCP Implementation|DHCP Development and Implementation]]
 
|-
 
|-
| 10 || || || File System Implementation ||  
+
| 10 || || || Streams - TCP ||  
 
|-
 
|-
| 11 || || || Mass-Storage Structure || || || || [[Assignment: Delta Queues|Delta Queues]]
+
| 11 || || || Security Concerns for UDP, TCP || || || || [[Assignment: TCP Implementation|TCP Development and Implementation]]
 
|-
 
|-
| 12 || || || I/O Systems || || || || [[Assignment: Heap Memory|Heap Memory]]
+
| 12 || || || Interaction Protocols for Networked Devices || || || ||  
 
|-
 
|-
| 13 || || || Protection, Security and Distributed System Structures || || || || [[Assignment: Asynchronous Device Driver|Asynchronous Device Driver]]
+
| 13 || || || Wireless Networking ||
 
|-
 
|-
| 14 || || || Distributed System Structures ||  
+
| 14 || || || Network Based Application Development || || || || [[Assignment: Networking Applications|Network Based Applications]]
 
|-
 
|-
| 15 || || || Distributed File Systems || || || || [[Assignment: Ultra-Tiny File System|Ultra-Tiny File System]]
+
| 15 || || || Networking Future ||
 
|}
 
|}
 +
===== Student Outcomes from Completion of Course Assignments =====
 +
Upon completion of all assignments the student should have a grasp of the networking architecture that he or she implemented over the whole course.  The student should be able to answer questions about all implemented protocols as well as general questions about other non-implemented protocols.  The student should also be able to understand the complexities of their implementation.  Given the full implementation of the networking architecture the student should be able to pin-point locations in the architecture where optimization is possible and the difficulty involved.
 +
 +
In addition, students that completed all the assignments should have a grasp of  devices, user interaction and driver/OS interaction within Embedded Xinu.  Other operating system concepts, including threads, memory management, interprocess communication and synchronization, are reinforced through the use of Embedded Xinu.
 +
 
===== Books =====
 
===== Books =====
 +
* Currently this course structure has no suggested books.
 +
==References==
 +
[1] Course topics and learning objectives have been adapted from the ACM's [http://www.acm.org/education/education/education/curric_vols/cc2001.pdf Computing Curricula 2001 Computer Science].
 +
 +
 +
----
 +
 +
<small>This work funded in part by NSF grant DUE-CCLI-0737476.</small>

Latest revision as of 05:23, 19 December 2008

Overview

Having students develop networking aspects with their own, or a provided, Xinu operating system is one of the potential tracks for a professor that is Teaching With Xinu.

A networking course incorporating Embedded Xinu allows students to build networking functionality into Embedded Xinu over the period of the course. Courses may vary in starting point. Some may begin with a core release of Embedded Xinu, having students implement an Ethernet driver and develop the entire network stack; others may chose to utilize an Embedded Xinu release with the Ethernet driver provided, and have students concentrate on implementing specific protocols within 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.

Course Outcomes

Course development can parallel learning objectives and topics associated with many Communication and Networking courses. [1]

Topics

  • History of networking.
  • Overview of the specializations within net-centric computing.
  • Network standards.
  • ISO 7-layer reference model
  • Circuit switching and packet switching
  • Streams and datagrams
  • Concepts and services for specific network layers.
  • Protocol and application overview/implementation.
  • Overview of network security.

Learning Objectives

  • Discuss the evolution of early networks and the Internet.
  • Explain the hierarchical, layered structure of network architecture.
  • Identify and explain the development of important network standards.
  • Discuss the advantages and disadvantages of different types of switching.
  • Demonstrate how a packet traverses the Internet.
  • Implement a simple network using devices running the Embedded Xinu operating system.
  • Discuss and explain the reasoning for network security.

Potential Course Structure

The students will use a base Embedded Xinu release with an Ethernet driver; this kernel can be professor provided or student built in previous courses. All assignments provided below (after the first one) are intended for groups of two or three students.

Optionally, with each new assignment professors may provide students with a proper implementation of the previous assignment. This allows students to concentrate on implementing the current assignment and avoid distractions caused by implementation blunders in previous assignments. Alternatively, students can utilizing their same code base throughout the semester, learning the importance of correcting prior mistakes.

Course Outline
Week Topics Assignments
01 History of networking and the Internet & specializations of net-centric computing Networking Standards
02 Networking standards & 7-layer ISO model Packet Demultiplexing
03 Ethernet & Address Resolution Protocol Implementing ARP
04 Internet Protocol Implementing IP & ICMP
05 Internet Protocol and Internet Control Message Protocol
06 Internet Packet Traversal, Security Concerns for IP & ARP IP, ICMP and ARP Applications
07 Datagrams - UDP UDP Development and Implementation
08 Datagrams - UDP, Dynamic Host Configuration Protocol
09 Dynamic Host Configuration Protocol, Streams - TCP DHCP Development and Implementation
10 Streams - TCP
11 Security Concerns for UDP, TCP TCP Development and Implementation
12 Interaction Protocols for Networked Devices
13 Wireless Networking
14 Network Based Application Development Network Based Applications
15 Networking Future
Student Outcomes from Completion of Course Assignments

Upon completion of all assignments the student should have a grasp of the networking architecture that he or she implemented over the whole course. The student should be able to answer questions about all implemented protocols as well as general questions about other non-implemented protocols. The student should also be able to understand the complexities of their implementation. Given the full implementation of the networking architecture the student should be able to pin-point locations in the architecture where optimization is possible and the difficulty involved.

In addition, students that completed all the assignments should have a grasp of devices, user interaction and driver/OS interaction within Embedded Xinu. Other operating system concepts, including threads, memory management, interprocess communication and synchronization, are reinforced through the use of Embedded Xinu.

Books
  • Currently this course structure has no suggested books.

References

[1] Course topics and learning objectives have been adapted from the ACM's Computing Curricula 2001 Computer Science.



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