Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.
Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.
Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.Make it easier for other people to find your content by providing more information about it.
REVIEWS Books Exim came top of this months mail server Roundup just as Paul Hudson finished reading the leading book on the topic The Exim SMTP Mail Server AUTHOR Philip Hazel PUBLISHER UIT Cambridge ISBN 0-9544529-0-9 PRICE 37.50 PAGES 595 BUYER INFO If it were possible to extract from the brain of Exim creator Philip Hazel all that he knew about his popular mail server then have it committed to paper, the result would be only marginally different from this book. To say that The Exim SMTP Mail Server is comprehensive is an understatement akin to saying that the Pacific Ocean is a bit damp. It is a huge work that covers every area of Exim 4 that you could ever need to know about. The previous edition of this book, in which Hazel discussed Exim 3.x, was produced by OReilly, and thus infused with the publishers usual amusing tone. In contrast, this one has little in the way of spark and style, which made reading the best part of 600 pages feel very, very slow (we only just managed to finish it in time for this issue of LXF). Of course, this is a book about a mail server if youre expecting thrill- a-minute content youre looking in the wrong inbox. Crammed with info Although some masochists might try to read this book from cover to cover, its best used as a reference guide. For example, if you want to build Exim from the source, just flick to chapter 22 and find the part that helps you. Similarly, the coverage of encryption, database lookups and filtering is separated into chapters, which deal with each topic wholly and independently of the other chapters. This approach works up to a point, but there is a noticeable lack of summarising that means that you really do need to wade through quite a few pages before you gain a firm grasp of a topic. Whats needed are some bulleted lists at the end of each chapter that give a brief recap of the topic so that people who want immediate answers dont have to read 30 pages first. Surprisingly, there is one such list; and the surprise is that it comes right at the end, after the index (which, on a tangent, is one of the best indexes we have seen in a long while), where the list of the books sponsors are. One of the sponsors, the Norwegian Linux firm Linpro, provides six quick ways to tune Exim, and it works wonderfully well lets hope the next edition follows Linpros example! LINUX FORMAT VERDICT RATING 7/10 Brusque and dry, but if that floats your boat this is the Exim book for you. Nick Veitch looks for buried treasure in the latest Hacks book. Knoppix Hacks Knoppix is almost certainly the best-known Live CD Linux distro, and with good reason. Its versatility is such that its just as happy being used as a hot-desking tool as a system recovery utility disc. This is why Knoppix Hacks could have done with a more explanatory subtitle than the boastful 100 industrial-strength tips and tools, because the book isnt so much about hacking Knoppix as about hacks you can perform while using Knoppix. The format of the book follows that used by previous titles in OReillys Hacks series think up some cool stuff, write a few hundred words on it then try to group the tips together into categories. In that respect, the approach definitely seems to work better when applied to topics such as wireless networking. The book starts off with some hacks that really just form a users guide to Knoppix. Unfortunately, including such chaff dilutes the really useful material such as how to use Knoppix as a repair disk or for forensic analysis of a hacked system. The section on how to customise Knoppix and build your own Knoppix modules has some original material not available on the Knoppix website, and hacks such as recovering trashed hard disks or resetting NT passwords are genuinely useful. However, this reviewers overall impression is that many of the hacks have been conjured up from the everyday in an attempt to squeeze out a magic, publisher-pleasing 100 for the cover. Most readers would have preferred 50 really good hacks. A useful guide, then, to the potential uses of Knoppix that has some useful tips but not much more than the sort of information readily available on the Knoppix website. LINUX FORMAT VERDICT RATING 5/10 Needs more hacks, less fluff. AUTHOR Kyle Rankin PUBLISHER OReilly ISBN 0-596-000787-6 PRICE 20.95 PAGES 316 BUYER INFO LXF66.rev_book 28 15/3/05 4:05:00 pm www.linuxformat.co.uk LXF66 MAY 2005 29 REVIEWS Books Graham Morrison forgets all he knows about Linux to review this introduction to command-driven development. Linux Application Development Youre a systems programmer, perhaps a good one. Youre well- versed in Unix and eager to learn, but Linux is a whole new world to you. This may well be the book to help you get there. Its an ambitious attempt to encompass Linux application development, from the perspective of experienced C programmers who dont necessarily know anything about Linux. The authors assume readers have some Unix knowledge, so scrimp on general information but splash out on Linux ideas. This second edition has been written with reference to the 2.6 kernel and the GNU C library version 2.3, and the considerable amount of source code included in the book is available from a well-organised accompanying website. The authors have managed to squeeze all the essentials of Linux programming into the first 100 pages. This section covers almost as many subjects as there are pages, any of which could fill a whole book, but the highlights include chapters on Emacs and Vi, gdb, GCC, open source licensing, the GNU C library, memory debugging tools, libraries and the Linux system environment. The pace makes for an entertaining read, but dont expect to gain anything more than a perfunctory understanding of the many subjects covered. The authors dont want to waste time introducing Linux tools that Unix users will already be familiar with, preferring to dedicate more of the book to discussing how Linux works. Whats missing from the extensive list is anything on GUI design or custom widgets. In fact, the book doesnt deal with modern user interfaces in any way. It takes a more Unix-like, command-driven approach, and the word application in the books title is used to denote any of the thousands of command-driven components responsible for holding Linux together: the kind of application you find in the shell or running in the background. Its the considerable second section of the book that really starts to delve into the details of system programming. Clarifying the unclear For a solid grounding in Linux development theres no better place to start than with the process model and thats exactly where this second section kicks off. The process model is something Ive often personally misunderstood. If like me youve had only a basic idea of how it all hangs together, this chapter makes use of familiar terminology and some good examples to pull the whole concept into order for you. Process management also presents the opportunity for some excellent sub-headings, such as 10.4.6 Killing Yourself, followed by 10.4.7 Killing Others. To help with many of the concepts used in the book, the authors develop throughout the book a subset of the Unix command shell called ladsh. Each chapter progressively adds to the source code, to produce a minimal shell featuring built-in commands, external command execution, I/O redirection and job control. As an example, the file I/O is describes the terms of file access, everything from file ownership to ext3s extended attributes, before applying the same principles to the ladsh shell in the form of redirection through files and pipes. A signal processing chapter is just as illuminating as the one on process management. From there, the book quickly moves on to cover a bevy of subjects including advanced file handling, memory mapping and job control. Theres an interesting chapter on terminals, which (along with many other parts of the book) provides an excellent historical explanation for much of what we consider esoteric Linux behaviour. This gives the book broader appeal it would be a good read for practised Linux users who want to understand more about why their systems work the way they do. Sample code to try There follows a good section on networking with sockets, including manipulating IP addresses for both IPv4 and IPv6. This section also includes some excellent example code, including an executable version of getaddrinfo(), featuring several well thought-out options for the command line. Another example is a Unix domain server written in two pages of code, which will listen on a certain port before copying data to the standard output. The absolutely colossal system programming section draws to a conclusion with security, covering both common security holes and access restrictions. If we had to criticise any part of the book it would be the final section, which touches on several subjects under the loose definition of development libraries. The authors use this as an excuse to focus on everything from regular expressions to screen management and hashed databases. It feels a little like an afterthought, being not quite so comprehensive in its treatment as other parts. Theres a small section on dynamic loading and callbacks, but the reader is presumed to have a good understanding of functioning libraries already. Linux Application Development makes what was previously a specialist area accessible to anyone with Unix programming experience and the desire to write applications. (Windows programmers may struggle without knowledge of the basic terms, despite the authors encouraging assertion to the contrary). Each chapter not only works well as a reference to a Linux tool but also sparks ideas about how that tool could be developed. Using a real implementation of a Unix shell is a great idea, bringing a greater relevance to many of the examples, and you find yourself with a useful tool at the end of it. For a technical manual the book reads very well and is relatively easily to understand, which is to the authors credit. The real value, however, comes from being able to refer to the various sections of the book after closing the final page and feeling inspired enough to sit down and actually write something. LXF LINUX FORMAT VERDICT RATING 8/10 A whole new world of application development handed to you on a plate. AUTHOR Michael K Johnson and Erik W Troan PUBLISHER Addison-Wesley ISBN 0-321-21914-7 PRICE 41.99 PAGES 702 BUYER INFO LXF66.rev_book 29 15/3/05 4:05:06 pm