
Art of UNIX Programming, The
by Raymond, Eric S.Rent Book
Rent Digital
New Book
We're Sorry
Sold Out
Used Book
We're Sorry
Sold Out
How Marketplace Works:
- This item is offered by an independent seller and not shipped from our warehouse
- Item details like edition and cover design may differ from our description; see seller's comments before ordering.
- Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
- Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
- Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.
Summary
Author Biography
Table of Contents
Preface | p. xxv |
Context | p. 1 |
Philosophy: Philosophy Matters | p. 3 |
Culture? What Culture? | p. 3 |
The Durability of Unix | p. 4 |
The Case against Learning Unix Culture | p. 5 |
What Unix Gets Wrong | p. 6 |
What Unix Gets Right | p. 7 |
Basics of the Unix Philosophy | p. 11 |
The Unix Philosophy in One Lesson | p. 25 |
Applying the Unix Philosophy | p. 26 |
Attitude Matters Too | p. 26 |
History: A Tale of Two Cultures | p. 29 |
Origins and History of Unix, 1969-1995 | p. 29 |
Origins and History of the Hackers, 1961-1995 | p. 43 |
The Open-Source Movement: 1998 and Onward | p. 49 |
The Lessons of Unix History | p. 51 |
Contrasts: Comparing the Unix Philosophy with Others | p. 53 |
The Elements of Operating-System Style | p. 53 |
Operating-System Comparisons | p. 61 |
What Goes Around, Comes Around | p. 78 |
Design | p. 81 |
Modularity: Keeping It Clean, Keeping It Simple | p. 83 |
Encapsulation and Optimal Module Size | p. 85 |
Compactness and Orthogonality | p. 87 |
Software Is a Many-Layered Thing | p. 95 |
Libraries | p. 99 |
Unix and Object-Oriented Languages | p. 101 |
Coding for Modularity | p. 103 |
Textuality: Good Protocols Make Good Practice | p. 105 |
The Importance of Being Textual | p. 107 |
Data File Metaformats | p. 112 |
Application Protocol Design | p. 123 |
Application Protocol Metaformats | p. 127 |
Transparency: Let There Be Light | p. 133 |
Studying Cases | p. 135 |
Designing for Transparency and Discoverability | p. 148 |
Designing for Maintainability | p. 154 |
Multiprogramming: Separating Processes to Separate Function | p. 157 |
Separating Complexity Control from Performance Tuning | p. 159 |
Taxonomy of Unix IPC Methods | p. 160 |
Problems and Methods to Avoid | p. 176 |
Process Partitioning at the Design Level | p. 181 |
Minilanguages: Finding a Notation That Sings | p. 183 |
Understanding the Taxonomy of Languages | p. 185 |
Applying Minilanguages | p. 187 |
Designing Minilanguages | p. 206 |
Generation: Pushing the Specification Level Upwards | p. 215 |
Data-Driven Programming | p. 216 |
Ad-hoc Code Generation | p. 225 |
Configuration: Starting on the Right Foot | p. 231 |
What Should Be Configurable? | p. 231 |
Where Configurations Live | p. 233 |
Run-Control Files | p. 234 |
Environment Variables | p. 238 |
Command-Line Options | p. 242 |
How to Choose among the Methods | p. 248 |
On Breaking These Rules | p. 252 |
Interfaces: User-Interface Design Patterns in the Unix Environment | p. 253 |
Applying the Rule of Least Surprise | p. 254 |
History of Interface Design on Unix | p. 256 |
Evaluating Interface Designs | p. 257 |
Tradeoffs between CLI and Visual Interfaces | p. 259 |
Transparency, Expressiveness, and Configurability | p. 264 |
Unix Interface Design Patterns | p. 266 |
Applying Unix Interface-Design Patterns | p. 280 |
The Web Browser as a Universal Front End | p. 281 |
Silence Is Golden | p. 284 |
Optimization | p. 287 |
Don't Just Do Something, Stand There! | p. 287 |
Measure before Optimizing | p. 288 |
Nonlocality Considered Harmful | p. 290 |
Throughput vs. Latency | p. 291 |
Complexity: As Simple As Possible, but No Simpler | p. 295 |
Speaking of Complexity | p. 296 |
A Tale of Five Editors | p. 302 |
The Right Size for an Editor | p. 309 |
The Right Size of Software | p. 316 |
Implementation | p. 319 |
Languages: To C or Not To C? | p. 321 |
Unix's Cornucopia of Languages | p. 321 |
Why Not C? | p. 323 |
Interpreted Languages and Mixed Strategies | p. 325 |
Language Evaluations | p. 325 |
Trends for the Future | p. 344 |
Choosing an X Toolkit | p. 346 |
Tools: The Tactics of Development | p. 349 |
A Developer-Friendly Operating System | p. 349 |
Choosing an Editor | p. 350 |
Special-Purpose Code Generators | p. 352 |
make: Automating Your Recipes | p. 357 |
Version-Control Systems | p. 364 |
Runtime Debugging | p. 369 |
Profiling | p. 370 |
Combining Tools with Emacs | p. 370 |
Reuse: On Not Reinventing the Wheel | p. 375 |
The Tale of J. Random Newbie | p. 376 |
Transparency as the Key to Reuse | p. 379 |
From Reuse to Open Source | p. 380 |
The Best Things in Life Are Open | p. 381 |
Where to Look? | p. 384 |
Issues in Using Open-Source Software | p. 385 |
Licensing Issues | p. 386 |
Community | p. 391 |
Portability: Software Portability and Keeping Up Standards | p. 393 |
Evolution of C | p. 394 |
Unix Standards | p. 398 |
IETF and the RFC Standards Process | p. 403 |
Specifications as DNA, Code as RNA | p. 405 |
Programming for Portability | p. 408 |
Internationalization | p. 413 |
Portability, Open Standards, and Open Source | p. 414 |
Documentation: Explaining Your Code to a Web-Centric World | p. 417 |
Documentation Concepts | p. 418 |
The Unix Style | p. 420 |
The Zoo of Unix Documentation Formats | p. 422 |
The Present Chaos and a Possible Way Out | p. 426 |
DocBook | p. 427 |
Best Practices for Writing Unix Documentation | p. 434 |
Open Source: Programming in the New Unix Community | p. 437 |
Unix and Open Source | p. 438 |
Best Practices for Working with Open-Source Developers | p. 440 |
The Logic of Licenses: How to Pick One | p. 456 |
Why You Should Use a Standard License | p. 457 |
Varieties of Open-Source Licensing | p. 457 |
Futures: Dangers and Opportunities | p. 461 |
Essence and Accident in Unix Tradition | p. 461 |
Plan 9: The Way the Future Was | p. 464 |
Problems in the Design of Unix | p. 466 |
Problems in the Environment of Unix | p. 473 |
Problems in the Culture of Unix | p. 475 |
Reasons to Believe | p. 478 |
Glossary of Abbreviations | p. 479 |
References | p. 483 |
Contributors | p. 495 |
Rootless Root: The Unix Koans of Master Foo | p. 499 |
Index | p. 511 |
Table of Contents provided by Ingram. All Rights Reserved. |
Excerpts
An electronic version of this book is available through VitalSource.
This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.
By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.
Digital License
You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.
More details can be found here.
A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.
Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.
Please view the compatibility matrix prior to purchase.