about OS/161
| about System/161
| project news
| publications
| license
| credits
download
| guides and resources
| documentation
| for instructors
| bugs
| mailing lists
The site hosting will be moving to os161.org because I went and graduated. I'm also trying to prepare a new toolchain version and a maintenance release, and I'd hoped to get that done before moving the site, but it isn't done yet. Teaser: as a side effect of my thesis work the next release is expected to have experimental support for RISC-V.
OS/161 2.0.3 is out. This contains mostly minor fixes. It also now ships with a runtime deadlock detector: enable "options hangman" in the kernel config to try it out.
System/161 2.0.8 is out. This contains a fix to 2.0.7's fix to 2.0.6's fix to 2.0.5 (sigh) and also a fix for a rather fatal uninitialized variable bug in emufs in 2.0.7.
System/161 2.0.7 is out. This contains a fix to 2.0.6's fix to 2.0.5, alas, and also some other minor improvements.
System/161 2.0.6 is out. Naturally, since I said in the announcement email that 2.0.5 would be the last release for a while, a problem with 2.0.5 promptly cropped up. In particular, the new warning about guest kernels not responding to the console would turn into a flood if the guest kernel went completely comatose with keystrokes pending. Derp. This is now fixed.
System/161 2.0.5 is out. This finally lets you specify memory sizes as e.g. "2M", plus it lets you override the configured memory size, CPU count, and other things from the commandline. This is (or can be) used by the new test scripts in OS/161 2.0.2. You can also now change the reporting interval used by stat161, and I rearranged the columns in the stat161 output to provide more information and less redundancy.
OS/161 2.0.2 is out. This contains mostly minor fixes and a few minor improvements. It also now ships with a script for automatically running tests using Python and pexpect, which may be of use to some people.
System/161 2.0.4 is out. This contains mostly minor fixes, and rolls in the released patch against 2.0.3.
Also, the website has moved to os161.eecs.harvard.edu. Note: Moving it out of my personal tree does not mean I am disowning it or abandoning support for it. The move has administrative causes.
OS/161 2.0.1 is out. This contains the usual round of fixes and a few new tests, the most interesting being a real scheduler workload ("schedpong") using the userlevel semaphores.
System/161 2.0.3 is out. This contains a couple bug fixes, better documentation for kernel profiling, and a fairly obscure feature to allow turning profile collection on and off dynamically.
Aaaaaand 2.0.1 turned out to be a brown paper bag release; make install doesn't work. Please use 2.0.2 instead.
I have posted System/161 2.0.1 with a fix for some gdb thread handling problems that make gdb unstable. (It seems that protocol-level thread ID 0 is special and using it confuses gdb horribly. I'd swear it worked last summer, but it doesn't now.) You'll probably want to update from 2.0 immediately.
2.0 is done! I have posted version 2.0 of both OS/161 and System/161. 2.0 has been in prerelease for six years; I would like to thank everyone who has made it possible, and who's been willing to put up with the unpredictable development schedule and occasional catastrophic bugs during this time. There are not very many changes from the last 1.99.x prereleases; but the changes since 1.x are quite drastic.
Note that in this neck of the woods the ".0" means "it's finally ready", not "I shoved this out the door in a rush and you should wait for 2.1". If you are still using 1.x I encourage you to move to 2.x as soon as your teaching cycle permits.
I have posted version 1.99.10 of System/161. This includes a workaround for the recent randomizer breakage deliberately introduced in OpenBSD but is otherwise identical to 1.99.09.
I have posted version 1.99.08 of OS/161. This is a release candidate for 2.0; if no huge problems arise, 2.0 will likely be very similar or even identical. This version has a lot of smallish changes, tidying up for the big release. There are also a number of new test programs, and I've made the system build and run with gcc 4.8.
I have also (finally) posted a new compiler and toolchain, which I've numbered 2.1; this contains gcc 4.8.3, binutils 2.24, and gdb 7.8.
I have posted version 1.99.09 of System/161. This is a release candidate for 2.0; if no huge problems arise, 2.0 will likely be very similar or even identical. This version is not that different from 1.99.07; I've sorted out the cache control functions, added a disk161 utility for manipulating disk images, improved the docs, and fixed some build problems with recent gcc and (hopefully) on Solaris.
Version 1.99.08 of System/161 is released. Release 2.0 is expected soon, but maybe not in time for the fall semester, and this version contains fixes and cleanup that may as well get out into the world. Most noticeably, it's now a lot faster. Note: it polls for external events much less frequently now than it used to; if you are using the network hardware, please let me know how it goes.
Version 1.99.07 of OS/161 is released. This release contains some significant reorganizations since the last version. I am hoping that this will be the last 1.99.x release before 2.0.
Version 1.99.07 of System/161 is released. This release contains bug fixes and some new control options. I am expecting this to be the last 1.99.x release before 2.0. (It is basically ready to be 2.0 but I want to release OS/161 and System/161 2.0 together.)
Version 2.0.1 of binutils for OS/161 is released. This fixes some compile warnings that appear on some Linux distributions. I have also updated the version of bmake posted on the downloads page; this fixes a build problem on MacOS.
OS/161 1.99.05 is released. This is an interim release of the 2.x branch; it is pretty much ready to use but I want to rework the docs before I call it 2.00. This version collects together all the random patches that have been floating about since 1.99.03 was distributed to our students last spring. It includes an important fix to the trap handler. Anyone who is using 1.99.03 or 1.99.04 will want to update.