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.