Skip to main content

If you don't have an IBM ID and password, register here.

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. This profile includes the first name, last name, and display name you identified when you registered with developerWorks. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

Cultured Perl: Perl books, Part 2

A review of Unix Power Tools and Analytical Network and System Administration

Teodor Zlatanov (tzz@bu.edu), Programmer, Gold Software Systems
Author photo
Teodor Zlatanov graduated with an M.S. in computer engineering from Boston University in 1999. He has worked as a programmer since 1992, using Perl, Java, C, and C++. His interests are in open source work on text parsing, 3-tier client-server database architectures, UNIX system administration, CORBA, and project management.

Summary:  Take a look at two divergent texts on system administration. Unix Power Tools, by Shelley Powers, Jerry Peek, Tim O'Reilly, and Mike Loukides, covers the basics in a sound, readable manner and is a must-have book for any sysadmin. Analytical Network and System Administration by Mark Burgess is an advanced take on systems administration for those with a solid grounding in theoretical computer science and mathematics. Read all of the columns in Ted Zlatanov's Cultured Perl series.

View more content in this series

Date:  13 Apr 2006
Level:  Introductory

Comments:  

The third edition of Unix Power Tools (UPT), by Shelley Powers, Jerry Peek, Tim O'Reilly, and Mike Loukides, and Analytical Network and System Administration (ANSA), by Mark Burgess, both deal with systems administration, but the two books cover very different areas. UPT is UNIX®-specific, extremely detailed, and indispensable for any systems administrator. ANSA is operating system- and platform-neutral, very thorough, and of interest mainly to administrators with a strong theoretical computer science background and at least a few years of advanced mathematics under their belts.

If ANSA sounds like a tough book to tackle, it is. While UPT is for everyone in the systems administration business, from beginner to guru, ANSA is a textbook for a third- or fourth-year undergraduate university course, and even at the post-graduate level it would not be out of place.

Note for readers outside the U.S. with possibly different university course structures: in the U.S., engineering and computer science degrees are normally obtained in a four-year undergraduate program, followed by advanced graduate programs for degrees such as M.S. and Ph.D., which require anywhere from two to six more years. ANSA would fit in the third or fourth year of the undergraduate program.

It might seem unusual to review a book like ANSA in a general column like this one, but you will see as we look closer that ANSA is not a typical textbook, and for a systems administrator, it is in fact a milestone book by virtue of its comprehensive analysis of the field. ANSA contrasts nicely with UPT, which is why I chose to review the two together.

Unix Power Tools

UPT is a terrific book. Now in its third edition, it has only improved with age. Old material was removed, and all that's left is good, up-to-date information that's immediately applicable to UNIX systems administration. Below are brief summaries of each part, because summarizing in greater detail for a 1,000 page book is simply impossible in this column.

"Part I, Basic Unix Environment," is a gentle introduction to the world of UNIX. The flow is somewhat broken up by all the short chapters, so beginners may find it hard to follow. Later in the book, short chapters are okay, but in an introduction I would have preferred a more continuous story. Part I covers the basics of UNIX: files, processes, users, and the help system.

"Part II, Customizing Your Environment," is great fun. If you like to tinker (and I hope you do), you'll find all the fun tips in here. Customize your prompt, your login settings, your terminal settings, etc. This is essential information for anyone who's into UNIX, and I guarantee you will find something new here.

"Part III, Working with Files and Directories," together with Part IV, is the heart of the book. Every possible way you can look up, search inside of, or manipulate a file or directory is listed, analyzed, and explained. The short chapters really come into their own here: you can look up any particular task, such as "quick finds in the current directory." Typically, the chapters are half a page to two pages long, which is the perfect length for tips-oriented chapters.

"Part IV" is definitely more technical, going into great detail about UNIX file editing. Emacs and vi are the two editors of interest here, with batch editing and "not quite" editing in the mix as well. The chapters on sorting are very useful to anyone who needs to sort data; the elegance, speed, and agility of the UNIX text-based sorting utilities put modern GUIs to shame.

"Part V, Processes and the Kernel," is the beginning of the advanced material in UPT. While it might seem intimidating to a beginner (starting with the unfortunate word "kernel," which has so little resonance with non-technical beginners), this is not difficult material when studied gradually. Do the examples and you'll see how simple processes really are. Starting a process in the background and controlling it later gives you a much better experience in UNIX.

"Part VI, Scripting," is advanced material. You learn how to write scripts, manipulate the shell history, and generally be more efficient. The goal of computers, after all, is to make us more efficient -- sometimes people forget that. Modern GUIs with their point-and-click interfaces can actually be impediments to getting work done, when compared to scripts and text-based interfaces. A GUI is not written to be scripted (there are exceptions, but the very idea of a GUI presupposes a human element, the "user"). "Point and click" means the user spends time pointing and clicking. Script a series of repetitive actions and you'll never spend time clicking on a bunch of buttons to do the same actions. This is why Part VI is important: the full power of UNIX is finally revealed, and all the previous material connects with scripting glue.

Regular expressions and wildcards are separate sections in Part VI. They are important to almost every other chapter of the book, because regular expressions are part of many, many UNIX utilities and all the major shells. The sections are crisp and well written, a joy to read.

"Part VII, Extending and Managing Your Environment" follows. By now (page 787) your eyes might be glazed over, but the material is just short tips rather than any coherent narrative. File backups and archiving and Perl and Python are covered in decent detail. The Perl and Python chapters are rushed by necessity, but at least they should generate interest in the real deal.

