Feeds

The Linux programmer's toolbox

Hope for those developers not raised on the Linux command line

7 Elements of Radically Simple OS Migration

Book review Linux, like the other *nix platforms, has a reputation of being a good environment for developers. In fact, Linux and hacking – in the original sense of the word – seem to go hand in hand, so much so that some commentators still find it hard to conceive of it as anything but a server and/or development platform.

Whether the hacker roots of Linux have held it back from becoming a popular end-user platform is a topic for religious dispute. For those developers who've not been raised on the Linux command line, and for whom grep, awk and sed are strange and mysterious things, a book like John Fusco's The Linux Programmer's Toolbox might be regarded as pretty good place to get some guidance.

The first thing to note is that the title might be a tad misleading. On the face of it this sounds like a book about all of the different tools and utilities that are available to the Linux programmer – compilers, editors, build tools, and so on.

That's partially right, of course, there's a lot of coverage of these types of tools. But there are also plenty of tools that aren't covered (more on this later). And, more importantly, this is a book that provides the reader with coverage of how Linux itself works – the kernel, processes, inter-process communication, shell commands, and so on. In other words, it's not just about tools in isolation, but the tools in the context of the operating system and the services that it provides.

The book has a focus on system programming in C and, to some extent, C++, and this is reflected in the tools and examples provided. Perl, Python, Java, and the like hardly get a look in, and the same goes for tools targeted at those platforms in particular.

For example, in the section on editors there's coverage aplenty of EMACS and vi, some coverage of graphical editors (Kwrite, Gedit, NEdit, SciTE etc), but no mention of NetBeans, Eclipse, or even more general purpose Java-based editors such as the versatile and excellent JEdit. More difficult to understand is the absence of any detail on awk, sed and some of the other tools available to Linux developers.

Similarly, when it comes to other tools the emphasis is on C tools for system programming. Build tools covers make and the structure of make files, illustrated with examples to do with building the Linux kernel. Debugging, and there's a whole chapter devoted to the topic, is geared to the gdb debugger, which is another part of the GNU toolset that includes the GNU Compiler Collection (gcc), that is covered in some detail throughout the book.

But it's not just the big tools like gcc, gdb and the like that are covered. As with all of the other *nix platforms, there are dozens of small utilities around that make the most of the philosophy "do one thing and do it well". These include process mapping tools, strace for analysing system call behaviour, code optimisers, performance tuning utilities and so on. For developers looking to master the art of Linux system programming, these are essential low-level tools.

However, it's not just the emphasis on the tools that makes the book useful. There's coverage of a lot of "softer" topics – where and how to find help (everything from man files to product documentation), how to find and download software, and so on. For the developer fresh to Linux this sort of information is as useful as being able to set the warning levels on gcc.

The Linux Programmer's Toolbox

Linux Programmers ToolboxVerdict: Ideal for the developer wanting to delve into Linux system programming for the first time.

Author: John Fusco.

Publisher: Prentice Hall.

ISBN: 0132198576

Media: Book

List Price: £28.99

Current Reg price: £19.13 inc. VAT (discount 34 per cent)

Buy this book at Register Books at Reg Developer's special discounted price (subject to change). ®

Endpoint data privacy in the cloud is easier than you think

More from The Register

next story
PEAK LANDFILL: Why tablet gloom is good news for Windows users
Sinofsky's hybrid strategy looks dafter than ever
Leaked Windows Phone 8.1 Update specs tease details of Nokia's next mobes
New screen sizes, dual SIMs, voice over LTE, and more
POW! Apple smites Macbook Air EFI firmware update borkage
Fruity firm provides digital balm for furious fanbois
Call off the firing squad: HP grants stay of execution to OpenVMS
Startup to take over support for today's Itaniums and beyond
Fiendishly complex password app extension ships for iOS 8
Just slip it in, won't hurt a bit, 1Password makers urge devs
Mozilla keeps its Beard, hopes anti-gay marriage troubles are now over
Plenty on new CEO's todo list – starting with Firefox's slipping grasp
Apple: We'll unleash OS X Yosemite beta on the MASSES on 24 July
Starting today, regular fanbois will be guinea pigs, it tells Reg
Another day, another Firefox: Version 31 is upon us ALREADY
Web devs, Mozilla really wants you to like this one
prev story

Whitepapers

7 Elements of Radically Simple OS Migration
Avoid the typical headaches of OS migration during your next project by learning about 7 elements of radically simple OS migration.
Implementing global e-invoicing with guaranteed legal certainty
Explaining the role local tax compliance plays in successful supply chain management and e-business and how leading global brands are addressing this.
Consolidation: The Foundation for IT Business Transformation
In this whitepaper learn how effective consolidation of IT and business resources can enable multiple, meaningful business benefits.
Solving today's distributed Big Data backup challenges
Enable IT efficiency and allow a firm to access and reuse corporate information for competitive advantage, ultimately changing business outcomes.
A new approach to endpoint data protection
What is the best way to ensure comprehensive visibility, management, and control of information on both company-owned and employee-owned devices?