Domain: phptr.com
Stories and comments across the archive that link to phptr.com.
Stories · 14
-
Why Are Tech Books So Expensive?
Hellboy0101 asks: "Once again, I found myself sifting through my local Barnes and Noble for technical books. I don't do this very often, and apparently just enough time passes for me forget how expensive these books are. I can't help but think it's the fleecing of technology workers and enthusiasts, much like OEMs clearly take advantage of gamers with their unreasonably high prices. There certainly are some glaring and welcome exceptions to this rule. But my question is this: Why do they charge this much for books, and are we actually part of the problem by continuing to pay it?" -
XULRunner Developer Preview Release Available
TeachingMachines writes "A stable developer preview release of XULRunner 1.8.0.1 is now available. Based on the Firefox 1.5.0.1 codebase, it is available for Windows, Mac OS X, and Linux. From the Mozilla Developer Center (beta): "XULRunner is a Mozilla runtime package that can be used to bootstrap XUL+XPCOM applications that are as rich as Firefox and Thunderbird. It will provide mechanisms for installing, upgrading, and uninstalling these applications. XULRunner will also provide libxul, a solution which allows the embedding of Mozilla technologies in other projects and products." Help with programming with XUL and its related technologies can be found at XULPlanet. Beginning programmers will benefit especially from the XUL Tutorial. Also check out the XUL Element Reference to get an idea of what's available. "
A couple of other resources are worth mentioning. First, there is the XUL Programmer's Reference Manual which covers interface elements for XUL version 1.0. "Rapid Application Development with Mozilla" is available for download at Bruce Perens' Open Source Series page. If you get the book, make sure to check out the errata. Unfortunately, the author Nigel McFarlane has passed away, so this is likely the final version. One final reference, "Creating Applications with Mozilla," is available here.
For those individuals who are looking for an extremely powerful application framework that is relatively easy to use, Mozilla is definitely worth a look. -
Linux Troubleshooting
norburym writes "The Bruce Perens Open Source Series of books published by Prentice Hall PTR is a strong collection of nearly 20 volumes focusing on Linux and open source technology. Edited by Linux guru and former Debian GNU/Linux Project Leader, Bruce Perens, the books are aimed toward developers, sysadmins and power users. Several months following the release of a new print volume, a free electronic version is made available on Prentice Hall PTR's web site. The series includes some excellent editions including Official Samba-3 HOWTO and Reference Guide (2nd ed.), Linux Quick Fix Notebook and PHP 5 Power Programming. The newest book by Mark Wilding and Dan Behman, Self-Service Linux: Determining Problems and Finding Solutions, is another well-written and worthy companion to this series." Read the rest of Mary's review. Self-Service Linux: Determining Problems and Finding Solutions author Mark Wilding and Dan Behman pages 456 publisher Prentice Hall, PTR rating 8 reviewer Mary Norbury-Glaser ISBN 013147751X summary Linux Troubleshooting
This is not a basic Linux HOW TO book: authors Wilding and Behman take the reader to a level past the introductory Linux OS installation instructions and KDE/GNOME window dressing changes. In all real life scenarios and at some critical point, a Linux user or admin will need to troubleshoot some aspect of the system they use at home or the systems they manage on the job. This book is for that power user, systems administrator or developer who will, out of base necessity, require a proper bag of tools and practical guidance in establishing an effective set of skills for troubleshooting one or more Linux systems.
A quick scan of the table of contents gives a very abbreviated summary of the book and actually belies the depth of the contents. The authors break the chapters into very self-contained topics including best practices and initial investigations, strace and system call tracing explained, the /proc filesystem, compiling, GDB (GNU Debugger), Linux system crashes and hangs, and kernel debugging, among others. These chapters are filled with detailed examples that perfectly illustrate real world scenarios that any Linux user will be familiar with.
Chapter 1 is an overview of the complex process of problem determination and resolution and begins with steps to configure your Linux system(s) for optimal troubleshooting. The authors outline a selection of tools they recommend the reader/user install on their Linux system(s) in anticipation of future problems: strace, ltrace, lsof, top, traceroute/tcptraceroute, ping, hexdump, tcpdump/ethereal, GDB and readelf. These and many others are categorized by type (process information and debugging, network, system information, files and object files, kernel and miscellaneous) in Appendix A, "The Toolbox." Wilding and Behman stress the importance of balancing the need to solve issues immediately vs. building troubleshooting skills. They outline four phases of problem investigation (using your own knowledge and skills to investigate, using the Internet, conducting a deeper investigation, and getting help) and discuss where the various tools fit into different scenarios, how to collect information about system changes, what resources are available on the Internet (Google, USENET, Bugzilla, etc.), how to handle more difficult problems and where and how to get outside help, if necessary.
Chapter 2 explains system call tracing, introduces the strace tool (traces system calls between a process and the kernel) and how to use it to diagnose errors related to the operating system. This is a very well organized chapter with plenty of depth. Wilding and Behman offer an extensive discussion of this first tool, progressing from simple examples that illustrate how to read the strace output, how/when to use strace options, timing system call activity, tracing an existing running process, to many practical debugging examples.
Chapter 3, "The /proc Filesystem," looks at user process information (/proc/self, /proc/<pid>, /proc/<pid>/environ, /proc/<pid>/mem), kernel information and manipulation (/proc/cpufreq, /proc/cpuinfo, /proc/devices, /proc/meminfo, /proc/partitions), and system information and manipulation (/proc/sys/fs, /proc/sys/kernel, /proc/sys/vm). The authors run through files and directories relative to /proc and describe how to view information about the kernel and currently running processes. This chapter gives a good example of how to use the "kernel magic sysrq key" feature (using the ALT-SysRq hotkeys to get kernel information) when a system hangs. Output from the commands showPC, showMem and showTasks are given as examples.
The next chapter details the GCC (GNU Compiler Collection) and compiling. The authors don't attempt to walk the reader through basic kernel source compiling but rather they concentrate on how to decipher errors that arise from compiling source. They give a basic outline of some basic compile failures (environment/setup errors, compiler version differences, user error, code error, etc.) then show a common error involving both incorrect code and different allowances made between compiler versions. Wilding and Behman show the reader how to decipher the kernel error and how to use both existing documentation and bugs posted on the Internet to correct the errors and rerun the compilation successfully. This is a very practical demonstration of how compile errors can be worked out and solved quickly.
Chapter 5 begins with a definition of "stacks" and a description of stack structure, local variables, and stack frames. Also shown is how to display the raw stack in a debugger like DDD (Data Display Debugger) or GDB (The Gnu Debugger) in order to perform a detailed stack analysis. The authors use the backtrace command to look at stack traceback output from GDB, "walking the stack" (manually walk the raw stack frame by frame using the dladdr function), common causes of stack corruption, and SIGILL signals.
Debugging applications is the subject of the next chapter with the majority of the chapter dedicated to The GNU Debugger. This is a logical place for a discussion on debuggers as the authors point out that they are particularly useful when problems can't be solved through log files, error messages, etc., when a problem is of an immediate nature (i.e. doesn't extend over a long period of time) and when source is available. GDB command line editing is covered along with how to control a live process by running the process directly through the debugger, how to attach to a running process and how to use a core file (or a process image) to perform debugging. The authors also examine viewing the memory map and variables, looking at the contents of register dumps, working with C++ (inline functions and exceptions), and problems with threaded applications. A brief description of the Data Display Debugger (DDD) GUI front-end to GDB is included at the conclusion of the chapter.
Chapter 7 deals with "System Crashes and Hangs" and how to assemble the appropriate information necessary to troubleshoot a system problem using various tools and techniques: using the syslog, setting up and using a serial console, using the SysRq kernel magic hotkey, examining the oops report generated by a manual kernel trap, considering hardware failure issues, and setting up cscope to index kernel sources. This chapter prepares the reader for documenting proper and extensive details about errors and problems not only for rapid diagnosis but also in the event he or she needs to call in an expert.
Kernel Debugging with KDB is a brief chapter that instructs the reader on how to enable and activate KDB, basic commands associated with its use, and some examples on how to use it. Several good illustrations of where KDB proves useful over other tools are included.
The final chapter explores the ELF file format (executable and linking format) for shared libraries and executables. The authors provide a comprehensive look at the ELF standard on Linux. They start with basic definitions and concepts (symbols names and C versus C++, linking with static libraries and run time linking, and run time linker) and prep the reader with some source code that is used in later chapter examples. They examine the ELF file structure (the header using hexdump, segments/sections with readelf, the program header table, and the section header table). This is probably the strongest chapter in the book. There is enough information and instruction in this chapter to arm a Linux system troubleshooter to follow the practical examples with little effort.
The book concludes with two valuable appendices that detail the authors' selected tools for Linux problem determination and include a data collector script intended to capture basic critical system information in the event of a problem. As discussed above, the "Toolbox" appendix is a summary of the authors' selection of best Linux tools for diagnosing problems. Each tool has a brief description, where to get it, level of usefulness, when to use the tool and additional notes. Appendix B, "Data Collection Script," offers the reader a sample bash script tool that gathers a broad range of system information. The authors provide several optional switches to increase the amount of data collected with the caveat that time to collect that information also increases.
Wilding and Behman assume some familiarity with the Linux system: their advice and instruction are intended for those users who are not afraid of the CLI and who understand basic Linux operating and file system structure. That said, Self-Service Linux: Mastering the Art of Problem Determination is a valuable resource for advanced users and system administrators. In short, this book is for anyone who uses Linux on a daily basis on one or multiple systems. The examples are fully detailed: the reader gets commands, options, output, sample code, and a variety of possible outcome scenarios. Wilding and Behman set out a realistic and practical approach to problem solving; they satisfy the troubleshooter in all of us. Self-Service Linux is a welcome addition to the Bruce Perens Open Source series of Prentice Hall PTR professional reference books."
You can purchase Self-Service Linux: Determining Problems and Finding Solutions from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
'PHP 5 Power Programming' Available for Download
OneSeventeen writes "As mentioned earlier on slashdot, the Bruce Perens Open Source series has expanded its selection with PHP 5 Power Programming. As with all of the books in this series, electronic copies are offered free of charge several months after its printed release. While it is always nice to have even more PHP books on the bookshelves, this has been officially released on the Bruce Perens' Open Source Series for download in the form of a 720 page PDF file. Better PHP programming is only 9.3MB away!" -
Web Design Garage
jsuda (John Suda) writes "Web Design Garage is a remarkably clear-headed, concisely-written and feature-rich book about contemporary web-design topics. It is part of a "Garage" series of hip-looking, style-laden books published by Prentice Hall (Prentice Hall Professional Technical Reference -- PH PTR) and is targeted at the "garage" level designer: small business professionals, hobbyists, and technophiles. It assumes some modest familiarity of HTML and working with Javascript." Read on for the rest of Suda's review. Web Design Garage author Marc Campbell pages 530 publisher Prentice Hall PTR rating 8 reviewer John Suda ISBN 0131481991 summary Hands-on Guide to web design and usabilityThis is not a primer, tutorial, or concept-bound book. It is meant to provide practical guidance and solutions to the most common Web design issues dealt with by Web designers. Author Marc Campbell, offers a set of 86 topics about Web design problems and solutions. The format for nearly all of the 86 topics is to highlight a design challenge, then offer solutions using pictures, examples, and code snippets. Although a good and quick read from beginning to end, the book can be read piecemeal for information and guidance on a specific issue. One can pick and choose topics depending on interest or need.
There are no traditional chapters, only a set of design topics of relatively short length organized into 8 general categories. Those categories include design and usability topics, layout, images, text, links, forms, and two others -- one of miscellaneous items, the other an explanation of basic Web-design material. There is also an index and a short glossary of HTML, CSS, Web, and graphics-related terms.
The fundamental theme of the book is that design and usability are, or should be, the same thing. Usability is paramount, of course, but the author's approach to Web design emphasizes creating a "sense of place": good design unites pages so that they look like they belong together.
This is not an earth-shattering idea, but like most of all of the design treatments, the goal is to design pages which make it easy for visitors to use the site. Many good design virtues are virtually invisible to the casual user. There is a confluence of design and usability; it's only when a design element doesn't work well that it comes to the attention of the user, and that's something to avoid. The author shows by example how design and usability are intertwined.
There are a handful of themes which guide the book. Admirably, the author emphasizes for every design element a concern for accessibility. Many of the design guides refer to accessibility by screen-readers and non-graphic browsers. A second major concern is for compliance with contemporary Web design standards as those promulgated by the World Wide Web Consortium. Consequently, there is much emphasis on the separation of page structure from content, where CSS is used for structure and HTML is used for content. A contrast of HTML and CSS formatting is highlighted in many of the chapters.
There is a large handful of sections which express HTML and CSS formatting differences on page layout, text and image positioning, and other Web design elements. There is clear discussion on how to work with Javascript and stylesheets. The emphasis is on "forward-looking" coding, i.e., clean, standards-compliant, and accessibility conscious. Campbell offers an experienced designer's insights on choices to be made in design components. There is much value for both inexperienced and seasoned designers.
Each topic is richly expressed with clear and straightforward text, illustrations, screenshots, and sidebars on a variety of related matters. There are sidebars throughout titled "FAQs" and "Geekspeak," explaining concepts or terminology for the less-knowledgeable reader. Then there are those called "Tips" which usually offer an insight to practical problems, especially dealing with browser-compatibility issues. There are many useful tables and charts indexing specific tag attributes, with examples. In addition, and most useful, are the "Toolkits" which are sample code snippets. It would have been nice to have the code snippets available for downloading from the publisher's Web site.
This is a dense volume containing all sorts of information useful for the "garage" web designer. For some reason, the depth and weight of the content is reflected in the book itself, which is remarkably heavy, weighing in at a well-produced 29 ounces.
There are many books available on basic Web design, but this one is unusually clear and well-expressed. This is the type of book one keeps handy in the bookshelf next to the computer to access for quick solutions to everyday Web design problems.
You can purchase Web Design Garage from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Core CSS (2nd ed.)
Simon P. Chappell writes "It used to be that a website could be standards compliant or it could be attractive and impressive to prospective customers, but it could almost never be both. Now with the rise of CSS compliant browsers, a new generation of web designers are finding that the old wisdom is ready to be retired. CSS technology allows a website to have both excellent, semantically indicated content and attractive layouts. Core CSS (2ed.) positions itself as a complete guide to all of this standards based goodness." Read on for the rest of Chappell's review. Core CSS (2nd ed.) author Keith Schengli-Roberts pages 818 (10 page index) publisher Prentice Hall rating 6 reviewer Simon P. Chappell ISBN 0130092789 summary A flawed diamond
What is CSS? Cascading Style Sheets (the CSS part of the book's title) are a way to separate the content and presentation of a web page. The CSS file holds the presentation instructions, leaving the HTML to hold only the content. While CSS is a formal World Wide Web Consortium (W3C) standard, the adoption has been somewhat slow, with browsers only reaching full compliance with the base level of the standard within the past year or so. So why is CSS useful? CSS shines when it is used to define the style of a whole site. Want all of your headings to be the right shade of your corporate blue? No problem. Want every page to have the corporate logo on it's background? No problem. Whoops, got bought by GlobalMegaUberCorporation Inc. and need to change the colours and background logos in a hurry? No problem, just change the CSS definitions and your new corporate identity will shine out for all your customers to see. What do I know about CSS? I am a relative newcomer to CSS, having been laying out websites using tables since 1995. I had decided that it was time to learn how to bring my personal website up to speed with the latest standards, when I was offered the chance to review this book, so I took Prentice Hall PTR up on the opportunity. This review then, is from the perspective of one who knows HTML well enough to develop a couple of sites using only vi and who has decided to learn CSS. Overview The back cover blurb claims that Core CSS 2nd Edition is a comprehensive guide that shows both beginning and expert web developers all they need to know to achieve great results with the latest style sheet properties. It also claims to be ... the most complete and up-to-date CSS reference available. This review will explore those two claims. What's To Like The first thing to like about this book is that it does cover almost everything that it's possible to write about Cascading Style Sheets. I have included the table of contents below so that you can get a feel for the breadth that this book aims at covering. The writing style is clear and explanatory with an underlying conversational tone, quite suited to this manner of book. It is also obvious from the text that Mr. Schengli-Roberts does understand his subject matter very well indeed.The biggest thing to like about this book, for me, is appendix B, an alphabetical listing of the defined CSS properties and values. This list covers 92 pages and is a key part of the whole book. Importantly, it doesn't feel like filler and gives an impression that care has been taken in devising this very useful resource. Each entry in the appendix gives an example of correct usage of each property, which as a CSS neophyte I appreciated greatly.
What's To Consider This book carries a 2004 copyright, yet it feels old when you view the list of browser compatibilities for each property. While it does give compatibility information for Microsoft Internet Explorer 6, it only covers Mozilla 1.0, it mentions Konqueror without any version details and completely omits Apple's Safari browser. This spotty coverage seems at odds with the rest of the book and really felt like a glaring omission to me. Summary This is a good book -- and if you're in the process of learning to use Cascading Style Sheets, you should certainly consider it for your collection. It is flawed by a poor selection of browsers for it's compatibility lists; while this may not be an issue for you, I found it quite irksome. This explains my review score and my description of this book as a flawed diamond.
Far more information than most people could ever want to know about Simon P. Chappell is available at his personal website. You can purchase Core CSS (2nd ed.) from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, carefully read the book review guidelines, then visit the submission page. -
Samba 3 By Example
ALecs writes "When I first discovered Samba, I was in heaven! I could serve my Linux filesystems to my Windows 95 desktop and life was good. Between then and now, though, Samba has gotten a lot more capabilities, and I've been struggling to keep up with the cryptic voodoo that is Windows networking. While 'The Official Samba-3 HOWTO and Resource Guide' has been a great resource, Samba seems to just be once of those packages that you just need to see in action to understand. Hearing my cries, and those of countless others, John H. Terpstra has bestowed upon the Samba community the tome of ancient knowledge sought by all: Samba 3 By Example: Practical Exercises to Successful Deployment ." Read on for the rest of Malone's review. Samba 3 By Example: Practical Exercises to Successful Deployment author John H. Terpstra pages 340 publisher Prentice Hall PTR rating 10 reviewer Joshua Malone ISBN 0131472216 summary Working examples to use Samba 3 in small or large officeSamba 3 By Example begins on a very friendly note by explaining how to get the most out of it any what you'll need to complete the exercises in the rest of the book. The beginning also includes a Windows networking primer, complete with packet captures (using the popular tool 'ethereal') showing how network browsing really works, under the hood.
This book follows the evolution of a fictitious company, "Abmas", through an impossible growth from a 9-person office to a 2000-person network with multiple sites around the world. You assume the role of the IT guy: charged with growing the company's network infrastructure, planning for change and, above all, keeping the users happy.
Some of the major challenges tackled in this book are:
- Using Samba-3 as an NT-4 style PDC
- Using Samba-3 as an domain member server
- Using the various authentication backends as alternatives to the traditional 'smbpasswd' backend
- Using LDAP to implement a Samba-3 PDC with backup domain controllers
- Authentication using winbindd
- Migrating from NT-4 to Samba-3 for a PDC
- Using kerberos to integrate Samba-3 into a Microsoft Active Directory domain (as a domain member server)
I am extremely impressed by Terpstra's book. It addresses the complete spectrum of Samba deployments, from the 10-person office to the 2000-seat, multi-site enterprise while explaining not just what to do, but how to do it and, most importantly, why. The examples are practical and you can really imagine some poor sap^H^H^H^H^H^H^H^H unfortunate systems administrator finding him/herself in these very positions. This book says that these scenarios are hypothetical aggregations of real-world situations, but could swear I've worked for this company before.
One of the nicest things about this book is that each situation is followed by a Q&A section - almost like a textbook - that addresses both the important points of the exercise, as well as some of the trivial details that were left out for the sake of brevity. Don't be tempted to skip them thinking that it's just a rehash.
It's worth noting that this book is not a replacement for TOSHARG and defers to it for technical details in multiple cases. These two books should be sidearms for any IT administrator that has to deal with Windows clients on a daily basis.
I'm also very impressed with Terpstra's candor about Samba's features, weaknesses and road map. Nowhere in this book is Windows put down as inferior or is Samba touted as the "be-all, end-all" of Desktop and client management solutions. The relative flexibility of Active Directory and Samba is discussed only briefly and the choice to use Samba over Windows is ultimately left to the reader. Since you've gone to the trouble of purchasing this book, Terpstra assumes you've already made up your mind and require no further convincing.
Continuing to be mindful of office politics, Terpstra devotes a section in each chapter to the political implications of replacing Windows with an open source product, and an entire chapter to the issues inherent in bringing Samba into a traditionally Windows-based shop. Even though he refers to this chapter as a "shameless self-promotion of Samba-3", I found it to be an even-handed discussion of the issues you will most likely encounter from anti-Unix advocates and IT managers who have bought into the anti-Linux FUD. These are real issues that Systems Administrators need to know how to deal with effectively but too many of us simply dismiss because we feel they are uninformed.
In addition to examples of Samba configuration, examples are provided to integrate Samba with other useful servers such as the squid web proxy, OpenLDAP, bind and dhcpd. The configuration files for Samba as well as these additional pieces of software are also conveniently located on the included CD-ROM, along with Samba 3.0.2 packages for Red Hat Fedora Core 1 and SuSE Linux (Enterprise server 8 for x86 and s390 and SuSE Linux 9).
I think my biggest complaint with this book is that the "case study"-like format of this book tends to lump a large number of new features into a single example. This can make it hard to isolate the particular feature that you're interested in.
For instance, the example that illustrates automatic printer driver downloads to Windows clients is lumped into a chapter that is primarily concerned with using LDAP to implement a BDC. Automatic driver installation is a great feature that many sites far too small to consider implementing LDAP would likely be interested in.
In all, though, I'm extremely pleased with Samba 3 by Example - perhaps even more than TOSHARG. In it, you'll find plenty of tips, working examples and honest admissions of bugs (and their workarounds) that will keep you from losing your sanity. You could almost call this book a 300 page Samba and Windows networking consultant with over 8 years of experience. Terpstra has been incredibly kind to the Samba community by imparting so much wisdom to us all in this book.
Josh Malone has been a FreeBSD and Windows system administrator for three and a half years working in development shops and hosting companies, and currently works as a Linux engineer for an embedded systems company. You can purchase Samba 3 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 -
Implementing CIFS
Bombcar writes "Anyone who has used Microsoft products in the last ten years has used the SMB protocol (now known as CIFS). Some have become experts in the usage of Windows file sharing, Samba, and more. We know that there can be a 15 minute delay before new machines appear in 'Network Neighborhood'. We've read the Official Samba 3 book, and follow the Samba mailing list once in a while, perhaps even answering questions. But there is a limit to the knowledge given by these sources." Read on for Bombcar's review of Implementing CIFS from Prentice Hall. Implementing CIFS author Christopher R. Hertel pages 642 publisher Prentice Hall rating 8 of 10 reviewer Tom Dickson ISBN 013047116X summary In-depth (but not too deep) coverage of the CIFS/SMB protocolIt is one thing to be able to use Samba, Windows, and the Common Internet File System (CIFS) protocol. It is another thing entirely to understand CIFS with sufficient depth to begin coding using it. This is where Christopher Hertel's Implementing CIFS begins.
This thick book (over 600 pages) begins with a history of NetBIOS in the DOS era. It quickly progresses to NetBIOS over TCP/IP (which evolved into the current CIFS protocol). Hertel documents the beginnings of quirks that will last throughout the life of the protocol. There is an RFC that was proposed in 1987, but many vendors have added extensions to this. (It might surprise you to learn that Samba has added extensions, which are covered in Chapter 24).
After the basic overview, he quickly dives into real coding of an actual (though simple) implementation. This will be his style for the rest of the book (except for humorous asides now and then). An aspect of the protocol, such as Name Resolution, will be explained in some detail, and then expounded in actual code (and in a few cases pseudocode).
The detail is good but not overwhelming. Some people (with names like Jerry Carter or Andrew Tridgell) will want more depth than this book provides, but for with a protocol as varied as CIFS, choices have to be made. As the Samba website mentions, this book is written in "Geekish." The book covers aspects of older and newer SMB/CIFS implementations, including a description of the NTLM2 challenge/auth system.
One thing that should be noted is that the code examples work, but as the author points out, they usually have little or no error handling. This is common to many books, but it is something to remember.
Now, should you get this book? If you're just a user, you probably don't need it. But if you've ever wished you could understand the Samba technical mailing list, or wanted to know why it takes up to 15 minutes to see a new machine, then you'll enjoy this book. If you want to utilize CIFS in any manner (even if just implementing Samba for clients), I'd highly recommend reading this. It will help you to understand what is going on on your network, even if you're not writing the code yourself. And if you want to be a Samba coder, it is required reading.
What didn't I like? I first read the book in an airport, and found that it relies heavily on having access to a computer. I would have preferred more explanations of code fragments than was given. However, this is a minor issue; most people who are implementing CIFS will be using a computer! I was also left with a desire for more information, but the large Appendix D along with many sources recommended provide for further study.
As a bonus, Appendix A tells you how to make a good cup of Earl Grey tea! That alone to some would be worth the price of admission.
You can purchase Implementing CIFS from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Linux Development Platform
honestpuck writes "Back before the advent of Mac OS X, my favourite (and for many years, only) development environment was one variety of Unix or another. The nicest thing about Unix was that the development environment stayed pretty much the same regardless of the variety; this stayed the same with the introduction of Linux." Honestpuck examines how true this still is (as well how accurate the chosen title is) in his review of Prentice Hall's The Linux Development Platform, below. The Linux Development Platform author Rafeeq Ur Rehman and Christopher Paul pages 320 publisher Prentice Hall PTR rating 7 reviewer Tony Williams ISBN 0130091154 summary Good guide to developer toolsThe Linux Development Platform might be better titled "The GNU Development Platform" since almost all of the tools discussed come from the FSF, and those that don't are nevertheless open source; as a result they will run on almost any Unix variety. You know that the 'Linux' in the title is almost just a marketing ploy, but we will forgive Prentice Hall and the authors. Certainly more people will buy this book to learn about using these tools under Linux than under any other *nix variety.
The book starts with a short chapter on software development per se before getting down to the nuts and bolts. It starts in the obvious spot, with editors, and quickly covers choosing an editor before taking a brief look at Emacs, Jed and VIM. The rest of the book is devoted to much less contentious issues.
As a whole, the text provides a good grounding in using gcc, make, CVS and GDB, with enough extra information on smaller tools and larger issues (such as cross-platform and embedded systems) that you will not need more than this book and, perhaps, the man pages to understand and use these tools. Of course others, have written entire volumes on each of these topics, but for most of us this book will provide the information we need.
The Linux Development Platform comes with a CD containing the source for a fair number of the tools discussed, so you can build any tools which happen to be missing on your platform, though some of the included apps are, of course, already a version or two behind.
The writing is mixed in quality: while never bad, it has a slightly heavy, technical feel to it, often a bit wordy or cumbersome. This rarely gets in the way of understanding, but it does slow you down. The topic coverage is good, moving from a beginner level right through to a good understanding of each tool discussed. More importantly, all the tools you will need are covered.
I imagine this would make an excellent companion text for any programming course: note that it doesn't provide details on any programming language, but covers everything else you need to know regarding the development tools. It is thinnest in the discussion of editors, really only giving a brief overview of each. I cannot really see this as a fault since detailed coverage really would take a separate book, and this quick look is better than pretending to cover the topic well and failing. The other possible weakness is that there is almost no coverage of general Linux usage, so calling the book The Linux Development Platform is a bit of a misnomer -- it is really devoted to the tools available for development, not the underlying operating system at all. Once again, I feel that this lack is not serious; most buyers should know enough about the operating system and any attempt to cover it adequately would have swelled the size and cost of the book.
Prentice Hall PTR have a site for the book with a Table of Contents or you can see the whole book in HTML format at FAQs.org.
I would recommend this book to anyone who would like a good, general introduction to developing software on a Unix platform. Though it's not a cheap book, it is a good one. It was certainly a relief for me to find a good book in Prentice Hall's 'Bruce Peren Open Source Series' after a couple of flawed ones.
You can purchase The Linux Development Platform from bn.com. Slashdot welcomes readers' book reviews -- to submit a review for consideration, read the book review guidelines, then visit the submission page. -
Online! The Book
honestpuck writes "Titling a volume 'Online! The Book' and putting "The perfect gift for any computer user!" amongst other hyperbole on the back cover must rank as this years greatest act of hubris." Honestpuck has a strong opinion of whether this hubris is justified or insane -- read on below for his review. Online! The Book author John C. Dvorak and Chris Pirillo (with Wendy Taylor) pages 701 publisher Prentice Hall PTR rating 3 reviewer Tony Williams ISBN 0131423630 summary Padding, information and errors all in the one volume. Could be worse, but not by much.If only John C. Dvorak and Chris Pirillo (with Wendy Taylor) had been able to deliver. If only they had not strewn the book with error, verbiage and irrelavancy. Ah, well.
This volume in its 700 pages (divided into 28 chapters) tries to cover everything from hardware basics to voice over IP, in between touching on e-commerce, security, web programming, networking, content management and business websites, to name just six of the topics perhaps each better suited to a volume of their own.
This book skims, and skims fast, over a number of important and vital topics while dwelling on others that many will find useless. Chris Pirillo seems to be an expert on marketing, so that gets thirty pages, while web programming languages get ten. We get forty pages of 'Hardware Basics,' which cover information vital to getting online such as operating systems, varieties of Intel chips, video cards and gaming audio drivers. I know that if I wanted to find the perfect spot to put breakout boxes about Babbage and von Neumann (essential to any book about getting online) I'd put them in the chapter on viruses. It seems as if the three authors said "we're contracted to seven hundred pages so let's just throw in topics we know a lot about until we get to seven hundred pages -- then stop."
Then there are the errors. We get editing errors like the text that tells us a 'geostationary satellite' orbits at 'about 22,300 miles,' next to a diagram showing the number 20,300 miles. We get errors in logic like the breakout box that has "DNS servers may run Apache, which is an open source Web server program" and goes on to imply that all DNS servers will run a web server. We get errors in grammar. We get paragraphs like "Although there are dynamic Web page URLs (meaning they change, or at least part of it does), most are static (stay the same). These can be dynamic by use of a programming error or dynamic because someone named the URL extension without adding a link elsewhere on the web site." With sentence construction like that I'm still not sure if the claim intended is true or not.
Did I like anything about this book? Sure, the chapter on 'How A Modem (Really) Works' was full of good solid information. Other chapters were similar, particularly the two following on networking and handhelds, phones and PDAs. Others did contain some good information, just surrounded by dross.
You can go to the book's website, which is basically just a single page with yet more hyperbole ("Everything is here. Well-written. Comprehensive.") or visit the Prentice Hall page, which actually gives you a table of contents and a sample chapter. Just don't go straight to the Prentice Hall PTR home page and search for books with "Online" in the title, as that won't find it. Instead search for books with "Book" in the title.
I'd only recommend this book to those who want to spend a lot of time finding the good bits, a few minutes chuckling over some of the errors, and thirty dollars on a paperweight. If you're really looking for a 'perfect gift' for people new new to the net, then find something cheaper covering just the essentials, and for those more expert, find a volume that actually covers a topic of interest well.
You can purchase Online! The Book from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Online! The Book
honestpuck writes "Titling a volume 'Online! The Book' and putting "The perfect gift for any computer user!" amongst other hyperbole on the back cover must rank as this years greatest act of hubris." Honestpuck has a strong opinion of whether this hubris is justified or insane -- read on below for his review. Online! The Book author John C. Dvorak and Chris Pirillo (with Wendy Taylor) pages 701 publisher Prentice Hall PTR rating 3 reviewer Tony Williams ISBN 0131423630 summary Padding, information and errors all in the one volume. Could be worse, but not by much.If only John C. Dvorak and Chris Pirillo (with Wendy Taylor) had been able to deliver. If only they had not strewn the book with error, verbiage and irrelavancy. Ah, well.
This volume in its 700 pages (divided into 28 chapters) tries to cover everything from hardware basics to voice over IP, in between touching on e-commerce, security, web programming, networking, content management and business websites, to name just six of the topics perhaps each better suited to a volume of their own.
This book skims, and skims fast, over a number of important and vital topics while dwelling on others that many will find useless. Chris Pirillo seems to be an expert on marketing, so that gets thirty pages, while web programming languages get ten. We get forty pages of 'Hardware Basics,' which cover information vital to getting online such as operating systems, varieties of Intel chips, video cards and gaming audio drivers. I know that if I wanted to find the perfect spot to put breakout boxes about Babbage and von Neumann (essential to any book about getting online) I'd put them in the chapter on viruses. It seems as if the three authors said "we're contracted to seven hundred pages so let's just throw in topics we know a lot about until we get to seven hundred pages -- then stop."
Then there are the errors. We get editing errors like the text that tells us a 'geostationary satellite' orbits at 'about 22,300 miles,' next to a diagram showing the number 20,300 miles. We get errors in logic like the breakout box that has "DNS servers may run Apache, which is an open source Web server program" and goes on to imply that all DNS servers will run a web server. We get errors in grammar. We get paragraphs like "Although there are dynamic Web page URLs (meaning they change, or at least part of it does), most are static (stay the same). These can be dynamic by use of a programming error or dynamic because someone named the URL extension without adding a link elsewhere on the web site." With sentence construction like that I'm still not sure if the claim intended is true or not.
Did I like anything about this book? Sure, the chapter on 'How A Modem (Really) Works' was full of good solid information. Other chapters were similar, particularly the two following on networking and handhelds, phones and PDAs. Others did contain some good information, just surrounded by dross.
You can go to the book's website, which is basically just a single page with yet more hyperbole ("Everything is here. Well-written. Comprehensive.") or visit the Prentice Hall page, which actually gives you a table of contents and a sample chapter. Just don't go straight to the Prentice Hall PTR home page and search for books with "Online" in the title, as that won't find it. Instead search for books with "Book" in the title.
I'd only recommend this book to those who want to spend a lot of time finding the good bits, a few minutes chuckling over some of the errors, and thirty dollars on a paperweight. If you're really looking for a 'perfect gift' for people new new to the net, then find something cheaper covering just the essentials, and for those more expert, find a volume that actually covers a topic of interest well.
You can purchase Online! The Book from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Red Hat Linux System Adminstration Handbook
Systems administrators -- good system administrators -- are worth their weight in coffee beans weekly, probably more if you count overtime. Getting to be a competent admin for a network of GNU/Linux machines isn't easy, especially when so many organizations rely on Windows. Today, chromatic reviews a book that can give a boost to Windows administrators learning to step up. It's definitely Red Hat-centric, right down to the title, but may be useful even if you're using some other flavor of Linux. Red Hat Linux System Adminstration Handbook author Mark F. Komarinsky & Cary Collett pages 405 publisher Prentice Hall rating 8 reviewer chromatic ISBN 0-13-025395-2 summary A good introduction to Linux, aimed at power users and current Windows administrators.
The Scoop In a bookcase-breaking extravaganza last summer, Slashdot reviewed several books intended for new Linux users. While the kernel, Free Software and Open Source applications, and distributions often undergo periods of rapid change and improvement, the basic principles of use and administration remain constant.On those lines, Red Hat Linux System Adminstration Handbook is a solid book. Though it specifically discusses Red Hat, most of the information can be applied to other distributions. It strikes a unique balance between the needs of an end user and an administrator. Additionally, the authors go out of their way to explore proprietary and libre software for certain needs.
What's to Like The book imparts a good sense of flexibility. In just a few pages, the RPM chapter enumerates several installation options, covers SRPMs in decent detail, and lists helper applications to simplify life. Many of the other chapters are similarly dense. This doesn't detract from the book's readability, and it covers most of the common details. Readers will learn the necessary basics while being made aware of extra information available. This is also evident in the Networking chapter. While focusing on medium-sized networks, there's enough data provided to get a few boxes up and running with little fuss. The backup chapter is excellent, and so is the chapter on Samba.This book covers several details often omitted from other books. For example, the installation chapter discusses dual booting with both FreeBSD and Windows NT. Another section outlines PAM (Pluggable Authentication Modules, used to configure finer-grained access). Even the chapters on sendmail and wu-ftpd talk about more secure alternatives, such as qmail, BeroFPT, and ProFTPD.
It's hard to quantify what makes a good system administrator. Part of it is wisdom and experience, part is natural talent. Another component develops with time. Tucked into corners here and there, the authors provide useful nuggets designed to spark intuition in a budding junior administrator's mind. This is very subtle, but there's definitely an underlying theme.
What's to ConsiderThe book covers Red Hat 6.0. Only a few spots have gone out of date with recent releases. For example, the kernel configuration and hardware support information describes the 2.2.x family. As well, packet filtering and masquerading use ipfwadm and ipchains, instead of iptables (available in the 2.4.x family). Most configuration and administration advice still applies.
Some chapters are short. Linux handles printing much differently from Windows, but it receives only 7 pages. The material is good, if skimpy. (Luckily, the Samba chapter fills in some blanks.) Adding more links to sources of additional information would improve this. On the whole, this is a workable reference book, but it won't replace a Nutshell handbook.
Summary and Table of Contents On the whole, the Handbook packs in a lot of data. Administrators already familiar with Windows will get the most from the book. It will require some sense of exploration and adventure, but that's one of the most compelling parts of free software.Bundled with a CD-ROM, this book forms part of a Training course. It includes several demonstration videos and animations accompanied by audio. Each course corresponds to a book chapter (minus the chapters describing available software or the programming languages) along with practice tests. Easily installed, everything runs in a web browser under Linux or Windows. It won't substitute for a live teacher, but corresponds nicely with the text. This could come in handy for a small business or group on a budget.
- Introduction
- Installation
- Linux Boot and Shutdown
- Account Administration
- RPM
- Networking with Linux
- Printing and Print Sharing
- Samba
- Setting up FTP Services
- Applications for Linux
- Linux Database Software
- Programming Languages
- Web Serving
- X Windowing System
- Securing Linux
- Kernel Administration
- System and Network Monitoring
- Backing Up Your Data
- Talking to Your Peripherals
- Connecting to the Internet
- Appendix A (URLs)
- Appendix B (miscellaneous)
You can purchase this book at Fatbrain. Note: Also available with audio/video CD and tests in The Complete Red Hat Linux Training Course , available as ISBN 0-13-088223-2. -
Linux Routers
Sitting at your average Linux box is becoming simpler by the day, but the complexity and volume of information that that machine is likely to transmit and recieve is only getting greater. Reader Martin Barry contributed this review of Linux Routers. This book promises to unravel that complexity for the reader willing to trade some time and effort for a custom solution to their own routing requirements. Linux Routers author Tony Mancill pages 329 publisher Prentice Hall rating 7 reviewer Martin Barry ISBN 0-13-086113-8 summary Fundamental look at replacing brand name routers with ones based on generic hardware and Linux. Develops concepts of core routing features and relevant extensions in the context of six router applications including LAN, WAN and Internet.
Overview Linux Routers is an interesting little book that pulls together the kind of information that one could find browsing various HOW-TOs and guides into a concise narrative explaining the tasks required to build and operate Linux-based routers.Opening the book is a discussion on the fundamental theories underlying routing and the infrastruture required to implement routing solutions. For those (like myself) who have little exposure to network administration this will be particulary helpful as a lead in to the following chapters.
There is a chapter to further build on the basics of IP (addresses including RFC1918, subnetting, routing tables), ethernet (MAC addresses, ARP, switching) and wide area networks (types of links, integrating with telco hardware, billing).
The detail increases as the book progresses. It starts with the simplest installation, routing between two ethernet segments covering the basics of setting up Linux networking and routing. Methods of IP accounting are also introduced. Mention is also made of the Linux Router Project and the single floppy distribution they have developed.
Moving onto WAN routers introduces the telco issues and ways to preserve bandwdith (http proxy, caching dns). IPchains is introduced in the context of masquerading otherwise unroutable addresses. Various tools are listed in a section that demonstrates how to view traffic on the network for educational and debugging purposes. Monitoring of traffic over a router is also described, using MRTG to collect and beautify data. Chapter 7 includes methods of reducing said traffic such as http caches and a DNS slave at the remote site.
A border router to the Internet is used to raise related security issues and the use of proxy servers to screen access from the outside in or the inside out. This information bridges across chapters 6 and 8 and includes topics like packet filtering firewalls, port redirection and proxies. The flexibility of Linux is demonstrated by the ability to integrate routing and Internet servers on a single box. With obvious reservations about how wise that is, it is pertinent that failure detection, notification and recovery are all covered.
What's to like The information starts out simple and builds on itself in cyclical nature as the book progresses. The six scenarios are the ones likely to be encountered in a production environment and illustrate the benefits of using Linux routers.The issues of choosing Linux as a router are well addressed, including discussions on thorny topics like "Total Cost of Ownership," and provide a framework for you to assess your own situation. The writer's style is clear and easy to read.
Different WAN and Internet telco links are discussed (POTS, frame relay, dedicated digital access circuit) including how to configure the link and what protocols to run over it.
Peripheral issues, such as troubleshooting tcp or proxy servers, are dealt with well. Information is provided to allow you to understand the integration with the routing infrastructure you are deploying. When the topic starts to drift from the task at hand the author makes good use of redirecting people interested in more detail to other references (Web sites, books).
What's annoying The author is a part of the Debian project so some things have a bit of a Debian slant on them (this includes the file system layout referred to and the config files). This shouldn't be too much of an issue for most people, though it will require a thorough understanding of one's own system or problem-solving via your distribution's manual. WAN hardware and software discussions are limited by the author's experience, with a particular brand of card and one software package (wanpipe -- of which the author is the Debian maintainer) being focused on.Alternatives are mentioned, but not in great depth, and the examples therefore might not be portable to your choice of card or software.
Summary If you are comfortable with enabling routing, IPchains, proxy servers and troubleshooting tcp/ip on Linux, this book will be of little use other than to provide a step-by-step approach. On the other hand, if you currently use brand-name routers but have sometimes wondered whether that 486 in the corner could be put to good use, this book will certainly guide you on your travels.
Table of Contents Note: the author uses the elements to name boxen, hence the names of the chapters.- Routing Building Blocks (Hardware, Environment, Software)
- IP, Ethernet and Telephony Basics (Routing, Ethernet, WAN)
- Silicon - LAN Router (LAN Routing, IP Aliasing and Accounting)
- Erbium - an Extranet Router (IP Masq, IP Monitoring)
- Zinc - Frame Relay Router (WAN Hardware and Software, MRTG)
- Oxygen - Internet Router (Security, Firewalling, Failure Detection)
- Californium - Satellite Office Router (Caches and Slaves, Multifunction Routers, Remote System Support)
- Hafnium - Internet Services Router (Proxying, IP Redirection, Routing Daemons, Emergency Recovery)
- A) Links
- B) Compiling a Kernel
- C) Testing Strategies
- D) Ethics and Other Considerations
- E) GPL
You can purchase this book from ThinkGeek. -
Review:Unix Network Programming, Vol. 1
Arjen Laarhoven has taken some time to send in a review of W. Richard Stevens' book Unix Network Programming, Vol. 1. Obviously the first in a series, this is an updated version of the original, introduced in 1990. This book covers new concepts from the original, from multi-threading to IPv6, in addition to the rest of knowledge this tome contains. Click below to read more. UNIX Network Programming, 2nd Ed, Volume 1; Networking APIs: Sockets and XTI author W. Richard Stevens pages publisher Prentice-Hall, Inc. rating 10 reviewer Arjen Laarhoven ISBN 0-13-490012-X summary This new edition of UNIX Network Programming explains almost every detail of network programming on the UNIX platform thoroughly and clearly. New concepts which have become mainstream since the first edition of 1990, like multithreaded programs are explained, as are the mechanics of IPv4 and IPv6 interoperability which will become important in a few years.When you start with UNIX programming, and have mastered the basics, the first thing most people want to try out is network programming (at least, I wanted to :-). A lot of people who work with UNIX or Linux have access to a networked environment, and work with networked applications and tools on daily basis. There are a lot of papers and tutorials on
socketprogramming floating around on the Net, but these mostly describe the basic mechanics. In a very short time, you can create small client-server programs which work quite nice. But there is a lot more to UNIX network programming than just being able to open sockets and send data back and forth.At this point, this new edition of UNIX Network Programming enters the scene. The material from the first edition (almost 9 years old now) is greatly expanded to describe todays standards and new additions to the UNIX environment, like multithreading and IPv4/IPv6 interoperability.
This new edition of UNIX Network Programming is split into 3 volumes, of which 2 are published (Volume 2 is "Interprocess Communications", and 3 will describe important networking applications which). The main reason for this split is that the topic of network programming has expanded much since 1990. Also, the individual topics are much more elaborately described than the first edition.
An important addition to this new edition is the use of multithreaded programs in addition to the
forkandselectimplementation models. Multithreaded programs are a hot topic these days, as they make network programming easier in a lot of situations, and perform better on platforms with multiple processors.Another important topic is the use of IPv6 and its interoperability with the current IPv4 standard. A great deal of information is provided about making programs protocol-independent. This will be an important part of network programming, when IPv6 becomes more mainstream.
The first edition of this book described more protocols than just TCP/IP. Now, almost 9 years later, TCP/IP is the clear winner of the battle with protocols like OSI and XNS. Also, the
socketAPI for network programming has become the "de facto" standard. But thesocketAPI is not the only one which is described. The last part of the book describes the XTI (the X/Open Transport Interface) networking API, which originated at SysV and is part of the X/Open Unix 98 specification. Some parts of the interface has provisions to accommodate these other protocols, and are mentioned where applicable, but the focus is on TCP/IPOther nice things are the coverage of the low-level networking APIs, like the BPF (BSD Packet Layer Filter), the DLPI (Data Link Provider Interface) and the Linux (!) SOCK_PACKET interface. These 3 interfaces are mostly platform and/or OS dependent, so there is also information about the
libpcaplibrary (used intcpdump, for example), which provides portable access to these low-level networking capabilities.Not all the things described in UNP2V1 are available on all UNIX platforms, so some things will not work on the platform on which you are developing your network applications. But most UNIX vendors are hard at work to implement all the standards. Sun Solaris and DEC UNIX 4 are currently the most capable platforms in this respect. There is good information on the networking capabilities of Linux, and the Linux community is hard at work to let it adhere to the standards decribed in this book.
What's in it for me? If you are looking for more in-depth information about creating networking applications on the UNIX platform, UNP2V1 is for you. Not only descriptions of the various functions are provided, but things are explained thoroughly and often accompanied by example programs, which you can run and tinker with. Every chapter is ended by a section of exercises, with which you can test your understanding of the material covered in the chapter. Not only theoretical questions are asked, but a lot of exercises require you to compile, run and change the example programs and figure out what is happening because of the changes.Instead of just describing the interfaces, there is also information provided on how the TCP/IP protocol works. Stevens has found it very enlightening to know some of the mechanics of the protocol, because you know what is going on "under the hood" and can track down problems very quickly. In some discussions, Stevens refers to his TCP/IP Illustrated series, which provide much more details on the complete TCP/IP protocol suite.
Debugging is a large part of the programming process, and network programming requires some additional tools to diagnose and solve problems in network applications. Stevens explains how to use tools like
netstat,tcpdump,ifconfigand his ownsockprograms to help you debug your network applications.Designing a network application (and especially servers) can be done in various ways. The most important concepts are the
What's Good? The first printing did not provide enough information in the captions of the example programs. Stevens goes through a number of revisions of a program, to include the information just covered. The problem was that you did not know if a program was not optimal or even buggy, unless you read the text. This has been changed in the new printings. Also, the first printing has a lot of typos, and some errors but these bugs have been fixed in the new printings. Stevens maintains a very detailed errata list, so you can debug your copy of UNP2V1 if necessary.forking model, theselectmodel and the use of multithreading. In a separate chapter, Stevens describes the pros and cons of the different models, illustrated by examples and performance measurements. This way, you can make an informed decision on how to design your network application.I think that you have to read through this book at least once to use it as a reference. This way, you know what is possible, and can look up the parts you want when you need it. This is not a bad thing IMHO, because you have to understand the basic concepts before you can do anything useful.
The information in the front and back of the cover help you to find important functions, macro's and datastructures quickly. Also, the index is very good.
I have heard people complaining there is no information provided on network programming using the Win32 platform. These people seem unable to read titles of books. Also, the standards described in this book are standards which are created by POSIX and X/Open, and the UNIX community itself. Therefore, it is highly unlikely that they will change radically in the future. Microsoft controls the Win32 API completely, and can do with it what they want.
What's bad? IMHO, nothing. I am aware that the book is not cheap, and that the split into multiple volumes also does not help to cut the price. But to find out this kind of information in a depth comparable with what is described in UNP2V1 yourself will cost huge amount of time (and in the case of a professional programmer, a lot of money). This review is about the contents of the books and the quality of information, and not about price.Stevens keeps up-to-date errata on his home page, so when bugs or inconsistencies are discovered, you can find them quickly there. You can buy this book at Amazon.
Table of Contents (abbreviated) Part 1. Introduction and TCP/IP
- Chapter 1. Introduction
- Chapter 2. The Transport Layer: TCP and UDP
Part 2. Elementary Sockets
- Chapter 3. Sockets Introduction
- Chapter 4. Elementary Sockets
- Chapter 5. TCP Client-Server Example
- Chapter 6. I/O Multiplexing: The
selectandpollfunctions - Chapter 7. Socket Options
- Chapter 8. Elementary UDP Sockets
- Chapter 9. Elementary Name and Address Conversions
Part 3. Advanced Sockets
- Chapter 10. IPv4 and IPv6 Interoperability
- Chapter 11. Advanced Name and Address Conversions
- Chapter 12. Daemon Processes and
inetdSuperserver - Chapter 13. Advanced I/O Functions
- Chapter 14. Unix Domain Protocols
- Chapter 15. Nonblocking I/O
- Chapter 16.
ioctlOperations - Chapter 17. Routing Sockets
- Chapter 18. Broadcasting
- Chapter 19. Multicasting
- Chapter 20. Advanced UDP Sockets
- Chapter 21. Out-of-Band Data
- Chapter 22. Signal-Driven I/O
- Chapter 23. Threads
- Chapter 24. IP Options
- Chapter 25. Raw Sockets
- Chapter 26. Datalink Access
- Chapter 27. Client-Server Design Alternatives
Part 4. XTI: X/Open Transport Interface
- Chapter 28. XTI: TCP Clients
- Chapter 29. XTI: Name and Address Functions
- Chapter 30. XTI: TCP Servers
- Chapter 31. XTI: UDP Clients and Servers
- Chapter 32. XTI Options
- Chapter 33. Streams
- Chapter 34. XTI: Additional Functions
Appendix A. IPv4, IPv4, ICMPv4, and ICMPv6
Appendix B. Virtual Networks
Appendix C. Debugging Techniques
Appendix D. Miscellaneous Source Code
Appendix E. Solutions to Selected Exercises
Bibliography
Index
Links to Web pages related to UNIX Network Programming, Vol. 1