Slashdot Mirror


Linux Programming By Example

Craig Maloney writes "Linux Programming By Example is a book aimed squarely at programmers learning how to program the Linux and UNIX system for the first time." Read Craig's review of Linux Programming by Example (below) to find his take on whether the book delivers on the promise of its title. Linux Programming By Example author Kurt Wall pages 533 publisher QUE (InformIT) rating 9/10 reviewer Craig Maloney ISBN 0789722151 summary Linux Programming by Example is a concise and solid introduction to programming under the Linux system. Excellent instructions accompany fully-working examples of code.

There are plenty of books on this topic as any trip to the bookstore will show. Where this book excels compared with other Linux programming books is its consistent focus throughout. Other books tend to explain a multitude of concepts without relating them back to a real-world example. In Linux Programming By Example, the author introduces a concept, and explains it with an example. In the last chapter, the author integrates the knowledge he's presented, utilizing many of the book's concepts in building a simple CD-Database program. Of course, not all of the concepts relate to the final CD database (The chapters TCP/IP Programming, The Sound API and Using the Mouse are not referred to in the final program), but it's helpful for beginning programmers unsure how all of these pieces fit in the bigger picture of a working program.

Begin at the beginning

Linux Programming By Example begins with topics that don't get covered until the end of many books. The book starts by discussing how to use GCC and make on a Linux machine, and how to create a Makefile. It's always puzzled me why some books don't cover the compiler or the make process until the end of the book. What's the point in that? Granted, chapters in debugging and RCS are left to the end of the book, but presenting key concepts in the development process early in the book helps the reader to get a better feel for how all of these concepts interrelate in a Linux/UNIX environment.

Moving forward

From the basics of compilation and making programs, the book moves to the basics of a Linux system in Part II: System Programming. This is where the book truly shines. In the section on processes, Wall discusses the elements that make up a process, how to manipulate a process, and why you would want to do this anyway. The book assumes no prior UNIX knowledge, but doesn't plod along like most introductory texts. In the section on signals, the book defines what signals are, early signal APIs and their issues, POSIX and Linux signal APIs, and how to use signals and signal sets. In this chapter, the author not only lists the signals supported by the Linux system, but also other signals supported by POSIX and other UNIX systems. While this might sound confusing, the author takes time out to explain which signals are really important in a Linux environment. This is a key reason why this book retains its readability without losing depth. Each chapter in the System Programming portion of the book retains this format -- not only demonstrating what the topic is, but also where this fits in a Linux/UNIX system and why you would even bother to know this in the first place.

What's good?

Linux Programming By Example is clearly aimed at getting programmers up to speed on not only programming Linux systems, but also POSIX based systems. Wherever possible, the author makes a point of pointing out the POSIX way. This book could have been easily called POSIX Programming by Example. The author also makes no bones about implementation issues with Linux and the POSIX or System V way of implementation. The book clearly states where Linux falls short of the full POSIX standard, and where pitfalls with porting code from other systems may occur. It's a refreshing change from other beginner texts which assume the reader will discover these pitfalls on their own.

So what's in it for me?

If you're looking for a quick, effective way to get up to speed in Linux and UNIX programming without breaking the bank, Linux Programming by Example is the book to take you there. This book is designed for programmers who are familiar with programming on other systems but haven't dealt with Linux before.

You might have trouble locating this book, since QUE let it lapse for a while, but there should be another batch hitting stores soon. You won't be disappointed.

You can purchase Linux Programming By Example from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

