
Project: A Simple Operating System - ramgorur
http://www.cse.unsw.edu.au/~cs9242/14/project/index.shtml#project-a-simple-operating-system
======
lobe
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.

~~~
wilg
Do you think this is an effective teaching style?

~~~
Eridrus
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.

------
panic
The OS class I took at UC Berkeley (back in 2010) was in Java, which sucked
all the fun out of it. Seeing other universities' OS courses always makes me
feel a little jealous.

~~~
wolfgke
How can an OS be written in Java? The only experiment into this direction that
I know of is Jnode ([http://www.jnode.org/](http://www.jnode.org/)), which is
not really mature and half-dead.

~~~
panic
It ran user programs on a virtual CPU, also written in Java. Syscalls and page
faults would call out to your code, which ran in the same JVM as the virtual
CPU. You can read more about it here:
[http://www.cs.berkeley.edu/~kubitron/courses/cs162-F05/Nacho...](http://www.cs.berkeley.edu/~kubitron/courses/cs162-F05/Nachos/walk/walk.html)

------
optimuscoprime
[http://gernot-heiser.org/OSHoF/](http://gernot-heiser.org/OSHoF/)

------
javert
Makes me want to be in school again. Wait... haven't finished grad school yet.
Damn.

------
bwrightau
I recorded a video of the swap test and executing some programs on our
implementation of SOS. The microphone is broken badly..
[https://www.youtube.com/watch?v=4iH15NIizc4](https://www.youtube.com/watch?v=4iH15NIizc4)

This is connected over Ethernet and serial to a Sabre Lite Mx6:
[http://www.element14.com/community/community/designcenter/si...](http://www.element14.com/community/community/designcenter/single-
board-computers/sabrelite/)

------
curiousDog
Doesn't every university have an OS class like this? Stanford has Pintos,
Purdue has Xinu, CMU has their own and so on. Infact, this seems a lot simpler
(which is probably good) than Xinu.

~~~
ramgorur
not much familiar with xinu, but this course mainly uses seL4 which is a
completely different breed than pintos, xv6 etc.

------
cguess
And now I remember why I'm glad I'm not in school anymore...

~~~
cgag
It makes me really want to go back to school.

------
NamTaf
This looks really fun and reminds me of my time studying Mech Eng where we got
given big group design projects. Those were lots of late/unending nights and
long days in labs but honestly it's those times with good friends hammering
through tough work like this that stick in my mind as the best part about uni.

Well, that and the pub. But it ranks up there!

------
salem
This was hands down my favorite course at UNSW.

------
bigdatta
There's a similar class at UIUC that all computer engineering undergrads have
to take.
[https://courses.engr.illinois.edu/ece391/assignments/mp/mp3/...](https://courses.engr.illinois.edu/ece391/assignments/mp/mp3/mp3_sp15.pdf)

------
slagfart
I'm a victorian (UniMelb) who has moved to Sydney fairly recently. What are
the good meetups in Sydney for recent CompSci graduates?

~~~
antmldr
Specifically, I've been to a few of the Functional Programming meetups-
they've been good so far. UNSW and USYD are hubs for the CS community in
general. As a UTS grad, there wasn't much but Business Analysis going on
there.

Generally, recommendation would be to pick a few topics that you're interested
and find related communities and meetups. You'll find interesting people
through osmosis.

------
fit2rule
Looks great - would love to see the results of some of the students.

------
dmishe
It does not look like the source code is available?

~~~
reitzensteinm
This is an assignment for a university course.

~~~
dmishe
It has a supporting code with headers and build helpers

------
lixman
Looks nice, great project

------
Hobotron1
I never got a chance to take the Systems Programming or OS Dev courses while
in school- does anyone know of any online courses (or textbooks) that, by the
end of it, will have you with a working toy OS through the exercises?

~~~
yitchelle
What is stopping you from doing this course project right now? Not meant as a
criticism.

~~~
zerr
Before jumping to the exercise/project/exam parts, you need to study the
theory, no? Unfortunately, lecture videos are password protected - only for
UNSW associated persons...

~~~
analognoise
If only somebody reading this had said password and was willing to share
it.... (anybody?)

