[luau] ics412: operating systems

Charles Lockhart lockhart at jeans.ifa.hawaii.edu
Mon Sep 30 08:13:00 PDT 2002


Hey Jimen,

Sorry, should have been more specific, but when writing my initial email 
I was in the middle of a little margarita party.

The shell program was really a shell simulator that would provide basic 
shell functionality, parse the command line, find the command, redirect 
stdin/stdout, pipe output/input between commands/programs.  It's just 
one of a dozen projects that are:

1. Observing Linux Behavior: understanding the /proc  file system and 
what it represents, what's there and how to get at it
2. Shell Program: intro to UNIX-style shells, putting processes in the 
background, redirecting stdin/stdout, shell pipes.
3. Kernel Timers: how the kernel maintains time, slight intro to 
understanding user/kernel time.
4. Kernel Modules: how to write, compile, install, remove, as part of 
the /proc filesystem.
5. System Calls: how they're linked, write your own, printk(), building 
the kernel, cleaning up.
6. Shared Memory: the api, the implementation.
7. Virtual Memory: the virtual address space, memory areas, adress 
translation, etc.
8. Synchronization Mechanisms: blocking tasks, wait queus, etc.
9. The Scheduler: process management, states, implementation, fair-share 
scheduling.
10. Device Drivers: driver organization, more on modules, etc.
11. File systems: the virtual file system, directories, an ms-dos file 
system (why I don't know, maybe it's simpler).
12. File i/o: open and close operations, rd/wr ops, etc., what's really 
going on, how its implemented.

The projects look ok, they provide a brief intro into a lot of different 
topics that offer the student an opportunity to mess with the code, and 
they seem to complement the rest ( the majority) of the class, which is 
"theory".  I just can't imagine the projects being as useful to someone 
who's going to graduate in the next year and is going to try getting a 
job.  But maybe I'm just getting whiny in my old age.

-Charles


Jimen Ching wrote:

>On Sun, 29 Sep 2002, Warren Togami wrote:
>  
>
>>IMHO, it isn't that Linux is too hard... they just put almost zero effort
>>into giving resources to the students in getting them acclimated.
>>    
>>
>
>Have you looked at the Linux kernel sources?  I have.  There are a few
>projects out there that are very hard to contribute to.  These projects
>include the Linux kernel, GCC, Samba, X11 and a few others.  The reason is
>that they are very COMPLEX systems and it is hard to wrap your head around
>them in a short amount of time.  Students have about four months of study
>time.  Not nearly enough time to learn about the Linux kernel internals
>enough to make modifications to it.
>
>Sure you can write a simple kernel module.  But I would imagine an OS
>course would cover things like filesystems, scheduling, memory management,
>and perhaps, networking.  These are not simple sub-systems of the Linux
>kernel.  This is why, as Charles mentioned, Minix was used.  Minix is a
>lot smaller, thus easier for a student to read the entire source tree and
>remember it for class.  There is no way to do that with Linux.  There are
>lots of features in Linux that will simply be overkill for an OS course.
>Using a kernel with such features will only confuse the students.
>  
>






More information about the LUAU mailing list