About Embedded XINU
Embedded XINU is an ongoing research and implementation project in the area of Operating Systems and Embedded Systems. Its goal is to port the XINU Operating System to the MIPS platform by specifically targeting LinkSys WRT54GL routers. While this project is still in progress, our prototype laboratory environment is already being used as the platform for courses in Operating Systems, Hardware Systems, Embedded Systems, and Compilers. We're also working on support for Networking and Internetworking classes.
The Embedded XINU project was conceived and is supervised by Dr. Dennis Brylow and is being conducted by both graduate and undergraduate students in the Math, Statistics, & Computer Science department of Marquette University in Milwaukee, Wisconsin. The first major phase of work on Embedded XINU began in the Summer of 2006.
Guides to Replicate Our Work
In this section we are developing instructions so that other groups can benefit from the work we are doing. These guides can be followed more or less in order to create a relatively inexpensive platform for a custom operating system. As our work develops further, there will be more XINU-specific information.
- Install OpenWRT
- Modify the Linksys hardware
- Connect to a modified router
- Run your own code
- Build a pool of backends
- Running XINU
After this point is our "scratchpad" of information collected mostly during Summer 2006 as research and experimentation was done. It is possible that there is more detailed information here on a few topics, but it is less organized and not as ready for public consumption.
- TODO: (concrete tasks)
- XINU Tasks
- Complete wired NIC driver.
- Start on wireless NIC driver and "RoboSwitch".
- Integrate XINU TCP/IP stack.
- XINU Tasks
- TOTHINK: (abstract goals and wishlists)
- Learn more about the memory structure and underlying hardware.
- How should the loader discover hardware parameters if CFE does not implement device enumeration?
- How do we safely access flash memory without bricking the router?
- http://linux.junsun.net/porting-howto/ - Linux MIPS Porting Guide
- http://www.version6.net/gallery/WRT54GL - WRT54GL Internals Pics Gallery
- http://en.wikipedia.org/wiki/WRT54G - WRT54G Wiki
- http://en.wikipedia.org/wiki/MIPS_architecture - MIPS Architecture
- http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gnu-linker/ - How To Write Linker Scripts
- http://www.embedded.com/shared/printableArticle.jhtml;jsessionid=0LLEHS3YT5KWUQSNDBCSKHSCJUMEIJVN?articleID=9900048 - Linux Porting Guide
- http://courses.cs.vt.edu/~cs2504/spring2006/MIPSDocs/MD00090-2B-MIPS32PRA-AFP-02.50.pdf - MIPS32 Architecture For Programmers