Most of the code you need can be found in /usr/src/linux/... on a linux system, or in /Accounts/courses/cs307/Linux2.3/linux-1.2.8/... on the NeXTs. Lots more code is in /Accounts/courses/cs307/Linux2.3/source/....
Have fun.
The difference between your two programs will be that one will use semaphores to enforce the alternation, while the other will use message queues. See the linux manual pages and ipc.info for documentation of the linux IPC constructs. See norace.c for shared memory and semaphore examples.
Since we have set up linux to not have access to the network, you'll need to move files around on DOS floppies. NeXTStep can handle DOS floppies. Put the floppy in the drive, get the File Viewer in front, and select Disks:Check for disks from the Workspace menu. The floppy can now be treated like any NeXTStep folder. To safely remove the disk, select Disks:Eject from the Workspace menu.
To use a DOS floppy from linux, login as root, cd to your own directory, do "mkdir floppy" or something similar, insert the disk into the drive, and then mount the disk like so: "mount -t msdos /dev/fd0 floppy". Now your DOS disk acts like an ordinary linux directory, and you can copy files to and from it. When you're done moving files around, unmount the disk with "unmount floppy". Questions? Mike, Jeremy, or I can help you, as can many of your other classmates, probably.
By the way, we're using DOS floppies instead of linux floppies because NeXTStep recognizes the one but not the other.
Your shell should also trap CTL-C's and tell the user to type CTL-] followed by <return> to quit your shell.
Plan carefully. You'll be expanding on this later.
Work in groups of 2 or 3. No solo programs, please.
Here are a few technical points that may interest you: