Penguin
Blame: HowLinuxWorksReview
EditPageHistoryDiffInfoLikePages
Annotated edit history of HowLinuxWorksReview version 1, including all changes. View license author blame.
Rev Author # Line
1 JohnMcPherson 1 __How Linux Works__: What Every Superuser Should Know<br>
2 by Brian Ward<br>
3 Published by No Starch Press<br>
4 ISBN:1593270356 <br>
5 [In the WLUG library|http://library.wlug.org.nz/show.pl?id=6]
6
7 Reviewed by JohnMcPherson
8
9 !!!Summary
10
11 Despite having used Unix and Linux machines for nearly a decade, I
12 still learnt something new from just about every chapter of this book.
13
14 Most of the concepts covered in this book are both linux-distribution
15 independent and, more generally, applicable to most unix flavours.
16
17 The early chapters give a quick overview of standard command line tools,
18 [Process]es/redirection, EnvironmentVariable~s, and so on, moving through to
19 directory structure, FileSystems, devices, the boot/init process, and
20 important configuration files.
21
22 The book then moves through more advanced topics (with examples/walkthroughs)
23 that new administrators are going to want to cover; networking
24 protocols/devices, with a strong emphasis on how to connect to an [ISP]
25 using typical consumer access devices; shell scripting; and
26 compiling applications and kernels from source.
27
28 The later chapters in the book cover the configuration various
29 hardware (eg CD Writers,[USB],FireWire), [Printer]s, backups, [Samba],
30 rsync, [Shell] startup/environment, and the book finally finishes with a general
31 guide to buying hardware (both for your needs, and how to check for
32 linux compatibility).
33
34 Strengths:
35 * Despite the book's name, much of the information is applicable to other Unix OSes, not just Linux. Most information was presented in a distro-neutral way.
36 * Despite covering many topics, I felt that the ground was adequately covered without going into too much detail.
37 * There were lots of nice little tips and hints sprinkled throughout.
38
39 Weaknesses:
40 * The chapters on development tools/compiling software/compiling kernel don't seem necessary in such a book.
41 * Most of the examples only show things going right - not much help for people trouble-shooting with common errors. (I felt the printing and networking sections in particular could have shown the symptoms of some common problems people might encounter).
42
43 I think that most users would get something out of this book, and I would encourage new Linux admins struggling to completely understand how their system works to read this, especially the straight-forward descriptions of setting up printing, and other hardware.
44 -- JohnMcPherson
45
46 ----
47 !! Gory Details (chapter by chapter)
48
49 Chapter one gives a brief overview of common options to the most
50 standard command line tools (ls, cp, mv, grep, head, tar, and the
51 rest) along with how to use the shell, processes and job control, and
52 file permissions.
53
54 One small detail that really nagged me was that ctrl-b and ctrl-f are
55 mentioned for moving the cursor left and right, but no mention of
56 the letters standing for "back" (b) and "forward" (f), which otherwise
57 might just seem like mystic obscure keystrokes to a newbie.
58
59 Something I picked up from this chapter:
60 unexported variables (ie that aren't passed on to new processes) are called
61 "shell variables" - I'd never really made a distinction in terminology
62 between exported environment variables and unexported ones.
63
64 Chapter 2
65 covers devices, FileSystems, mounting, etc. There's a nice (but brief)
66 explanation of tty/pts devices, and a good introduction to
67 partitioning, with examples using fdisk. There are also useful hints and
68 examples for checking disk space, being aware of [POSIX] block sizes on some
69 systems, and useful options for fsck.
70
71 Chapter 3 does a good job of demystifying the boot and init process, describing
72 runlevels and init script ordering, and finishing with a section on boot loaders,
73 with an emphasis on [GRUB] and how to configure it.
74
75 Chapter 4 covers all the important /etc files, with information that
76 is more likely to be of use to new users, although the sections on
77 syslog and inittab might be useful for refreshing the memory of more
78 advanced users.
79
80 chapter 5 has easy to follow descriptions of PPP and broadband
81 (cable+dsl), with a nice walkthrough of setting up PPP connections, an
82 area which isn't always straight-forward for a newbie. Firewalling
83 (iptables), NAT, and other stuff likely to be of use to someone
84 setting up a small network is described with sample
85 walkthroughs. There is also a section on setting up wireless
86 networking (with command line tools), finishing with a note on
87 wireless security and the need to use secure protocols.
88
89 The usefulness of this chapter (from my point of view) is limited by
90 the fact that 1) the [PPP] section doesn't discuss any common errors or error
91 messages at all, and 2) only [PPPoE] is covered for [DSL] users, while almost
92 all DSL in NewZealand uses [PPPoA], which isn't even mentioned.
93
94 Chapter 6 covers setting up network services inetd, ssh (mentions putty and
95 macssh for non-unix users) as well as good strategies for checking network
96 security (such as using nmap, not using clear text programs like telnet, and
97 "I would usually not rail against a specific program, but Sendmail has an
98 exceptionally long history of exploitation"...).
99
100 Choice quote: "RPC is one of those protocols that just doesn't seem to want to
101 die. ... But whenever you think that you've eliminated all need for portmap,
102 something else comes up, such as File Access Montor (FAM) support in [GNOME]." In
103 my opinion, this chapter had just the right level of detail for a new
104 administrator.
105
106 Chapter 7 briefly covers Bourne-shell scripting syntax and basics such as
107 quoting, variables, exit status and conditionals, using examples that
108 will be of assistance to a novice.
109
110 This is followed by a quick overview of essential 'glue' utilities (sed, awk,
111 xargs) although this is too light to be of any real assistance, and ends with a
112 wise recommendation to learn perl, python or awk if you need to do anything
113 other than 'manipulating files and commands'.
114
115
116 Chapter 8 introduces users to unix development, starting with a description
117 of what the C compiler does, include paths, and linking against libraries.
118 Overview of make, gdb is glossed over, background on different languages
119 strengths and weaknesses (perl, python and java).
120 This leads into a chapter on compiling software from source.
121 (tar, autoconf, configure, compiler environment variables, patch), and
122 a chapter on how to build the linux kernel (which largely consists
123 of pointing out useful device drivers you should include support for).
124 As I said in my summary, I'm not convinced that the typical linux administrator
125 needs to know all this or know about how the LD_LIBRARY_PATH environment
126 variable affects dynamic loading of libraries, although admittedly it
127 might be useful as a quick reference for a more advanced user, and the
128 lilo and grub setup section has the right level of information compared
129 to their respective man pages.
130
131 The latter chapters deal with common hardware, with straight-forward
132 descriptions of configuring cdwriters, usb and firewire devices (with useful
133 hints for ipod owners) as well as some of the software stuff like [HotPlug] and
134 [PCMCIA] configuration. My biggest complaint about this (as in earlier sections)
135 would be that the examples only show things going right -- there isn't much
136 help for someone getting any common error messages.
137
138 The chapter on printing has a nice introduction, with a brief outline
139 of the different printing systems and postscript, and why you should just
140 use [CUPS], followed by a nice description of how the different parts of
141 CUPS interact (PPD files, postscript and foomatic/filters), and how
142 to troubleshoot each step. Even though I've set up and used cups several
143 times in the past, I learned quite a bit from this.
144
145
146 Chapter 13 covers the important task of making backups, although
147 it makes itself somewhat irrelevant to many home and small business
148 users of linux by focusing on tape drives.
149
150 Chapters 14 and 15 cover networking from a user point of view (as
151 opposed to the earlier chapters on network setup), going over
152 samba as a server (to share your files and printers) as well as
153 as a client (accessing others' files and printers), and a useful
154 little section on using rsync when communicating with other
155 unix machines.
156
157 The last chapter feels a little out of place, but seems quite useful ---
158 a guide on how to choose hardware for your purposes. I can imagine this
159 being very informative for someone who doesn't already know all the jargon
160 or options available --- eg [LCD] vs [CRT] display, [IDE] vs [SCSI] drives,
161 PostScript printers vs others. And perhaps the most sage piece of advice
162 in the chapter is to not buy hardware based on future upgradeability;
163 plan on replacing motherboard, [CPU] and [RAM] together at the same time
164 for price and performance reasons.
165
166 ----
167 CategoryBookReview