Xinu

Operating system

For the unrelated software company, see mt Xinu. For the unrelated alien warlord, see Xenu.

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Xinu" – news · newspapers · books · scholar · JSTOR (February 2015) (Learn how and when to remove this message)

|

Operating system

XINUDeveloper| Douglas Comer

|

Written in| C
Working state| Current
Source model| Open source[1]
Initial release| 1981; 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]

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 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 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]

* Free and open-source software portal

* Minix
* xv6
* List of operating systems
* Timeline of operating systems

## 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

## External links

[edit]

* Official website
* Douglas Comer at Purdue University
* Embedded Xinu and RISC Xinu at Marquette University
* Books On Computer Architecture and Operating Systems
* Xinu for the LSI-11 in the Unix Archive
* XINU FAQ (very old)
* installation instructions
* University of Mississippi embedded Xinu lab
* Nexos Project

* v
* t
* e

Free and open-source software

General|

* Alternative terms for free software
* Comparison of open-source and closed-source software
* Comparison of source-code-hosting facilities
* Free software
* Free software project directories
* Gratis versus libre
* Long-term support
* Open-source software
* Open-source software development
* Outline
* Timeline

Software
packages|

* Audio
* Bioinformatics
* Codecs
* Configuration management
* Drivers
* Graphics
* Wireless
* Health
* Mathematics
* Office suites
* Operating systems
* Routing
* Television
* Video games
* Web applications
* E-commerce
* Android apps
* iOS apps
* Commercial
* Formerly proprietary
* Formerly open-source

Community|

* Free software movement
* History
* Open-source-software movement
* Events
* Advocacy

Organisations|

* Free Software Movement of India
* Free Software Foundation

Licenses|

* AFL
* Apache
* APSL
* Artistic
* Beerware
* BSD
* Creative Commons
* CDDL
* EPL
* Free Software Foundation
* GNU GPL
* GNU AGPL
* GNU LGPL
* ISC
* MIT
* MPL
* Python
* Python Software Foundation License
* Shared Source Initiative
* Sleepycat
* Unlicense
* WTFPL
* zlib

| Types and
standards|

* Comparison of licenses
* Contributor License Agreement
* Copyleft
* Debian Free Software Guidelines
* Definition of Free Cultural Works
* Free license
* The Free Software Definition
* The Open Source Definition
* Open-source license
* Permissive software license
* Public domain

|

Challenges|

* Digital rights management
* License proliferation
* Mozilla software rebranding
* Proprietary device drivers
* Proprietary firmware
* Proprietary software
* SCO/Linux controversies
* Software patents
* Software security
* Tivoization
* Trusted Computing

Related
topics|

* Forking
* GNU Manifesto
* Microsoft Open Specification Promise
* Open-core model
* Open-source hardware
* Shared Source Initiative
* Source-available software
* The Cathedral and the Bazaar
* Revolution OS

* Portal
* Category

* v
* t
* e

Operating systems

General|

* Comparison
* Forensic engineering
* History
* List
* Timeline
* Usage share
* User features comparison

Variants|

* Disk operating system
* Distributed operating system
* Embedded operating system
* Hobbyist operating system
* Just enough operating system
* Mobile operating system
* Network operating system
* Object-oriented operating system
* Real-time operating system
* Supercomputer operating system

Kernel|

| Architectures|

* Exokernel
* Hybrid
* Microkernel
* Monolithic
* Multikernel
* vkernel
* Rump kernel
* Unikernel

|

Components|

* Device driver
* Loadable kernel module
* User space and kernel space

Process management|

| Concepts|

* Computer multitasking (Cooperative, Preemptive)
* Context switch
* Interrupt
* IPC
* Process
* Process control block
* Real-time
* Thread
* Time-sharing

|

Scheduling
algorithms|

* Fixed-priority preemptive
* Multilevel feedback queue
* Round-robin
* Shortest job next

Memory management,
resource protection|

* Bus error
* General protection fault
* Memory paging
* Memory protection
* Protection ring
* Segmentation fault
* Virtual memory

Storage access,
file systems|

* Boot loader
* Defragmentation
* Device file
* File attribute
* Inode
* Journal
* Partition
* Virtual file system
* Virtual tape library

Supporting concepts|

* API
* Computer network
* HAL
* Live CD
* Live USB
* Shell
* CLI
* User interface
* PXE

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template