[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