Xinu

Last updated
XINU
Developer Douglas Comer
Written in C
Working stateCurrent
Source model Open source [1]
Initial release1981;44 years ago (1981)
Latest release 2nd ed. / 2015;10 years ago (2015)
Repository Xinu_Book_And_Code
Marketing target Higher education, embedded systems
Default
user interface
Command-line interface
Official website www.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]

Contents

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

Xinu first ran on the LSI-11 platform. A Motorola 68000 port was done by Derrick Burns in 1983. 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 2008 by Dennis Brylow.

Later developments

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

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

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, Embedded Xinu, Virtual Xinu

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.[ citation needed ] 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.[ citation needed ]

Virtual Xinu addresses two challenges that limit the effectiveness of Nexos.[ citation needed ] First, the hardware modifications and time investment remain impediments to adoption by interested faculty educators. Second, Xinu uses a shared subnet. This lets student projects interfere with each other, in ways that are difficult to recreate, debug, and understand. Xinu was ported to the QEMU virtual hardware and a virtual networking platform was developed. Dr Ruth used this successfully for 1 semester of the Operating Systems course at the University of Mississippi.[ citation needed ]

Latest versions

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

Compared to other teaching operating systems

SystemLines of codeKernel typeLanguageHardware environmentLacks (vs others)
xv6 ~10kMonolithicCx86 / RISC-VPOSIX layer, user-space drivers
Pintos ~25kMonolithicCx86 (typically under QEMU/Bochs)SMP support, user-space drivers
Nachos ~15kNo kernel. User-space OS simulatorC++MIPS simulatorReal hardware, paging, SMP
Minix ~100k+MicrokernelCx86
Xinu ~10kMonolithicCx86 / ARMPaging, VM, SMP

See also

References

  1. Xinu license
  2. 1 2 3 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