On Thu, 19 Jan 2006, Olwe Bottorff wrote: > Two questions: > 1) What does it mean when Linux says on shutdown > "unmounting pipe file system"? IIRC, it's a virtual filesystem. Named pipes go into the normal file system, while unnamed pipes (such as those created with the pipe(2) system call) are put onto the pipefs. This way, every descriptor has some file on some file system associated with it. > > 2) I found a neat book "Code Reading, The Open Source Perspective" by > Diomidis Spinellis which does a lot to explain the real-world details of > software development. Is there a similar book that would tell me such > fun facts as my first question about "pipe file system"? Google is your friend. It'll bring up: http://cdrom.gnutemberg.org/LDP/guide/lki.pdf Which has some discussion of the pipefs file system. For more information, you probably want to google the linux kernel mailing list archive. And then read the source code. Lesson number one, from a professional device driver writer: the important information is never written down in the documentation. The advantage of open source is that you don't have to disassemble the OS to figure things out (and yes, Virginia, I have have disassembled more than one OS). > > I'm starting compsci grad school and I'm supposed to help an instructor > put together a new operating system class. I'd like to find materials > that really goes into the nitty-gritty of a Linux or BSD box. Before, > they used Tannenbaum or Silberschatz which is fine for the theoretical > level, but not on-the-ground real world Linux or BSD. For example, what > would be a good real world Unix app to grab the source code for and > snoop/hack around? Any ideas? You might want to consider "The Design and Implementation of BSD 4.X" for some X as a text book. Tannenbaum's Minix book is also good for practical OS application. Pretty much once you get past Tannenbaum and/or The Daemon Book, the next real step is to start writting real device drivers. I'd be inclined to pick some not-too-complicated device, and write drivers for it for a couple of different OSs. If I had the time (and hardware), I'd say Windows, Linux, Solaris, and AIX is a good spread. That's certainly way too much for one course (heck, one device driver probably is). And you don't have the fun of buggy hardware, and trying to figure out if it's a software bug or a hardware bug. But those four OSs are a good spread of both what OSs do right, and what OSs do wrong, and what OSs just do differently. Brian