Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Oct 1997 21:42:21 +1000
From:      Stephen McKay <syssgm@dtir.qld.gov.au>
To:        sfuqua@pulsar.cs.wku.edu (Stephen Fuqua)
Cc:        freebsd-chat@freebsd.org, syssgm@dtir.qld.gov.au
Subject:   Re: FreeBSD for Operating Systems Course 
Message-ID:  <199710131142.VAA17994@ogre.dtir.qld.gov.au>
In-Reply-To: <199710130146.TAA08173@obie.softweyr.ml.org> from Wes Peters at "Mon, 13 Oct 1997 01:46:02 %2B0000"
References:  <199710120351.WAA09609@pulsar.cs.wku.edu> <199710130146.TAA08173@obie.softweyr.ml.org>

next in thread | previous in thread | raw e-mail | index | archive | help
>Stephen Fuqua writes:
> > I'm writing a short paper as part of my MS comparing BSD with Linux and
> > Minix for use in an undergraduate operating systems course.  The idea
> > would be to compare these systems in terms of using them for a class some
> > C programming and some simple kernel programming exercises like adding a
> > pseudo device or a "do-nothing"  system call, and some code reading. 
> > 
> > At this point I see one big difference between Minix and the other two
> > systems, Minix's source code is tiny compared to BSD or Linux. The author
> > has intentionally kept it simple.

Casting my mind back to my undergraduate OS course days, the most important
aspect was simplicity, which roughly equates to size, or lack thereof.  For
study purposes, performance and ease of installation are unimportant.  You
need a system you can get your head around.

You want your students to absorb some facts presumably through practical
experimentation and not just theory.  So, you should get the simplest device
that shows some real world behaviour that they can play with, and usually
break, but perhaps improve.  I don't count adding a do-nothing system call
as good enough.  I would expect more, or not bother doing the course.
At least I'd expect something along the lines of changing the scheduling
policy or some paging or swapping policy.  Our experiments with biasing
disk priority along with CPU priority showed us how easy it is to make a
total botch of things. :-)

For our course, we used XINU and another homebaked microkernel (really not
much more than a scheduler).  These were simple enough to get your head
around, and simple enough that we could easily find bits to improve.  Part
of the fun was writing a disk driver for some horrendously old PDP11 disk.
Forget which one now, but I should have kept a souvenir.

I recommend that you use Minix, together with its fine book.  Linux
or FreeBSD (well, you could guess which I really prefer) would be more
appropriate as support tools in a compiler course, or web technology
course, or whatever.  Or for a year long postgrad OS research project.
I think they are too complex for your average undergraduate with 20
other things on their mind.  You want them to remember some of your course,
not just marvel at how complex your props are.

> > Have I missed anything, or been unfair anywhere? 

Or perhaps I've been unfair.  I see a clear distinction between teaching
students how to be OS users and teaching them how to be OS builders.  I
have assumed you want them to be OS builders.  If I'm wrong, forget I
was here.

On Monday, 13th October 1997, Wes Peters wrote:
>I welcome contrasting viewpoints, not that I'm likely to find any here.

This is a little meta, but, don't you think we have a higher proportion
of contrasting viewpoints over here in the FreeBSD camp than those other
more fixated types? ;-)

Stephen.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710131142.VAA17994>