The Marquette University Department of Mathematics, Statistics and Computer Science Xinu Laboratory allows students to create and test operating system components on real hardware. Unlike simulated or emulated laboratory environments, the Xinu Lab loads kernel images from a frontend production machine directly onto backend test machines, where the operating system code is executed with no additional assistance. This "back to basics" approach serves to expose both the underlying complexity and beauty of modern computer hardware, without dumbing down or oversimplifying the interfaces that practitioners face at the lowest levels of operating system and driver development.
Xinu has run on many platforms in the past (DEC PDP-11, Motorola
68000, Intel x86, etc.,) but the Marquette Xinu Laboratory is the
first installation based upon a modern RISC architecture port of
Xinu.
The Marquette Xinu Lab features a pool of Embedded MIPS 32-bit
backends running on the Linksys WRT54GL wireless router platform. Why
simulate a MIPS processor, when you could be running one for real?
See the
Marquette Embedded Xinu
Project Wiki for the latest information on our efforts. We
also maintain a pool of PowerPC-based backends, in the form of Apple
G3 and G4's.
The first release of Embedded Xinu was made public in July of 2007. See the Marquette Embedded Xinu Project Wiki for documentation and the latest information. [xinu_mips-latest.tgz] [xinu_mips-latest.tar.bz2]
Housed within the Systems Laboratory in Cudahy Hall, the
infrastructure for our Embedded Xinu Lab fits into a single, standard
19-inch machine rack, with room to spare.
Pictured at left, the pool of WRT54GL wireless router backends stacks
easily on the lowest shelf of the rack. Mounted above the backend
pool is a dedicated ethernet switch for the private network. The
Marquette University Linux Users Group
server, "Mulug", resides in this rack also, from which the
Marquette Embedded Xinu
Project Wiki is served. Above the keyboard and monitor, "Kroll" (a
Digi Etherlite serial annex) sports 32 serial ports we use to connect
to the various backends. Mounted above Kroll is a KVM switch, and
above the KVM is "Morbius", our gateway between the private and
production networks. Morbius manages the backend pool through DHCP,
TFTP, and daemons that track connections and offer remote console
access.
Pictured in the background, Marquette's pool of PowerPC backends from an
old-style Xinu Lab. Our new Embedded Xinu Lab does not require bulky
monitors for each backend, nor do the students need direct access to the
backend pool.
The Xinu Console Daemon and various associated utilities
provide network clients with connectivity to backend consoles
that are really only connected directly to the console host.
The xinu-console software package is now freely available
for UNIX console hosts and front end clients.
[Gzipped tarball],
[Source RPM for Fedora Core].
The
Xinu
operating system was first conceived by Professor
Douglas Comer,
as a research and instructional tool. Students at Purdue's
Computer Science department continue to take courses with hands-on
programming in the Xinu Laboratory, a facility with dozens of backend
machines that can run student-compiled Xinu kernels on bare hardware.
The Xinu Laboratory is an instrumental part of advanced courses on
operating systems, networking, and internetworking at Purdue.
Despite its age, the Xinu operating system and its associated
textbooks continue to be used at many other Universities around the
world. The remainder of this page is dedicated to efforts to maintain
the Xinu environment, despite rapid changes in available software and
hardware.
Jokingly referred to as the "High Availability" device, this circuit
board allows an RS232 serial port to select any of up to 240 solid state
relays, for the purpose of power cycling backend machines which have locked
up while running student-modified Xinu kernels.
This circuit board was designed, fabricated, assembled, tested, and deployed
at Purdue's West Lafayette campus. The prototype is in continuous use
in the Computer Science building, and has been running with
6 boards, controlling over 80 backend machines, since spring of 2002.
The information below is freely available for educational use.
The circuit board schematic
was created with the assistance of the
XCircuit package.
Here is the netlist.
The circuit board layout was created with
the assistance of the
PCB package. We
thank the maintainers of both PCB and XCircuit for their efforts. The
circuit board silk screen is also
available. Here is the component list.
This patch allows the canonical FTP version of Xinu from Comer's latest textbook to be compiled on a RedHat or Fedora Linux system: [Patch File}.
Source code for the current Xinu Bootdisks can be found in the CVS
repository under /p/xinu/cvs on Purdue CS departmental Unix boxen,
in directory Xinu-BootDisk. Here is the
README
file for the latest version, based upon the linux 2.4.18 kernel boot code.
Source code for the current console tools, which allow remote frontend
machines to establish connections to the serial consoles of the Xinu backends,
can be found in the CVS
repository under /p/xinu/cvs on departmental Unix boxen,
in directory ConsoleTools. Here is the
README
file for the latest version, as well as the
README for the new security
extensions to the server.