=============================================================================== Errors in: A Practical Guide to Linux® Commands, Editors, and Shell Programming =============================================================================== Author: Mark G. Sobell Publisher: Prentice Hall, Format: Paper; 1008 pp Published: July 1, 2005 (Copyright 2006). ISBN: 0-13-147823-0 This file will document the errors and misinformation found in the above book. The author Mark Sobell would love to hear from you directly: | From: Mark G Sobell | To: "Ian! D. Allen" | Date: Sun, 22 Jan 2006 18:47:59 -0800 | | Feel free to challenge your students to find mistakes or unclear parts | in my books. I would love hearing from them and would gladly give | them credit for the corrections on my Website. | -- | Mark ---------------- Chapter 1 Errors ---------------- p.10 - Figure 1-1 is wrong. It incorrectly puts the shell as a layer between programs and the kernel, when we know that the shell is no different from most of those other programs - the shell isn't even running when other command-line programs are making their own direct calls into the kernel. The shell finds programs and starts them; but, it isn't a layer between those programs and the kernel. You don't need a shell at all to run any of the programs listed at the top of the figure. The only extra layer one might tolerate here is the X Window system, where X-aware programs really do talk to the X server, which then talks to the kernel. You can't run xterm without an X server, so there is an extra layer involved. That isn't true for shell-found command-line programs, all of which can run without the shell. The shell deserves to be at the same level as "Compilers", "Database Management Systems", "Word Processors", etc., and all these programs have direct access to the kernel with no extra layer. Here's a comment from the textbook author on the error: --- start forwarded message From: Mark G Sobell To: "Ian! D. Allen" Subject: Re: APGTRHL8: Figure 1-1 A layered view of the GNU/Linux O/S Date: Sun, 22 Jan 2006 18:00:41 -0800 Ian -- I hate it when someone quotes me to me and is right. What more can I say? I am now working on revising the Red Hat book -- let me see if I can get it right. I put a big note (your email) next to the figure. If I manage to get it in this book it will propagate to the others. Please continue to give me feedback on the book -- your suggestions are always welcome (even if it takes me a few years to act on them). Mark On Sunday 22 January 2006 2:08 pm, you sent me a note: > Hi Mark - it's me again after three years. > > I just got "A Practical Guide to Linux Commands, Editors, and Shell > Programming (2005)". Up in Ottawa here we're using it in 2nd term > of a community college 2-year diploma in Computer Programming: > > http://teaching.idallen.com/dat2330/06w/ > > Long ago, in previous editions, I pointed out that your Figure 1-1 > opening layer diagram incorrectly put the shell as a layer between > programs and the kernel, when we know that the shell is no > different from most of those other programs - the shell isn't even > running when other command-line programs are making their own > direct calls into the kernel. > > The shell finds programs and starts them; but, it isn't a layer > between those programs and the kernel. You don't need a shell at > all to run any of the programs listed at the top of the figure. > > Back then, you said: > >From: Mark G Sobell > >Subject: Re: APGTRHL8: Figure 1-1 A layered view of the GNU/Linux > > O/S Date: Tue, 01 Apr 2003 14:34:47 -0800 > >To: idallen@ncf.ca (Ian! D. Allen [idallen.ca]) > >Funny, all these years, all of the reviews, all of the readers, > > and no one has said boo about this figure. Of course you are > > right. I intended to show that the shell is an interface between > > the user running an interactive shell and the kernel. I'll work > > on redrawing it and let you take a look before it goes out. > > Alas, the new book has the same misleading Figure 1-1 diagram. > > The only extra layer one might tolerate here is the X Window > system, where X-aware programs really do talk to the X server, > which then talks to the kernel. You can't run xterm without an X > server, so there is an extra layer involved. That isn't true for > shell-found command-line programs, all of which can run without the > shell. > > The shell deserves to be at the same level as "Compilers", > "Database Management Systems", "Word Processors", etc., and all > these programs have direct access to the kernel with no extra > layer. > > Looking forward to teaching with your new book. (The bookstore > delivered it 3 weeks late this term!) -- Mark mark@sobell.com --- end forwarded message [... to be continued ...]