Upstream changes:
20150804 dholland System/161 2.0.3 released.
20150714 dholland Fix the serial port FORCE logic meant to prevent
........ interrupt flapping. Thanks to Winnie Wu for a test
........ kernel and workload that reliably repeated the problem.
20150709 dholland Recognize some obvious aliases for disk161 commands.
20150706 dholland Add page on profiling to the manual.
20150706 dholland Add dynamic profiling control to the trace device.
20150703 dholland If profiling, write the profile out if we die().
20150703 dholland Include seek times in disk activity trace output.
20150126 dholland System/161 2.0.2 released.
20150126 dholland Fix brown paper bag release. Sigh.
20150126 dholland System/161 2.0.1 released.
20150121 dholland Fix up some gdb threads issues appearing with gdb 7.8.
20150117 dholland Update included .hgignore file, from Cary Gray.
20150115 dholland System/161 2.0 released.
20150115 dholland Add workaround to make disk rotdelay deterministic.
20150114 dholland Fix stdint.h-related build problems on Linux.
20150114 dholland Fix flock-related build problem on Linux.
20150109 dholland Add software debugger requests to the trace device.
20150105 dholland Make the testsuite run.
20150105 dholland Add support for installing into a chroot/DESTDIR.
20150105 dholland Add man pages for all executables.
Upstream changes:
- Support the CACHE instruction as (for now) a nop.
- Provide the MIPS32 config0 and config1 registers, and pretend to
have 4K each L1 I/D caches. The cache remains fully coherent.
- Don't allow r2000/r3000 (mips-I) style cache flushes.
- Add a disk161 utility for manipulating disk images, and don't
keep disk image sizes in sys161.conf any more.
- Edit/revise the processor docs.
- Fix build with gcc 4.8.
- Provide flock() compat for legacy OSes without it. (Hi, Solaris.)
Changes:
- use flock() on disk images to avoid accidents
- improve gdb interface to treat CPUs as "threads"
- rework tty handling; now behaves when backgrounded
- change disk image names in sample config to match OS/161 usage
- rework timing code and fix bug with bogus large idle counts
- rework and retune main loop; much faster
- use more gcc warnings
System/161 is a machine simulator that provides a simplified but still
realistic environment for OS hacking. It is a 32-bit MIPS system
supporting up to 32 processors, with up to 31 hardware slots each
holding a single simple device (disk, console, network, etc.)
It is used for teaching; the OS/161 instructional OS runs on it.
However, it has also proven useful as a rapid development platform for
bringing up research or experimental kernels.
System/161 supports fully transparent debugging, via remote gdb into
the simulator. It also provides transparent kernel profiling,
statistical monitoring, event tracing (down to the level of individual
machine instructions) and one can connect multiple running System/161
instances together into a network using a "hub" program.
I am upstream for this so I'll maintain the package.