Xinu

XINU
DeveloperDouglas Comer
Written inC
Working stateCurrent
Source modelOpen source[1]
Initial release1981; 43 years ago (1981)
Latest release2nd ed. / 2015; 9 years ago (2015)
RepositoryXinu_Book_And_Code
Marketing targetHigher education, embedded systems
Default
user interface
Command-line interface
Official websitewww.xinu.cs.purdue.edu

XINU Is Not Unix (XINU, a recursive acronym), is an operating system for embedded systems,[2] originally developed by Douglas Comer for educational use at Purdue University in the 1980s. The name is both recursive, and is Unix spelled backwards. It has been ported to many hardware platforms, including the DEC PDP-11 and VAX systems, Motorola 68k (Sun-2 and Sun-3 workstations, AT&T UNIX PC, MECB), Intel x86, PowerPC G3, MIPS, ARM architecture and AVR (atmega328p/Arduino). Xinu was also used for some models of Lexmark printers.[2]

Despite its name suggesting some similarity to Unix, Xinu is a different type of operating system, written with no knowledge of the Unix source code, or compatibility goals. It uses different abstractions, and system calls, some with names matching those of Unix, but different semantics.[2]

History

[edit]

Xinu first ran on the LSI-11 platform. A Motorola 68000 port was done by Derrick Burns in 1984. A VAX port was done in 1986 by Comer and Tom Stonecypher, an IBM PC compatible port in 1988 by Comer and Timothy Fossum, a second Motorola 68000 (Sun 3) port circa 1988 by Shawn Ostermann and Steve Chapin, a Macintosh platform port in 1989 by Comer and Steven Munson, an Intel 80486 version by John Lin in 1995, a SPARC port by Jim Griffioen, and a PowerPC port in 2005 and MIPS port of Embedded Xinu in 2006 by Dennis Brylow.

Later developments

[edit]

Dennis Brylow at Marquette University has ported Xinu to both the PowerPC and MIPSEL (little-endian MIPS) processor architectures. Porting Xinu to reduced instruction set computing (RISC) architectures greatly simplified its implementation, increasing its ability to be used as a tool for teaching and research.

MIPSEL was chosen as a target architecture due to the proliferation of the MIPSEL-based WRT54GL router and the cool incentive that motivates some students to become involved in projects. The first embedded Xinu systems laboratory based on the WRT54GL router was developed at Marquette University. In collaboration with the Marquette Xinu team, an embedded Xinu laboratory was formed at the University of Mississippi, laying the groundwork for further work on developing a Virtual Xinu Laboratory.

Embedded Xinu

[edit]

Embedded Xinu is a fresh reimplementation of the Xinu design, in ANSI C, on an embedded RISC architecture. The MIPS port of Embedded Xinu was developed from 2006 to 2010 at Marquette University, under the direction of Dr. Dennis Brylow. The Embedded Xinu operating system is copyright (c) 2007, 2008, 2009, and 2010 by Douglas Comer and Dennis Brylow.

University of Mississippi Embedded Xinu Laboratory

[edit]

The Xinu Laboratory in the University of Mississippi's Department of Computer and Information Science was formed during the summer of 2008 by Dr. Paul Ruth. Assisting him in the project were Jianshu Zhao and Patrick Hoover, who were both graduate students at the time. Also assisting him were Chelsea Norman and Kevin Kent, who were undergraduates at the time. The initial laboratory is based on the Marquette University Embedded Xinu Laboratory. Located in the server room of Weir Hall on the campus of the University of Mississippi, is composed of a dozen modified Linksys WRT54GL wireless routers, a 32 port Digi Etherlite serial annex, a 24 port 10/100 Mbit/s Ethernet switch, a BayTech serial controlled power strip, and quite a few wires. The system is controlled by a standard PC running Debian Linux. The whole system cost less than $3000, not including the PC.

The WRT54G routers use the MIPSEL architecture and are used as backend devices on which the Xinu embedded operating system runs. The PC runs several daemons which enable and manage the users ability to access the backends.

Nexos Project

[edit]

The Nexos Project is a joint effort between Marquette University, the University at Buffalo, and the University of Mississippi to build curriculum materials and a supporting experimental laboratory for hands-on projects in computer systems courses. The approach focuses on low cost, flexible, commodity embedded hardware, freely available development and debugging tools, and a fresh implementation of a classic operating system, Embedded Xinu, that is ideal for student exploration. Virtual Xinu addresses two challenges that limit the effectiveness of Nexos. First, potential faculty adopters have clearly indicated that even with the current minimal monetary cost of installation, the hardware modifications, and time investment remain troublesome factors that scare off interested educators. Second, overcoming inherent complications that arise due to the shared subnet that allow student projects to interfere with each other in ways that are difficult to recreate, debug, and understand. Ultimately, porting the Xinu operating systems to QEMU virtual hardware, and developing the virtual networking platform have produced results showing success using Virtual Xinu in the classroom during one semester of the Operating Systems course at the University of Mississippi by Dr Ruth.

Latest Versions

[edit]

There are several versions of Xinu available for platforms such as an x86, ARM, AVR (Arduino) and MIPS. The last versions by Douglas Comer is for both the Intel x86 (Galileo) and ARM Cortex-A8 (BeagleBone Black).[3] The version for AVR requires 32 KB of flash, thus Arduino Uno boards and alike are supported.[4] The source code of these versions is freely available.[5]

See also

[edit]

References

[edit]
  1. ^ Xinu license
  2. ^ a b c Garfinkel, Simson; Spafford, Gene; Schwartz, Alan (2003). Practical UNIX and Internet Security. O'Reilly. p. 19.
  3. ^ Comer, Douglas (2015). Operating System Design - The Xinu Approach, Second Edition. United States of America: CRC Press. ISBN 9781498712439.
  4. ^ Xinu AVR version (Arduino)
  5. ^ Xinu avr atmega328p source code
[edit]