"Part VIII, Communication and Connectivity," is of interest for most readers. While the parts on redirecting I/O and TCP/IP connectivity are interesting, the section on UNIX Devices is probably too esoteric for those not into UNIX internals. Connecting to Windows® has its own section, which is nice but not very extensive. The pattern at this point is that the chapters are introductions to advanced material rather than full expositions; it would be impossible to do otherwise in a book that's already over 1,000 pages long. Consider these chapters previews of the good stuff, and turn to the standalone books and tutorials on and off the Web for more information.

"Part IX, Security," wraps up the book. It is detailed and useful. The chapters on SSH are particularly useful, but I guarantee you that reading any chapters here will improve your UNIX knowledge tremendously.


Analytical Network and System Administration

Mark Burgess is known as the author of Cfengine, a terrific system administration tool. His books and papers are numerous, and ANSA is a good standalone textbook on the topic of systems administration.

ANSA's basic premise is that the analysis of computer systems should be treated with the same rigor as the study of physical or chemical systems. This is a simple idea but surprisingly rare in today's computer field, where heuristic (meaning "educated guess") approaches seem to be favored. The above-reviewed UPT is a good example of the solving-by-example school of thought for systems administration; while not wrong, any improvements will be incremental rather than fundamental as is the case with the systematic ANSA approach.

Fourier analysis and statistics show up by chapters 3 and 4, and from that point on, a college-level mathematics background is required for following the book. Up to that point, chapters 1 through 4 cover the general scientific method, experiment and observation, and simple systems and definitions.

Chapter 5 on Sets, States, and Logic explains how configurations can be mapped to system states; modifications of the system are transitions between those states. This concept becomes more and more important in ANSA, and is useful for understanding the Cfengine software as well.

Chapter 6 digresses to talk about diagrams. While this may seem tangential to a mathematical analysis of computer systems, it is a useful way to think about them and is done haphazardly today at best. Connectivity, maxima and minima, and other graph and matrix concepts are explained here.

With chapters 7 and 8, the concept of system configurations as states is expanded further. The key word again and again is "change" -- nothing is ever static in computer systems unless you pull the plug, and thus applying change turns out to be crucial to maintaining a system's steady state.

Chapter 9 talks about information. Entropy and information flows are explained; the compressibility of information and Shannon's theorem are also mentioned. There are surprising applications of these concepts in the maximum entropy distribution, which tells us how to build "least clustered" networks according to the Boltzmann distribution. Such networks tend to have fewer single points of failure, of course, and thus are of significant practical interest.

Chapter 10 is about stability. This is an important concept with very specific applications in systems administration. Regions of stability in a graph (remember that system configurations can be expressed as nodes in a graph of a state machine) are explained. Random node removal is examined together with ways to defend the stability of the system against it. The Hurst exponent in 10.10 can show if a system is stable when scaled -- that is, if its behavior depends on recent or long-ago events. This can be very helpful when analyzing the traffic of a Web server, for example.

Chapters 11 and 12 cover resource networks and task management. The analysis in these chapters deals with system capacity and responsiveness.

Chapter 13 digresses from the analysis to make some definitions about system architectures. Then, chapter 14 discusses system normalizations, which basically seek to reduce the complexity of a system by eliminating dependencies.

Chapter 15 discusses system integrity. A central theorem to Cfengine is obtained in 15.2.2: simply put, do N operations N times and you'll converge to the desired state as long as the operations are convergent and commutable themselves. This is an important statement of Cfengine's philosophy of applying small changes iteratively until the system converges to a stable, desired state.

In chapters 16 through 18, system maintenance, fluctuations, and faults are covered. Fault trees, degrees of knowledge (applying Bayes' theorem), and the general issues of "what can go wrong, and how do we know it" are addressed.

Chapter 19 is about decision and strategy: what is the winning strategy in the game of administrator versus attacker, for example? Nash equilibria are in 19.8, followed by detailed analysis in terms of computer systems and various examples.


Conclusion

UPT is a great book for any UNIX user, beginner or guru. I recommend it wholeheartedly.

ANSA is a terrific book for systems administration theory. It has few practical applications, because it concentrates on the theoretical underpinnings of computer maintenance and analysis. If you are interested in the convergent approach to systems administration, look into the Cfengine software before reading ANSA and you'll understand ANSA more easily.


Resources

Learn

Get products and technologies

  • Check out the Cfengine site for more information on the system administrator's best friend.

  • CPAN, the Comprehensive Perl Archive Network, is the main source for Perl modules, scripts, documentation, and more.

  • Order the SEK for Linux, a two-DVD set containing the latest IBM trial software for Linux from DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®.

  • With IBM trial software, available for download directly from developerWorks, build your next development project on Linux.

Discuss

About the author

Author photo

Teodor Zlatanov graduated with an M.S. in computer engineering from Boston University in 1999. He has worked as a programmer since 1992, using Perl, Java, C, and C++. His interests are in open source work on text parsing, 3-tier client-server database architectures, UNIX system administration, CORBA, and project management.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in

If you don't have an IBM ID and password, register here.


Forgot your IBM ID?


Forgot your password?
Change your password


By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. This profile includes the first name, last name, and display name you identified when you registered with developerWorks. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)


By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Linux, Open source
ArticleID=108136
ArticleTitle=Cultured Perl: Perl books, Part 2
publish-date=04132006
author1-email=tzz@bu.edu
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).