Poised Solutions Library

Poised Solutions Tech Library

book review
linux cookbook

Poised Solutions

Linux Cookbook Book Review

Admin

IT Library

Linux Cookbook

Linux Cookbook

Amazon UKAmazon USA
Linux Cookbook
Author:
Carla Schroder
Publisher:
O'Reilly
Published:
2005
Pages:
553

Linux Cookbook is a great book if you are looking to gain an edge on Linux Administration. Cookbooks are generally divided into recipes, hence the name, and often you will find with doing Linux or Unix Administration quite often the problems and challenges are ones that others have had to face before, this is the nature of the vocation, the actual task may be quite bespoke but the solution is often quite general. The Linux Cookbook is a collection of general solutions, that should increase productivity and understanding quite considerably if applied well.

Linux Cookbook focuses on what Carla terms Linux Infrastructure Building, and that is quite a good term for it. There is a lot that can be done and is required from a Unix Operating System, and any computer. Unix systems tend to have all the basic tools in place from the off, this is something that is perhaps a little alien to people coming from other Operating Systems, but it is possible to create nearly any digital work just using the base tools. The productivity applications are perhaps just that, they sit on top and should make production quicker, but they are not necessary to actual being able to do production and in some instances they are not quicker, perhaps being more usable.

The Linux Cookbook is suitable for novices to the Linux based operating systems, though it should be understood as novices willing to learn and to apply the knowledge gained. Linux Cookbook does focus in on the 'How' as opposed to the 'Why', but they Why is in there, and the actual path of the book whilst at each stage explains how to do things, is very much on the trail of Why you should. This does make for an excellent tutorial and reference book. So Carla Schroder should be applauded on how well she creates and weaves in knowledge and wisdom.


Linux Cookbook Chapters

Linux Cookbook Chapters
  1. Finding Documentation
  2. Installing and Managing Software on RPM-Based Systems
  3. Installing and Managing Software on Debian-Based Systems
  4. installing Programs from Source Code
  5. Discovering Hardware from Outside the Box
  6. Editing Text Files with JOE and Vim
  7. Starting and Stopping Linux
  8. Managing Users and Groups
  9. Managing Files and Partitions
  10. Patching, Customizing and Upgrading Kernels
  11. CD and DVD Recording
  12. Managing the Bootloader and Multi-Booting
  13. System Rescue and Recovery with Knoppix
  14. Printing with CUPS
  15. Configuring Video and Managing X Windows
  16. Backup and Recovery
  17. Remote Access
  18. Version Control
  19. Keeping Time with NTP
  20. Building a Postfix Mail Server
  21. Managing Spam and Malware
  22. Running an Apache Web Server
  23. File and Printer Sharing and Domain Authentication with Samba
  24. Managing Name Resolution
Linux Cookbook Appendices
  1. Finding Linux Documentation
  2. Online References
  3. Microsoft File Types
  4. Init Script for CVSD
  5. Index

Cookbooks are designed so they can be dipped into, and the Linux Cookbook is no exception to that. Though, reading the book from start to end is also very possible, and is probably the best approach for those new to Linux or those who are looking to solidify the knowledge of Linux, the Linux Cookbook is laid out in a logical fashion, that allows knowledge to be built up in layers.

The Linux Cookbook starts of with the friendly title of 'Finding Documentation', this is the one key element to all Unix systems, and in the IT Jungle it is normally boiled down to the four letters RTFM, (Read The Fine Manual). Unix systems are incredibly well documented, and most unix based applications are also very well documented, there are exceptions but documentation is part of the Unix Philosophy. But, what is hard for most novices is actually realising this documentation exists. So, it is a very apt place to start, how do you find documentation.

Most people are not borne with an innate understanding of computer systems, and neither are computer systems shrouded in occult mystery, much has been written about Computer Systems and of course the Poised Solutions Library is itself a testament to this. Personally I prefer to read books rather than manual pages when attempting a complete grasp of a subject, but I also make extensive use of manual and information pages that are online on a computer system, and on the Internet. I tend to use online sources when I am in the process of creating or administrating software. Being able to find information is critical in modern development and administration, and most Unix and Linux systems come with a complete set of documentation normally available via the man or info command (program). The Finding Documentation chapter clearly explains how to use these tools in a variety of circumstances, perhaps the only omission is how to include Man pages in an editor such as Vim, so I will plug that gap, ManPage Viewer as that is extremely useful. The man page system is well explored and info is also explained, (though the author of this review doesn't use info too much, being a man's man :) ).

Package management is explored next, and the two major systems of package management RPM (RedHat) and Deb (Debian), are examined. Whilst this reviewer doesn't actually use either of those package management systems on his own computer systems, RPM and debs are quite ubiquitous in the Linux world, and often form the basis of other package management systems. Poised Solutions does administer a number of Centos, RedHat and Debian systems, so understanding these package management systems is useful and is recommended for anyone doing Linux Administration. If you are interested this reviewer has systems running Gentoo (Portage), Arch Linux (Pacman), Slackware (pkgtool), FreeBSD (ports), and OpenBSD (pkg) along with a number of aether builds. The package management chapters are quite complete and comprehensive, and the only thing I would add is to mention the existence of alien which is a tool that converts between rpm and dpkg (deb) package formats, amongst others.

