When asked how I "know so much" I often obfuscate the issue by replying: "Hard work"; "Experience"; or "Research". These may sound impressive, but I often use a much easier, time proven method of knowledge acquisition – reading. The converse, writing, requires significantly more effort, but even in the age of electronics, it is difficult to think of a more efficient technique for transferring knowledge. Here I share some of my sources and techniques for finding good books and other information about UNIX and related topics. I also share some secrets for writing in order to encourage others to share their knowledge and expertise with the Recorder's readers.
Recently in credulity preliminary a colleague expressed when shown a draft of a previous Systems article. He apparently expected some advanced electronic format, but I had produced a document written with an analogue stylus, dispensing viscous fluid onto a fibrous pseudo-random, flexible, planar medium. In other words, I scribbled with my pen on the back of old computer printout. Not only that, I had a stack of old fashioned books on my desk, clearly intended for reading. Why, in the age of word processors and laser printers, would I do such things, especially considering that UNIX was once widely used for text processing? Consider what I can do with pen, paper, and book that I can't do with a computer. I can carry them in a pocket or briefcase, write almost anywhere with a level surface and read almost anywhere with sufficient light. They are ready milliseconds after activation, never crash and require no password . My pen's resolution exceeds my computer monitor's by orders of magnitude and paper redefines the term flat screen. A book 's resolution is measured in thousands of dots per inch while a computer monitor typically provides less than a hundred. The key advantage of published books, however, is content. Rarely does computer readable documentation achieve the content quality of published books. On top of all this, my pen and books give me an aura of sophistication while my computer makes me appear as a techno-geek. But the piece de resistance is that I can simultaneously sit in my rocking chair, write, read, listen to music, and drink Scotch whiskey.
Enough about antediluvian technology, where's the technical information? I use five main sources: people, Usenet, the World Wide Web (WWW), the man(1) pages, and books. People will often share information when asked. If you possess insufficient charm to attract the exclusive attention of a UNIX guru, you might consider technical training courses taught by such a person. Usenet is an electronic bulletin board system disseminated over the Internet. Typical of such public systems, it is highly dynamic and extremely variable in quality. Although it contains some good information, I have generally found it to be uninformative with the significant exception of the Frequently Asked Questions lists (FAQs). These are summary overviews of specific topics, compiled and maintained by enthusiasts and posted on a regular basis to the relevant news groups. Perhaps the best UNIX-related documents available on the Internet are the Requests For Comments (RFCs). These are technical notes defining most, if not all, Internet standards. Because UNIX is tightly bound to the Internet, these are invaluable for UNIX network programmers. They are available at several WWW sites; searching for "RFC" should produce pointers to many archival sites (these tend to change often). The man(1) pages are on-line documents distributed with the UNIX operating system. They describe topics such as UNIX commands, system calls, network functions, and application software. man is itself a UNIX command designed to read these documents. Its syntax is "man <topic>" where <topic> is the topic whose documentation you want. For example, "man Is" gives the Is command's documentation and "man man" gives information about man itself. The documents are grouped into
numbered sections, each containing related topics. Writers often give the section number in parentheses, to avoid ambiguity; for example, write(l) references the command while write(2) references the system call. Many systems will give useful information about the man pages and their sections in response to the "man intro" command. Although these computer based sources are good for finding usage information such as syntax and program options, they are generally too specific to provide fundamental computing concepts. The best source of such information is still books. Because of the overwhelming variety of UNIX books on the market, it is often difficult to choose appropriately. Fortunately, there are comprehensive book reviews available. The best that I have found was compiled by Samuel Ko and is often referred to simply as "Ko's book list." It categorizes and briefly reviews many computing books, ranging from beginner's guides to highly specialised textbooks. It is posted periodically to the Usenet group misc.books.technical and archived on the WWW at http://rclsgLeng.ohio-state.edu/Unixbook-list.html
I may not have convinced you of the usefulness of pen, paper, and books, but for those who do prefer the rocking chair approach, I present some books I have found useful when composing Systems articles. Operating System Concepts by Silberschatz and Peterson (Addison-Wesley) has a good overview of operating systems in general while Advanced UNIX Programming by Rochkind (PrenticeHall) provides details of shells and system calls. Advanced Programming in the UNIX Environment by Stevens (Addison-Wesley) is the system programmer's bible; I highly recommend it for the professional UNIX programmer. For information about security and passwords, I used Practical UNIX Security by Garfinkel and Spafford and PGP: Pretty Good Privacy by Garfinkel (both published by O'Reilly & Associates). In order to avoid the most glaring errors in grammar, I have found The Canadian Writer's Handbook by Messenger and Bruyn (Prentice Hall) and Oxford Guide to Canadian English Usage by Fee and McAlpine (Oxford University Press) to be very useful. The classic The Elements of Style by Strunk and White (Macmillan) is a handy, concise reference, but overall I prefer Messenger and Bruyn. Maybe because it's Canadian, eh?