34 of 155 comments (clear)

  1. Chicken and egg by Ed+Avis · · Score: 4, Funny

    But where is the 'Reading By Example' that tells you how to read this book?

    --
    -- Ed Avis ed@membled.com
  2. WROX press books also very good on the subject by vasqzr · · Score: 4, Informative


    I've always liked the the red books.

    B&N

  3. I have this book and it has brought me great joy by PhysicsGenius · · Score: 4, Informative
    His examples are clear and useful and I look forward to the day when most Linux programmers will have been taught using this book. I wish there was a way to get current Linux programmers to read it, because his advice is very sound and would make for much higher quality software than you see in the Linux world today.

    The current Linux programming wisdom comes from Richard Stevens, a know-nothing hack who spends more time talking about the out-dated concept of filesystem permissions and socket programming than he spends on GUI design! I mean, for crying out loud, Dick, this is the Aughts! We "aught" to be optimizing for the user experience, not ivory tower "engineering principles"!

    Anyway, throw away your copy of Linux Kernel Internals because this book replaces it...and then some!

  4. Outdated? by ksplatter · · Score: 5, Informative

    This Book Was published in 1999.

    It might be a little outdated. This review seems to be a couple of years late

    1. Re:Outdated? by TheKubrix · · Score: 4, Funny

      its only been 3 years out of date, its not like linux has gone through that many changes......

      :\

      next review: VAX programming by example, circa 1978

  5. I enjoyed... by cerebralsugar · · Score: 5, Informative

    Advanced Linux Programming, from CodeSourcery/New Riders. It wasn't a "beginning/intro" book but still very easy to read and quite informative. Lots of great code samples too. The finale of the book is actually coding a bare-bones http server.

    --
    Easy guys, I put my pants on one leg at a time. The difference is after I put on my pants I make gold records!
  6. Other good Linux programming books by TraderElron · · Score: 5, Informative

    I've used two Linux programming books, and would recommend both: 1. "Linux Application Development" by Johnson and Troan. A bit more advanced than "Linux Prog by Example," but I was able to use it effectively coming from NO linux/UNIX programming experience. 2. "Advanced Programming in the UNIX Environment" by Stevens. An excellent reference.

  7. Linux Programming By Example????? by isa-kuruption · · Score: 3, Funny

    Who is Example? Is that some kind of hacker nick? What qualifications does he/she have to write a book about Linux programming? I'm confused!

    1. Re:Linux Programming By Example????? by A+nonymous+Coward · · Score: 4, Funny

      You, Confused, wonder who Example is. I am Enlightened. Pleased to meet you.

  8. You're just attracted to... by MondoMor · · Score: 3, Funny

    ... the hideously ugly, deformed mutant greaseballs on the covers.

    At least, that's why I buy WROX Press publications. I've got a whole library, and it looks like the bleedin' Chernobyl yearbook exploded on my bookshelf.

  9. learning by example... by MosesJones · · Score: 3, Funny

    I have always found that the best way to manage a team is by example. First person who breaks the build, smash his hands. Second person, shoot in the head... sure enough everyone learns from that example and works extra hard.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
  10. Makefiles.... by idfrsr · · Score: 5, Insightful

    Probably the most evil and wonderful thing of programming in *nix environments.

    I am going to get this book because it covers make in the begining. I have always had trouble getting my makefiles to work properly in the few instances of linux programming that I have done. And even then I copied an existing one and adjusted it to my needs.

    I suppose the "there is only 1 makefile" saying exists for a reason...

    --
    "The large print giveth, and the small print taketh away" -Tom Waits
    1. Re:Makefiles.... by Zathrus · · Score: 3, Informative

      The problem is, even if your code is portable the compiler may not be. Or the linker. Not everyone is up to full ANSI compliance still.

      Ever worked on AIX using xlC? And libtool? They're totally different from the rest of the known universe and so even if your code will happily compile on Linux, Solaris, etc. then the makefiles have to be absurdly complex to handle AIX's weirdness.

      Of course, you may want to do dynamic linking since libtool and templates don't play well together. But, looky, xlC doesn't play well either so you have to have a separate .cpp that excercises all the templated functions you're going to use on a per-library basis. Don't need that for any other OS, but you damn well do for AIX.

      Automake and autoconf save us from most of the nightmare here. Oh, and we're also linking against Oracle and MQSeries. More fun.

      Yes, avoiding things like #!/bin/bash (or even ksh) is wise, but automake/conf have come into existence for a very good reason. Makefiles are godawful.

  11. Not Stocked by TheKubrix · · Score: 3, Informative

    The link to BN.com doesn't have the book in stock, get it at amazon.com instead, only $9

  12. 9/10 ? by Brandon+T. · · Score: 5, Informative

    I have this book, and I definetly would not give it a 9/10. The text is plagued with errors. Most of them are corrected easily enough, but it is still a hassle to type in some sample code and not even be able to compile it without debugging first. To make matters worse, the url in the book given to download the sample code (and the errata) doesn't work. Take a look at some of the amazon reviews to gauge popular opinion on the book. I picked up my copy on sale for $10 at frys, but I would wait for a second edition or look at another book if you're planning to pay full price.

    1. Re:9/10 ? by __past__ · · Score: 4, Funny
      it is still a hassle to type in some sample code and not even be able to compile it without debugging first.
      That is the "learn to debug broken programs by example" part.
  13. Make ? by tmark · · Score: 3, Informative

    I don't know about other readers, but when I hear that a book has a section on Makefiles, I really wonder whether it is specialized and focused on a specific programming area (as "Linux Porgramming" would suggest), assuming general programming knowledge, or whether it is a general programming book aimed at capitalizing on interest in the particular subject area. Sounds like it is the latter. Is the book more about "Linux programming", or more about "programming on machines that happen to be running Linux" ??

    Here's the acid test, does it contain a "Hello world" program or something similarly trivial ?

  14. this can also be had by da_Den_man · · Score: 3, Informative
    --
    You keep going until you die..."Me".
  15. great by tps12 · · Score: 5, Funny

    I've been looking for good working examples of source code for Linux programs.

    --

    Karma: Good (despite my invention of the Karma: sig)
  16. Re:What's in a name? by highcaffeine · · Score: 3, Insightful

    Actually, "in" would be inappropriate for the use you describe. Using "in" would imply that "Linux" or "Unix" are programming languages. It would be better to use "under" or possibly "on". "Programming under Linux" or "Programming on Unix in C".

    I agree with your basic point, however, that simply saying "Programming Linux" implies development work on the core components of a Linux system. If you really wanted to be pedantic about it, it would imply simply the Linux kernel.

  17. Alternatively... by vbweenie · · Score: 5, Informative

    The Wrox P2P title Beginning Linux Programming, by Richard Stones and Neil Matthew, covers some similar ground: makefiles, shell scripts, some basic C, Perl and TCL (not really basic - they show you how to use these languages to do some typical linux-y things, rather than explain about structs and scalars), an introduction to GTK and a chapter at the end on writing device drivers. If you're an intermediate-level programmer unfamiliar with Linux as a programming environment, this book offers a good way in; recommended for VB weenies with a conscience.

    --
    Experience is a hard school, but fools will learn no other.
    1. Re:Alternatively... by JohnnyCannuk · · Score: 3, Informative

      As a non-VB weenie (;) -> Java and formerly C/C++ - I can't but agree with you. Stones and Matthews book is a reference when I need to bone up on things like multi-threading and signals under POSIX.

      A really great book.

      I wonder how their 2nd book Professional Linux Programming is? (Hint hint /. )

      --
      Never by hatred has hatred been appeased, only by kindness - the Buddha
  18. Re:Outdated?? by ninthwave · · Score: 3, Informative

    I bought the book in late 2000
    and the changes are small.
    The book deals very well with the state of linux programming. The basics of make gcc and the different programming tools available. The changes in the programs since then are easy to pick up. It is more about programming technique, how the tools are organised in Linux and how they generally work. gcc 3.2 hasn't taken light years away from gcc 2.95xxx and I have found references for those differences. This book is now one of my favorite quick references.

    This is a starting block and a quick reference for many types of programming but it is not the end all reference.

    --
    I was thinking of the immortal words of Socrates, who said: "I drank what?" - Chris Knight (Val Kilmer)- Real Genius
  19. system level programming by yonnage · · Score: 3, Interesting

    Discusses how LINUX works at the system level by learning how and when to manipulate processes, send and catch signals, and use calls, and how to manipulate and read pipes and FIFOs.

    This book actually sounds really good, for advanced and beginner programmers that are new to linux/unix...

  20. Book selling out! by Sean+Clifford · · Score: 5, Funny

    Man, did everyone just go to Amazon and order this? Read BN was out, now Amazon - I was lucky enough to get one for ~$14; seems like every time I added to my cart a book was gone a few seconds later. Damn, this is the first time I've seen inventory slashdotted. :)

  21. Re:Excellent by TerryAtWork · · Score: 3, Insightful

    Maybe I'm pathetically striving for geek chiche, but I have always felt that the *nix school is the next level up.

    They seem so free of the weird little troubles that plague windows people, they are in charge of their own systems and not spoon fed like windows users, they run the entire Internet (at least the bedrock of it), and they have a system that has remained fundamentally almost unchanged for 30 years in this turbulent industry.

    I interpret that as a sign of evolution into perfection, or something like it.

    --
    It's Christmas everyday with BitTorrent.
  22. amazon sold out, amazon uk has it by e1en0r · · Score: 3, Informative

    it looks like everyone is buying up all the copies. i'm sure amazon uk will be selling out soon too, but it cost me $13 including shipping to california.

    and as an added bonus you get to read everything with an english accent.

  23. My Impressions of this book by starX · · Score: 3, Informative

    Neither outstanding or terrible, it ranks as a decent, average book on programming on the linux system. Although I would recommend Beginning Linux Programming by Wrox over this one, based solely on the fact that it covers so much more material in roughly the same amount of detail. Still, Linux Programming By Example costs a little bit less (at least when I got it), and while the Wrox book covers more, LPbE does cover a few things that the Wroc book doesn't.

    On the whole I would say it really deserves a 6.5 or a 7. It's worth getting if you're looking to learn about programming on a POSIX system, but if you already have a book on the topic, you might want to save your money.

  24. Kernighan and Pike also good by pjc50 · · Score: 3, Informative

    I'd reccomend "The Unix Programming Environment". Despite being written in 1978, it's still an extremely good introductory text.

  25. BN, what about Amazon? by Chacham · · Score: 3, Interesting

    You can purchase Linux Programming By Example from bn.com

    I started to purchase books from Amazon.com once I realized that BN doesn't post bad reviews. Maybe they do now though.

    As much as Amazon may have patented a stupid thing, they don't seem to censor comments. Many books have many bad comments. And, that is why I am happy to buy from them.

  26. Re:who would want to program for linux? by ctimes2 · · Score: 5, Interesting

    If your getting modded down it's because you bring nothing to the table. Take for example your post here:
    subject: who would want to program for linux?
    you don't get paid..

    First, that's a troll if we ever saw one. Because 1) there are millions upon millions who program for linux now. 2) they do it for fun, not money. 3) some do it for money too. 4) some do it just for the money. 5) who ever wrote a program they got rich off of? Careful here, remember that Bill Gates bought his first program to sell, and stole many others (or built on the work of others) after that. Microsoft makes money by SELLING software. Not writing it. There is a significant and subtle difference.

    Moving on:
    Welcome to America, land of capitalism..Is Microsoft hiring?
    If I'm not mistaken, America is the land of the free, not the land of capitalism. Capitalism (in it's purest form) has nothing to do with money. A capitalist form of finance stops being capitalism as soon as any one person or company has the ability to create an artificial barrier to competition (and that's whether or not they do actually create the barrier - it just has to be possible). In short - Capitalism depends on a free market, which you don't have if there are barriers to competition in an industry. So much for America being the land of Capitalism. Indeed, you misunderstand capitalism entirely. Capitalism centers around the individual. The individual has the final say and right in _any_ situation - Microsoft on the other hand is anti-capitalist in that whatever the programmer makes belongs to the company he works for. This is a violation of the programmers right to do what they want their own ideas. For example, if you helped write Microsoft's media-player, and had an ingenious idea on how to do it better, you could not leave the company and create this new player based on the knowledge you gained at Microsoft. You'd get sued into oblivion, even if you didn't use Microsofts IP to do it.
    The GPL on the other hand entitles the original author some degree of control over his work - if you wrote the original you (the individual) have the right to use the GPL or not (you can even re-licence _your own_ code to companies who don't want the restrictions of the GPL... just make sure it's ALL your code that your re-licencing), and entitles you (the individual) to place restrictions on how your work is used. Get it? Capitalism depends on the individual having rights that supercede the greater interest. Corporations supercede the right of the individual for the good of the company.

    And finally, if Microsoft is hiring, what difference does that make to you? Even Microsoft has standards.

    --
    My cube. My friend. My solace. My prison.
  27. Surprising to see a good QUE book by James+Youngman · · Score: 3, Informative

    I'm very surprised to see a good review of a QUE book. I find that the ones I've read - and that includes a QUE book of which I was one of several authors - are pretty dire.

    The problem with QUE books (and other Macmillan Computer Publishing imprints) is attention to detail. Their production processes tend to introduce errors (for example, by loading the text into Word and having it change all the backticks to apostrophes - that happened to me!). Also, they don't usually seem to do reprints correcting errors, they just seem either to produce a new edition ("Special Edition", whatever) with a "Featuring FooMatic 97!" badge on the cover.

    Another problem with QUE books is that they just tend to be written and published too fast - no time for doing a good job.

    I should emphasise that Macmillan Computer Publishing, who produce QUE books, are as far as I know completely unrelated to the British publisher, Macmillan.

    Disclaimer: You should know that I've had a bad experience as a contributing author of several MCP books, and have vowed not to have anything to do with them again. So as you can see I'm very biased against them. I have not read the "Linux Programming by Example" book and indeed haven't made any comments about this book in particular.

  28. Unix Systems Programming for SVR4 by Zurion · · Score: 4, Informative

    I have to write C/C++ code daily for Tru64 and Linux. Unix Systems Programming and Programming with POSIX Threads are two very good books. They aren't Linux-specific books, but I've used these books on a weekly (or daily) basis for a couple of years despite the USP book being written in '96.

  29. Re:Linux Lacks a Solid API by spitzak · · Score: 3, Informative
    You have no idea what you are talking about.

    There are problems and the problems are that some API's are not designed well. But this has nothing to do with "comprehensive API" or whatever you are blathering about. Rest assurred that Windows uses a different call for cut/paste than it does to read files, just like Linux.

    X is "integrated" in that it actually uses communication calls that exist in the system and are used by other parts of the system. This is why it works remotely. In this area Linux is vastly superior to Windows for "comprehensive API", in Windows there is NOTHING below the graphics interface that is reusable by anything other than graphics. The fact that X has a horrible interface is certainly true but irrelevant to "comprehensive".

    Also I don't think right-mouse pastes in ANY program. Middle mouse does, and it works in every X program I have ever seen. The inconsistencies are in what Ctrl+V does, not in what middle-mouse does. The fact that you did not know this indicates that you know little or nothing about Linux.