Installing from source code is also covered, sometimes it is actually best to install from source (though you should probably inform the package management system). Installing from source tends to happen on dedicated servers, and for applications (or versions of applications) which are very recent and have yet to find their way into the package management trees. Installing from source is something most Linux Administrators should be quite comfortable with, though this is a task more often done by Developers. The build chain is shown and how to invoke make to build an application. The chapter is perhaps a little slender, but it is actually not that hard to build from source if a good make and configure files are provided. When they are not it can get very involved and this is perhaps outside the scope of the Linux Cookbook. A fuller explanation on building applications from source code probably takes up at least three volumes, and to prove this point I will list probably the best three texts and books to read on building source code.

Books on Building from Source

More books on debugging and testing software builds can be found at the Coding Tool Book Reviews page.

The chapter on discovering hardware from Outside the Box (probably better said as '... Without Looking in the Box'), is a firm favourite of this reviewer, introspection is an element of programming and administration that always seems to fascinate this reviewer, there is a great sense of stability when a system can introspect on itself, and accurately report on elements of itself. Most of the major tools are explored in this chapter as well as the Kernel systems that allow these tools to operate, so in that sense the chapter is quite complete on system discovery of hardware, there are a couple of omissions though, lsusb for discovering USB devices, and libsmbios the SMBIOS Library for BIOS introspection and BIOS information.

Editors are covered next, and in particular JOE and Vim. There is a little shorthand way to discover how good someone is in the field of development and administration and it is in their editor selection and how well they know that editor. Nearly 90% of actual work time in development and administration is spent in a text editor, there is no real way of getting away from that, text is the most efficient form of producing commands and instructions for computer systems, that can also be understood by humans (wetware). As such, most developers and administrators ensure they know at least one editor very well, and often that is either emacs or Vim (perhaps another vi style editor). Vi is useful because it is a Unix standard, and it is lite weight so you can generally expect a Vi style editor on a Unix system, and because it is also console or terminal based it can be used for remote access, handy for configuration files. Joe and Nano are two quite simple editors, also console and terminal based, so whilst the learning curve of Vim is quite steep (time on the Y axis) to begin with and then very shallow after a time, Nano and Joe offer a quicker entry to text editing, at the expense perhaps of eventual speed of use. Nano is not covered in this chapter, instead Joe takes that role, but Vim is covered. Emacs is not covered, but is at about the same level as Vim. The editor chapter is quite brief but there is some useful information there, and actually upon a quick review, I am quite interested in perhaps using Joe more in an up and coming project.

The next three chapters are on the day to day administration of Linux systems, being able to start and stop a Linux server or desktop is quite a useful thing, and is perhaps often overlooked by those who have been administrating for a while. As an aside, when I first started using Linux, which was many years ago, I came to Linux from a Xenix and SunOS background, where the shutdown was more of a sync; sync; halt affair, and for a few years I would still shutdown a Linux system using that set of commands, old habits are hard to break. And when installing Linux for some home users, I have often come back a day or so later, to discover they have just been using the 'big red button' on the box, as opposed to doing a proper shutdown. The reason the shutdown is perhaps a little hard for novices to achieve, can be explained by understanding a little about Unix history. Unix was designed from the ground up to be a multiuser system, and as such shutdown privileges could not be given to all users, as someone would be bound to just call a system shutdown as others were blissfully working away, so shutdown is really an administration task. With Personal Computers though, the user is often the sole user and the admin, so extra features tend to be added for PCs running Linux. Unix systems also tend to be quite stable and so are often just left running, whether this is 'green' or not is outside the scope of this review. How to manage users and groups flows quite neatly from the discussion on Starting and Stopping Linux, and there are some useful tidbits of information to be gleamed from this chapter. Managing file and permissions again follows neatly, and there is also some useful information on the various file systems supported by the Linux Kernel. Fuse Filesystem in Userspace is not mentioned, along with a few other interesting file systems, but as a start off point all the basics of Linux file systems are covered.

The chapter on Patching and Customising the Kernel gives some solid advice to building custom Linux kernels, there is not too much depth, but the gems of Linux Kernel Administration are there. One of the large advantageous of open source software, of which the Linux kernel plays a large and important role, is in building systems that are tailored to a solution. The advantages of doing bespoke builds are performance, stability and security, and by creating the unique the general is also improved as side issues can be more pronounced by the act of customisation.

The remaining chapters in the Linux Cookbook deal with a host of other common Linux Administration tasks, from CD and DVD recording to GRUB and LILO bootloader configuration, X Windows configuration, Printing with CUPs, Backups, Version Control, Remote Access, Mail Server Setups, DNS and Apache Web Server configuration. The Linux Cookbook does cover the gamut of Linux Administration and Unix Administration providing timely advice if you are about to undertake some administration work. People using Linux on the desktop will find a wealth of information to help them get the most out of their Linux system, and the Linux Cookbook does demystify quite a few common problem areas.

Overall the Linux Cookbook does exactly what it says on the cover, it provides a series of useful recipes to quickly administer Linux systems. The book was actually purchased to aid the creation of Linux distribution, when I get around to it, and reviewing it here has peeked that interest again. The information is solid, and the writing style is lively. As a support book both for user and administrator it comes highly recommended, and as an example of how to write good documentation for developers and technical writers it is a shining example.


OS





































Poised Solutions Web Development and Web Design by Poised Solutions IT Practice

Guild of Developers  •  PantheonOS  •  Cyber Security