Book: Learning UNIX for Mac OS X, 2nd edition
Authors: Dave Taylor & Brian Jepson
Publication Date: December 2002
Info: xiv + 146 pp, illustrated
Price: $19.95 US, $30.95 CA, £13.95 UK
Book: Mac OS X for Unix Geeks
Authors: Brian Jepson & Ernest E. Rothman
Publication Date: September 2002
Info: xv + 206 pp, illustrated
Price: $24.95 US, $38.95 CA, £17.50 UK
Book: Learning UNIX Operating System 5th edition
Authors: Jerry Peek, Grace Tolino & John Strang
Publication Date: October 2001
Info: xiii + 162 pp, illustrated
Price: $19.95 US, $29.95 CA, £13.95 UK
UNIX? Why would I want to use it?
For the average Mac OS X user, the novelty of having a UNIX-based operating system has largely worn off by now, but even so most of us prefer to shy away from the intricacies of the command line and stick to the graphical user interface we know and love. UNIX may be powerful, and it may be stable, but it isn’t particularly easy to use. In fact most of the time it is downright unfriendly. In contrast the Mac is intuitive, quick to learn and flexible enough to meet the demands of home and business users the world over. The Apple magic sprinkled over OS X has been in mating the two: giving Mac users their familiar ‘point and click’ computing environment while incorporating the strength of UNIX, albeit hidden away where it can’t frighten anyone.
But some Mac users will want to get their hands dirty, and learn about UNIX. IT managers, network administrators and those who informally support to their fellow Mac users will find some possible OS X problems difficult to fix without resorting to the UNIX command line via the Terminal. Students and researchers, particularly in scientific, mathematic, and engineering fields, will soon want to know how to run UNIX applications on their Macs, either in the Terminal or more likely via X Windows. Some of these people may even be UNIX users recently come over to the Mac, and fine with the command line but not all that clear on how the UNIX and Aqua layers of OS X interact. For many long-time Mac users, the lure of top-notch, free software like GIMP and XEphem will be reason enough to get to grips with the UNIX side of OS X, and of course there will the Mac geeks who just like the idea of trying something new. O’Reilly has released three pocket books that should appeal to this new and rapidly evolving “Mac-UNIX” crossover market.
Learning UNIX for Mac OS X, 2nd edition
I didn’t like the first edition of this book at all (see my review here). It lacked information on the aspects of the UNIX operating system that Mac users are like to want to know about, such as X Windows and how to download software via apt-get or Fink. On the other hand there was plenty of material on UNIX applications like pico that already have Mac OS counterparts, and so are pretty well redundant as far as most Mac users are concerned. The second edition sees a change in authors (goodbye, Jerry Peek, and hello, Brian Jepson) and a much tighter focus on where UNIX extends the Mac OS beyond Aqua. This is an absolutely crucial point; with both Mac OS X Aqua and the UNIX command line being fully developed operating systems it is inevitable that there will be overlap between them, and that each should offer different ways to accomplish the same tasks. What makes OS X so special is that it is relatively easy to use UNIX to extend the operating system beyond what Aqua can achieve on its own. Apple’s recent X11 application is an obvious notice of intent in this regard: as OS X develops, expect to see UNIX and X Windows applications running ever more seamlessly within the Mac operating system.
So, getting back to the book review, how is the second edition better than the first? For one thing a lot of the discussion of UNIX applications that don’t add anything to the Mac OS have gone completely, or at least their reason for inclusion in the Mac users toolbox been made more explicit. To take the example of the popular UNIX e-mail reader Pine, it really isn’t any better than Mail or Eudora as far as ease of use or speed is concerned, but what sets it apart is that it can be easily used remotely. Some e-mail accounts can be accessed on the web, but most cannot, particularly those set up for business or university environments. But if you know how to use Pine, you can log into your e-mail account easily from any computer that runs a UNIX terminal anywhere in the world. Similarly, while AppleShare is fine for accessing and transferring files between Macs, command line logins offer much more flexibility, making secure file sharing between Macs, Windows and UNIX machines relatively straightforward (if not exactly easy).
A very welcome addition to the book is a brief discussion of Fink. In a few pages the authors manage to explain how to use this tool, though some discussion of what Fink does and how it works would have been nice. Source and pre-compiled binaries are mentioned but not really elaborated on, and no mention is made of the differences between the stable and unstable sections of the Fink catalogue. Similarly, while the Aqua front-end to Fink, FinkCommander gets mentioned, it isn’t described in any detail despite being the more attractive option of casual users of UNIX programs on OS X. There is a good chapter on printing from UNIX applications that many Mac users are going to find indispensable, particularly those using text and graphics programs like the GIMP. Most of the rest of the book covers the basics of using UNIX, like commands, aliases, permissions and so on. Not terribly exciting perhaps (and compared to the Mac Finder incredibly heavy going at times) but certainly well worth knowing and handled intelligently and clearly. But there are still some serious gaps. X Windows gets barely a mention, a surprise given the range of X Windows applications that Fink allows the Mac user to install and use. Less seriously perhaps, there is nothing on porting UNIX software for the Mac, though admittedly most Mac users will be happy getting ported software via Fink or any of the other people and groups doing this sort of thing. All in all, this book has been substantially improved if not perfected, and is a useful addition to the Mac user’s bookshelf.
Mac OS X for Unix Geeks
If the preceding book is for Mac users learning about UNIX, then this book is for UNIX users going the other way, or that’s the theory at least. In fact both long-time Mac and UNIX users are likely to find this book useful, for in many ways in fills in the gaps mentioned above in the material covered by Learning UNIX for Mac OS X. There is a substantial amount on both porting software and on using X Windows (together these account for not far short of half the text in the book). On the other hand, this isn’t a UNIX primer, and the authors assume some degree of familiarity with the UNIX command line and the use of UNIX workstations in general. Neither is this book a pocket guide to OS X for UNIX users completely unfamiliar with the Mac, but then there are dozens of perfectly useful beginners guides to OS X out there. No, this is a rather specific and tightly focused book and given that paradigm works very well.
The book is divided into four main sections, the first is about the command line interface, Terminal, and how to use it and other Mac OS tools to configure individual computers and accounts to work the way they need to. Home and small business users are probably never going to need to worry about things like Directory Services, at least not directly. The basic Finder settings and the various control panels should be fine for users with just one printer or a few users on a simple Ethernet network. But Mac users in complex environments such as those with a mix of Mac, UNIX and Windows machines, various network zones and users with different levels of access may find things a bit trickier. UNIX has been the operating system of choice for networks where a number of computers and users can share networked resources, and with OS X Macs can join in the fun too. For UNIX network managers there are detailed descriptions of the Directory Services, NetInfo and how to manage groups, users, IP addresses and so on. Anyone more familiar with UNIX that OS X will find the discussions of the OS X shells and the Development Tools (a misnomer if ever there was one: these should be installed by practically all ‘pro’ Mac users) essential reading if they want to get anything done.
Porting software comes next, and this has got to be one of the most difficult chapters for the authors to have written given the sheer variety of potential problems that exist in making OS X and PowerPC-friendly versions of UNIX software largely written for Intel-based machines running LINUX. Even getting LINUX software compiled and running on a LINUX machine isn’t always easy, but Jepson and Rothman do more than just give the subject the old college try. Experienced UNIX users, particularly those familiar with LINUX, are going to want to port their favourite software over to the Mac if it hasn’t already been done, and there is plenty in this section to help them do this. Compiler differences, macros, libraries and headers all get a fair crack of the whip. An extensive discussion of the methods and problems of porting software like this is an important reason why ambitious Mac users might consider this book as a supplement to a more mainstream OS X user manual; hitherto Mac users trying to compile source code to run on their computers may have found the whole exercise frustrating, as I did, because so little information exists on the Web or in books to help them master this dark art. Additional sections cover topics such as creating Fink packages, allowing installation of UNIX software via the Fink, and GNU-Darwin, a distribution of FreeBSD ports and packages. Both these subjects are aimed more at developers of software than end-users, but do help round OS X off as ‘real’ UNIX platform with appeal to geeks and technophiles.
A third section of the book goes into enhancing and modifying the operating system rather than application software. One chapter covers system management tools, such as the well-known process and memory tool “top”, a sort of super-About This Macintosh box. Another chapter that will be very useful to those intending to run the many graphical (rather than command line) UNIX applications, covering as it does the X Windows system. Although not a long chapter, all the steps required are outlined with relevant links and tips. Much more esoteric is the chapter covering building Darwin kernels, something even UNIX aficionados will probably want to avoid. The book rounds of with a detailed “map” of OS X from the UNIX expert’s viewpoint: what the Mac specific files are, and where the more familiar UNIX ones lurk.
Learning UNIX Operating System 5th edition
The last book of the three isn’t really a Mac book at all but its small size, modest price, and broad range of topics are likely to make it an attractive purchase for Mac OS users looking for a one-volume primer on the UNIX operating system. That it is in its fifth edition, the first dating from 1986, could say something about its quality, but it could equally easily be read as indicative of the fundamental durability of UNIX as an operating system for computers in business and academic environments. This is unquestionably a UNIX-oriented book but it does include a lot of the same material as Learning UNIX for Mac OS X (particularly the first edition, less so the second). But what sets it apart from that book is a much deeper review of the X Windows system that Mac users running scientific software are likely to come across and spend quality time with.
Otherwise the book contains by now recognisable, if not actually familiar, stuff for Mac users with an interest in UNIX: permissions, file management, remote logins and applications like Lynx and Pine. There isn’t anything on porting or compiling software, and logically enough in a non-Mac specific UNIX handbook, a discussion of Fink is absent. But as the blurb on the back cover suggests, much of what is contained in this book is useful to the many types of UNIX including OS X.
Recommending any one of these books over the others is tricky because they are all subtly different. Certainly any Mac power-user is going to want one of them if only because the Missing Manual type of OS X book only skims the surface of what the operating system can do as far as running UNIX and especially X Windows software is concerned. So it comes down to what your use of UNIX on the Mac is likely to be. If you just want to potter about exploring the OS X command line, then UNIX for Mac OS X will probably suit, and with its coverage of Fink you may soon find yourself installing some new UNIX toys to play with. But ultimately this is the weakest of the three because it only leads you so far — if your demands run towards X Windows and the software this allows, then you’d be much better served with Learning the Unix Operating System despite its generalised rather than Mac OS X specific slant. Finally, Mac OS X for UNIX Geeks is certainly the broadest of the three as far as covering the many different things that can be achieved with the UNIX side of Mac OS X, but it is also the least forgiving and makes little allowance for newcomers to the field. So while I’d be tempted to single it out as the best of the three, approach with caution.