This is considered the hardest computing course at UNSW (with the possible exception of the security course). It has a reputation for being brutal and breaking lesser people. 'Survivors' get a t-shirt proclaiming this fact.
This was my favourite course at UNSW, very intense but that's also what made it fun! Many nights spent debugging race conditions and bugs till 4am.. The OS courses at UNSW are all pretty great.
To be clear, the reason it is hard is the grueling pace of the project.
And to be honest, most of the individual tasks were not hard since this was a follow on to another OS course, but Milestone 6 was where shit really hit the fan for me when we needed to implement on-demand paging, and everything was easy enough in user space (catch fault, get the page from disk, map it into memory, restart the thread), but dealing with paging in an event-based kernel where you can't take a fault was pretty painful (where syscalls had a memory component) and resulted in some ghetto memory pinning.
So while this course wasn't really covering much new ground compared to the OS course we had already taken (I do recall some new material about how caches work and when you need to flush them, but not a lot else), the experience is definitely seared into my memory and I remember the details of that project like no other.
EDIT: To be clear, the lectures had a lot of new material, but it was not in the project, and .: not really tested. It did teach us about how things like VMs work.
Note that (according to [1]) a distinction in the introductory OS courses is a required prerequisite for this course. That suggests that mostly students likely thrive in such an intense course will take it. In addition, the course's teacher (Gernot Heiser) achieved the first full verification of an OS kernel [2]. This was a pretty major milestone in both program verification and OS. It's probably an amazing experience to be in such an OS hothouse.
There are pros and cons, however I think this course has its place. It is for people who know they are good at their degree, but are looking for a challenge rather than easily coasting. In this respect I think it is fantastic.
The other side is that it is brutally hard, consumes a lot of time, and leads to a lot of dropouts from the course.
It is purely an elective course. Everyone who does it knows what they are getting in to, and then come out the other end knowing they've passed the test and recommending the course to everyone else. Given that it is one of the most highly praised computing courses at UNSW (along with Security and Algorithms), it must be doing a lot right
Note this is just based off friends experiences. I have never done this course as the timing was never right
I think it was. We got good feedback from TA's who checked our progress to the milestones.
At the time I went through, the work was done on the MIPS L4 microkernel, so the boot loader and much of the system init is done already, and all the work was done in C.
A challenging project seems like a great teaching style, as long as it is finished by a detailed project autopsy (all of the groups sharing) that carries substantial marks too, because a lot of the learning should be by the mistakes.