Back in grad school we used the Inferno OS as a learning tool. I don't remember too much about it, but I do remember using Limbo (precursor to Golang) and liking it quite a lot. When Go came out it was really easy to pick up due to my time mucking around Inferno using Limbo.
Are the course notes online?
I'm an EE by degree but I've been getting more interested in the programming side of the house and I'm looking for a "teaching os".
The other option is the perennial favorite, Minix, but I've realized about computing is that there are a lot of thoughts on how to do things correctly and seeing only one way may make you blind.
As an aside, it looks like we've hugged the site to death.
If you want to learn the kernel side, Xv6 is made specifically for a course series at MIT and has a ton of material on how it is designed. It's meant to be super simple for tinkering.
If you're really looking for a more complete OS for perusing the source, I'd probably say OpenBSD. They emphasize clean implementation and documentation, which makes it a good learning tool as well.
Inferno and the other Plan9 family members maybe aren't the best choices IMO. I haven't done a super deep dive, but my impression is that the communities around them are starved for labor and you might not find things as approachable. There's a lot there to learn of course, but you might have more issues.
The communities are niche, but on the other hand Plan 9's internal code style, organization and the liberal use of a few small grand abstractions actually make it easier to study for hobbyists and researchers alike compared to a full modern Unix with all of its intrinsic architectural complexity and real-world cruft (not that OpenBSD isn't one of the best ones in avoiding this).
We (the 9front guys) are generally pretty approachable and cooperative as long as you genuinely want to learn and aren't a complete ass. Starved for labour isn't a bad thing though, less bullshit gets added into the operating system.
What was the exact relationship between Inferno and Plan 9? The documentation said it was "influenced by". Did it share code? Was Limbo used anywhere in Plan 9 (which I assume was written in C)?
They're two independent projects and architecturally quite different (what with the Dis VM being king in Inferno), even though the 9P protocol and much of the Plan 9 userland was reused.
Plan 9 never used Limbo natively from what I know. Only C and Alef. Limbo was ported to it, however.