Improving Embedded XINU Support for Multicore Architecture

From REU@MU
Jump to: navigation, search

Student: Alex Gebhard
Mentor: Dr. Dennis Brylow

Project Background

Embedded Xinu is a lightweight research and teaching based operating system designed for simplicity. Embedded Xinu is used to teach multiple undergraduate and graduate classes at Marquette University such as COSC 3250: Operating Systems, COSC 2200: Hardware Systems, and COSC 4300: Networks and Internets. Embedded Xinu is based off the Xinu operating system developed by Douglas Comer. Work on Embedded Xinu began in the summer of 2006 to support the MIPS based platform. Currently, Embedded Xinu supports Linksys WRT54GL, Linksys WRT160NL, as well as the Qemu-mipsel virtual machine.

In 2013, Embedded Xinu was ported to the Raspberry Pi 1 B+, called XinuPi. This was the first port to the ARM architecture. The Raspberry Pi 1 B+ is a single core Broadcom BCM2835 SoC with 512 megabytes of RAM. In 2018, the Raspberry Pi 3 B+ was released. Unlike the Raspberry Pi 1 B+, the Raspberry Pi 3 B+ has a multicore Broadcom BCM2837B0 SoC with 1 gigabyte of RAM. A multicore operating system introduces more complexities such as race conditions, livelock, and deadlock. Work has started to port Embedded Xinu to the multicore Raspberry Pi 3B+, called XinuPi3.

Project Description

With the current implementation of XINU on the Raspberry Pi 3B+, some features are lacking multicore support. Similarly, other areas where multicore support is currently implemented could be improved. This summer, we hope to improve multicore support in existing areas of XINU as well as add multicore support in currently unsupported areas.

Tentative Milestones

Week Description
Week 1
  • Meet with project leaders, mentor, and other students
  • Attend Data Science Boot Camp
  • Set milestones and goals for the project duration
  • Discuss project with Dr. Dennis Brylow
Week 2
  • Take course on Responsible Research Conduct
  • Read XINU/OS literature
  • Begin examining atomic primitives in other operating systems
Week 3
  • Research atomic primitives in other operating systems
  • Begin documenting assembly functions and current atomic primitives in XINU
Week 4
  • Discuss atomic primitives with others on team XINU
  • Begin implementing atomic primitives
  • Working on halfway presentation
Week 5
  • Finish implementing atomic primitives
  • Cleanup current assembly functions
  • Present halfway presentation
Week 6
  • Begin work on multicore XINU shell
  • Document how the shell works
  • Begin multicore support in the TTY driver
Week 7
  • Finish multicore TTY driver
  • Implement the rest of the shell
Week 8
  • Begin preparing materials for research poster
  • Document how the USB subsystem works
  • Begin looking into functions/design decisions that need to be adjusted to support multicore
Week 9
  • Complete poster
  • Begin writing research paper
  • Develop a working SD Card driver
Week 10
  • Test SD Card driver
  • Present at poster session
  • Prepare and give oral presentation
  • Submit completed work and logs