The art of UNIX programming:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston, MA [u.a.]
Addison-Wesley
2004
|
Schriftenreihe: | Adison-Wesley professional computing series
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXXII, 525 S. |
ISBN: | 0131429019 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV017367006 | ||
003 | DE-604 | ||
005 | 20080114 | ||
007 | t | ||
008 | 030729s2004 xxu |||| 00||| eng d | ||
010 | |a 2003058264 | ||
020 | |a 0131429019 |9 0-13-142901-9 | ||
035 | |a (OCoLC)52638755 | ||
035 | |a (DE-599)BVBBV017367006 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-Aug4 |a DE-898 |a DE-91G |a DE-92 |a DE-11 |a DE-739 | ||
050 | 0 | |a QA76.76.O63 | |
082 | 0 | |a 005.4/32 |2 22 | |
084 | |a ST 261 |0 (DE-625)143633: |2 rvk | ||
084 | |a DAT 440f |2 stub | ||
100 | 1 | |a Raymond, Eric S. |e Verfasser |4 aut | |
245 | 1 | 0 | |a The art of UNIX programming |c Eric Steven Raymond |
264 | 1 | |a Boston, MA [u.a.] |b Addison-Wesley |c 2004 | |
300 | |a XXXII, 525 S. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Adison-Wesley professional computing series | |
630 | 0 | 4 | |a UNIX (Computer file) |
650 | 7 | |a Programmeren (computers) |2 gtt | |
650 | 7 | |a UNIX |2 gtt | |
650 | 4 | |a Operating systems (Computers) | |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a UNIX |0 (DE-588)4061835-3 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a UNIX |0 (DE-588)4061835-3 |D s |
689 | 0 | 1 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Passau |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=010467277&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-010467277 |
Datensatz im Suchindex
_version_ | 1804130195682099200 |
---|---|
adam_text | Contents
Preface
............................................................................................................. xxv
I Context
........................................................................ 1
1
Philosophy: Philosophy Matters
................................................................ 3
1.1
Culture? What Culture?
.................................................................. 3
1.2
The Durability of Unix
..................................................................... 4
1.3
The Case against Learning Unix Culture
........................................ 5
1.4
What Unix Gets Wrong
................................................................... 6
1.5
What Unix Gets Right
..................................................................... 7
1.5.1
Open-Source Software
..................................................... 7
1.5.2
Cross-Platform Portability and Open Standards
............... 8
1.5.3
The Internet and the World Wide Web
.............................. 8
1.5.4
The Open-Source Community
.......................................... 9
1.5.5
Flexibility All the Way Down
.............................................. 9
1.5.6
Unix Is Fun to Hack
.......................................................... 10
1.5.7
The Lessons of Unix Can Be Applied Elsewhere
............. 11
1.6
Basics of the Unix Philosophy
........................................................ 11
1.6.1
Rule of Modularity: Write simple parts connected by clean
interfaces
.......................................................................... 14
1.6.2
Rule of Clarity: Clarity is better than cleverness
............... 14
1.6.3
Rule of Composition: Design programs to be connected
with other programs
.......................................................... 15
1.6.4
Rule of Separation: Separate policy from mechanism;
separate interfaces from engines
..................................... 16
1.6.5
Rule of Simplicity: Design for simplicity; add complexity
only where you must
......................................................... 17
1.6.6
Rule of Parsimony: Write a big program only when it is clear
by demonstration that nothing else will do
........................ 18
1.6.7
Rule of Transparency: Design for visibility to make
inspection and debugging easier
...................................... 18
1.6.8
Rule of Robustness: Robustness is the child
of transparency and simplicity.
.......................................... 18
1.6.9
Rule of Representation: Fold knowledge into data,
so program logic can be stupid and robust
....................... 19
1.6.10
Rule of Least Surprise: In interface design, always do
the least surprising thing
.................................................. 20
1.6.11
Rule of Silence: When a program has nothing surprising
to say, it should say nothing
.............................................. 20
1.6.12
Rule of Repair: Repair what you can
—
but when you must
fail, fail noisily and as soon as possible
............................ 21
1.6.13
Rule of Economy: Programmer time is expensive; conserve
it in preference to machine time
....................................... 22
1.6.14
Rule of Generation: Avoid hand-hacking; write programs
to write programs when you can
....................................... 22
1.6.15
Rule of Optimization: Prototype before polishing. Get it
working before you optimize it
.......................................... 23
1.6.16
Rule of Diversity: Distrust all claims for one true way
..... 24
1.6.17
Rule of Extensibility: Design for the future, because it will
be here sooner than you think
.......................................... 24
1.7
The Unix Philosophy in One Lesson
............................................... 25
1.8
Applying the Unix Philosophy
......................................................... 26
1.9
Attitude Matters Too
........................................................................ 26
History: ATale of Two Cultures
................................................................. 29
2.1
Origins and History of Unix,
1969-1995......................................... 29
2.1.1
Genesis:
1969-1971........................................................ 30
2.1.2
Exodus:
1971-1980.......................................................... 32
2.1.3
TCP/IP and the Unix Wars:
1980-1990............................ 35
2.1.4
Blows against the Empire:
1991-1995 ............................. 41
2.2
Origins and History of the Hackers,
1961-1995............................. 43
2.2.1
At Play in the Groves of Academe:
1961-1980 ................ 44
2.2.2
Internet Fusion and the Free Software Movement:
1981-1991........................................................................ 45
2.2.3
Linuxand the Pragmatist Reaction:
1991-1998............... 48
2.3
The Open-Source Movement:
1998
and Onward
........................... 49
2.4
The Lessons of Unix History
........................................................... 51
3
Contrasts: Comparing the Unix Philosophy with Others
........................... 53
3.1
The Elements of Operating-System Style
....................................... 53
3.1.1
What Is the Operating System s Unifying Idea?
............... 54
3.1.2
Multitasking Capability
...................................................... 54
3.1.3
Cooperating Processes
.................................................... 55
3.1.4
Internal Boundaries
.......................................................... 57
3.1.5
File Attributes and Record Structures
......................,,.,..,. 57
3.1.6
Binary File Formats
.......................................................... 58
3.1.7
Preferred User Interface Style
.......................................... 58
3.1.8
Intended Audience
............................................................ 59
3.1.9
Entry Barriers to Development
......................................... 60
3.2
Operating-System Comparisons
..................................................... 61
3.2.1
VMS
.................................................................................. 61
3.2.2
MacOS
.............................................................................. 64
3.2.3 OS/2 ................................................................................. 65
3.2.4
Windows NT
..................................................................... 68
3.2.5
BeOS
................................................................................ 71
3.2.6
MVS
.................................................................................. 72
3.2.7
VM/CMS
........................................................................... 74
3.2.8
Linux
................................................................................. 76
3.3
What Goes Around, Comes Around
............................................... 78
Design
........................................................................ 81
4
Modularity: Keeping It Clean, Keeping It Simple
...................................... 83
4.1
Encapsulation and Optimal Module Size
......................................., 85
4.2
Compactness and Orthogonality
..............................,,....,,.,.,..,,,,.,,. 87
4.2.1
Compactness
....................................................,,,.,.,,.,.,..,. 87
4.2.2
Orthogonality
.................................................................... 89
4.2.3
The SPOT Rule
.....................................................,.,........ 91
4.2.4
Compactness and the Strong Single
Center
.................... 9?
4.2.5
The Value of Detachment
...................,.....................,.,.,.,, 94
4.3
Software Is a Many-Layered Thing
................................,......,,........ 95
4.3.1
Top-Down versus Bottom-Up
..........................................., 95
4.3.2
Glue Layers
...................................................................... 97
4.3.3
CaseStudy:
С
Considered as Thin Glue
.......................... 98
4.4 Libraries.......................................................................................... 99
4.4.1
Case Study:
GIMP Plugins ............................................... 100
4.5 Unix and Object-Oriented
Languages
............................................ 101
4.6
Coding for Modularity
...................................................................... 103
Textuality: Good Protocols Make Good Practice
...................................... 105
5.1
The Importance of Being Textual
.................................................... 107
5.1.1
Case Study: Unix Password File Format
.......................... 109
5.1.2
CaseStudy:
.
newsrc Format
....................................... 110
5.1.3
Case Study: The PNG Graphics File Format
.................... 111
5.2
Data File
Metaformats
.................................................................... 112
5.2.1 DSV
Style
......................................................................... 113
5.2.2
RFC
822
Format
............................................................... 114
5.2.3
Cookie-Jar Format
............................................................ 115
5.2.4
Record-Jar Format
........................................................... 116
5.2.5
XML
.................................................................................. 117
5.2.6
Windows INI Format
......................................................... 119
5.2.7
Unix Textual File Format Conventions
.............................. 120
5.2.8
The Pros and Cons of File Compression
.......................... 122
5.3
Application Protocol Design
............................................................ 123
5.3.1
Case Study: SMTP, the Simple Mail Transfer Protocol
..... 124
5.3.2
Case Study: POP3, the Post Office Protocol
.................... 124
5.3.3
Case Study: IMAP, the Internet Message Access
Protocol
............................................................................ 126
5.4
Application Protocol
Metaformats
................................................... 127
5.4.1
The Classical Internet Application Metaprotocol
.............. 127
5.4.2
HTTP as a Universal Application Protocol
........................ 128
5.4.3
BEEP: Blocks Extensible Exchange Protocol
................... 130
5.4.4
XML-RPC, SOAP, and Jabber
.......................................... 131
Transparency: Let There Be Light
............................................................. 133
6.1
Studying Cases
............................................................................... 135
6.1.1
Case Study: audacity
...................................................... 135
6.1.2
Case
SXuáy.fetchmaiľs -v
option
.................................. 136
6.1.3
Case Study: GCC
............................................................. 139
6.1.4
Case Study: kmail
............................................................ 140
6.1.5
Case Study:
SNG
............................................................. 142
6.1.6
Case Study: The Terminfo Database
................................ 144
6.1.7
Case Study: Freeciv Data Files
........................................ 146
6.2
Designing
for Transparency and Discoverability
............................. 148
6.2.1
The Zen of Transparency
.................................................. 149
6.2.2
Coding for Transparency and Discoverability
.................... 150
6.2.3
Transparency and Avoiding Overprotectiveness
............... 151
6.2.4
Transparency and Editable Representations
.................... 152
6.2.5
Transparency, Fault Diagnosis, and Fault Recovery
......... 153
6.3
Designing for Maintainability
..................................................,.,,,..,, 154
7
Multiprogramming: Separating Processes to Separate Function
............. 157
7.1
Separating Complexity Control from Performance Tuning
.............. 159
7.2
Taxonomy of Unix IPC Methods
..................................................... 160
7.2.1
Handing off Tasks to Specialist Programs
........................ 160
7.2.2
Pipes, Redirection, and Filters
.......................................... 161
7.2.3
Wrappers
.......................................................................... 166
7.2.4
Security Wrappers and Bernstein Chaining
...................... 167
7.2.5
Slave Processes
............................................................... 168
7.2.6
Peer-to-Peer Inter-Process Communication
..................... 169
7.3
Problems and Methods to Avoid
..................................................... 176
7.3.1
Obsolescent Unix IPC Methods
........................................ 176
7.3.2
Remote Procedure Calls
.................................................. 178
7.3.3
Threads—Threat or Menace?
.......................................... 180
7.4
Process Partitioning at the Design Level
........................................ 181
8
Minilanguages:
Findinga
Notation That Sings
......................................... 183
8.1
Understanding the Taxonomy of Languages
.................................. 185
8.2
Applying Minilanguages
.................................................................. 187
8.2.1
Case Study: sng
............................................................... 187
8.2.2
Case Study: Regular Expressions
..........................,.,,....., 188
8.2.3
Case Study: Glade
.......................,..,,..........,..,.,,.............. 191
8.2.4
Case Study: m4
................................................,..,,........... 193
8.2.5
Case Study: XSLT
.....................................................,...... 194
8.2.6
Case Study: The Documenter s Workbench Tool:;
............ 195
8.2.7
Case Study: fetchmail Run-Control Syntax
..................... 199
8.2.8
Case Study: awk
.....................................................,........ 200
8.2.9
Case Study: PostScript
..................................................... 202
8.2.10
Case Study: be and dc
..................................................... 203
8.2.11
CaseStudy: Emacs Lisp
................................................... 205
8.2.12
Case Study: JavaScript
.................................................... 205
8.3
Designing Minilanguages
................................................................ 206
8.3.1
Choosing the Right Complexity
Level............................... 207
8.3.2
Extending and Embedding Languages
............................. 209
8.3.3
Writing a Custom Grammar
.............................................. 210
8.3.4
Macros—Beware!
............................................................. 210
8.3.5
Language or Application Protocol?
................................... 212
9
Generation: Pushing the Specification Level Upwards
............................. 215
9.1
Data-Driven Programming
.............................................................. 216
9.1.1
Case Study:
ascii
............................................................. 217
9.1.2
Case Study: Statistical Spam Filtering
............................. 218
9.1.3
Case Study: Metaclass Hacking in fetchmailconf
........... 219
9.2
Ad-hoc Code Generation
................................................................ 225
9.2.1
Case Study: Generating Code for the
ascii
Displays
....... 225
9.2.2
Case Study: Generating HTML Code for a Tabular List
.... 227
10
Configuration: Starting on the Right Foot-.
................................................ 231
10.1
What Should Be Configurable?
...................................................... 231
10.2
Where Configurations Live
............................................................. 233
10.3
Run-Control Files
............................................................................ 234
10.3.1
Case Study: The .netrc File
........................................ 236
10.3.2
Portability to Other Operating Systems
............................ 238
10.4
Environment Variables
.................................................................... 238
10.4.1
System Environment Variables
......................................... 238
10.4.2
User Environment Variables
............................................. 240
10.4.3
When to Use Environment Variables
................................ 240
10.4.4
Portability to Other Operating Systems
............................ 242
10.5
Command-Line Options
.................................................................. 242
10.5.1
The
-ato
-
z
of Command-Line Options
........................ 243
10.5.2
Portability to Other Operating Systems
............................ 248
10.6
How to Choose among the Methods
.............................................. 248
10.6.1
Case Study: fetchmail
..................................................... 249
10.6.2
Case Study: The XFree86 Server
..................................... 251
10.7
On Breaking These Rules
............................................................... 252
11
Interfaces: User-Interface Design Patterns in the Unix Environment
........ 253
11.1
Applying the Rule of Least Surprise
............................................... 254
11.2
History of Interface Design on Unix
................................................ 256
11.3
Evaluating
Interface
Designs .......................................................... 257
11.4
Tradeoffs between
CLI
and Visual Interfaces
.................................. 259
11.4.1
Case Study: Two Ways to Write a Calculator Program
..... 262
11.5
Transparency, Expressiveness, and Configurability
........................ 264
11.6
Unix Interface Design Patterns
....................................................... 266
11.6.1
The Filter Pattern
.............................................................. 266
11.6.2
The Cantrip Pattern
.......................................................... 268
11.6.3
The Source Pattern
.......................................................... 268
11.6.4
The Sink Pattern
............................................................... 269
11.6.5
The Compiler Pattern
....................................................... 269
11.6.6
The
ed
pattern
.................................................................. 270
11.6.7
The Roguelike Pattern
...................................................... 270
11.6.8
The Separated Engine and Interface Pattern
.................. 273
11.6.9
The
CLI
Server Pattern
..................................................... 278
11.6.10
Language-Based Interface Patterns
................................. 279
11.7
Applying Unix Interface-Design Patterns
........................................ 280
11.7.1
The Polyvalent-Program Pattern
....................................... 281
11.8
The Web Browser as a Universal Front End
................................... 281
11.9
Silence Is Golden
............................................................................ 284
12
Optimization:
............................................................................................ 287
12.1
Don t Just Do Something, Stand There!
......................................... 287
12.2
Measure before Optimizing
............................................................. 288
12.3
Nonlocality Considered Harmful
..................................................... 290
12.4
Throughput vs. Latency
.................................................................. 291
12.4.1
Batching Operations
......................................................... 292
12.4.2
Overlapping Operations
.................................................... 293
12.4.3
Caching Operation Results
................................................ 293
13
Complexity: As Simple As Possible, but No Simpler
................................. 295
13.1
Speaking of Complexity
.................................................................. 296
13.1.1
The Three Sources of Complexity
.................................... 296
13.1.2
Tradeoffs between Interface and Implementation
Complexity
........................................................................ 298
13.1.3
Essential, Optional, and Accidental Complexity
............... 299
13.1.4
Mapping Complexity
......................................................... 300
13.1.5
When Simplicity Is Not Enough
........................................ 302
13.2
ATale of Five Editors
...................................................................... 302
13.2.1
ed
...................................................................................... 304
13.2.2
vi .......................................................................................
305
13.2.3
Sam
.................................................................................. 306
13.2.4
Emacs
............................................................................... 307
13.2.5
Wily
................................................................................... 308
13.3
The Right Size for an Editor
............................................................ 309
13.3.1
Identifying the Complexity Problems
................................ 309
13.3.2
Compromise Doesn t Work
............................................... 312
13.3.3
Is Emacs an Argument against the Unix Tradition?
.......... 314
13.4
The Right Size of Software
............................................................. 316
Implementation
.......................................................... 319
14
Languages: To
С
or Not To C?
.................................................................. 321
14.1
Unix s Cornucopia of Languages
.................................................... 321
14.2
Why Not C?
.................................................................................... 323
14.3
Interpreted Languages and Mixed Strategies
................................. 325
14.4
Language Evaluations
.................................................................... 325
14.4.1
С
....................................................................................... 326
14.4.2 C++................................................................................... 327
14.4.3
Shell
.................................................................................. 330
14.4.4
Perl
................................................................................... 332
14.4.5
Tel
..................................................................................... 334
14.4.6
Python
.............................................................................. 336
14.4.7
Java
.................................................................................. 339
14.4.8
Emacs Lisp
....................................................................... 342
14.5
Trends forthe Future
...................................................................... 344
14.6
Choosing an XToolkit
..................................................................... 346
15
Tools: The Tactics of Development
........................................................... 349
15.1
A Developer-Friendly Operating System
........................................ 349
15.2
Choosing an Editor
......................................................................... 350
15.2.1
Useful Things to Know about
vi........................................ 351
15.2.2
Useful Things to Know about Emacs
................................ 351
15.2.3
The Antireligious Choice: Using Both
............................... 352
15.3
Special-Purpose Code Generators
................................................. 352
15.3.1
yace
and lex
..................................................................... 353
15.3.2
Case Study: Glade
........................................................... 356
15.4
make: Automating Your Recipes
..................................................... 357
15.4.1
Basic Theory of make
....................................................... 357
15.4.2
make in
Non-C/C+ł
Development
.................................... 359
15.4.3
Utility Productions
............................................................. 359
15.4.4
Generating Makefiles
........................................................ 362
15.5
Version-Control Systems
................................................................ 364
15.5.1
Why Version Control?
....................................................... 364
15.5.2
Version Control by Hand
................................................... 365
15.5.3
Automated Version Control
............................................... 366
15.5.4
Unix Tools for Version Control
........................................... 367
15.6
Runtime Debugging
........................................................................ 369
15.7
Profiling
........................................................................................... 370
15.8
Combining Tools with Emacs
.......................................................... 370
15.8.1
Emacs and make
.............................................................. 371
15.8.2
Emacs and Runtime Debugging
....................................... 371
15.8.3
Emacs and Version Control
.............................................. 371
15.8.4
Emacs and Profiling
.......................................................... 372
15.8.5
Like an IDE, Only Better
................................................... 373
16
Reuse: On Not Reinventing the Wheel
..................................................... 375
16.1
The Tale of J. Random Newbie
....................................................... 376
16.2
Transparency as the Key to Reuse
................................................. 379
16.3
From Reuse to Open Source
.......................................................... 380
16.4
The Best Things in Life Are Open
................................................... 381
16.5
Whereto Look?
.............................................................................. 384
16.6
Issues in Using Open-Source Software
.......................................... 385
16.7
Licensing Issues
............................................................................. 386
16.7.1
What Qualifies as Open Source
....................................... 386
16.7.2
Standard Open-Source Licenses
..................................... 388
16.7.3
When You Need a Lawyer
................................................ 390
Community................................................................391
17
Portability:
Software
Portability and Keeping Up Standards
..................... 393
17.1
Evolution of
С
................................................................................. 394
17.1.1
Early History of
С
............................................................. 395
17.1.2
С
Standards
...................................................................... 396
17.2
Unix Standards
............................................................................... 398
17.2.1
Standards and the Unix Wars
........................................... 398
17.2.2
The Ghost at the Victory Banquet
.................................... 401
17.2.3
Unix Standards in the Open-Source World
....................... 402
17.3
IETF and the RFC Standards Process
........................................... 403
17.4
Specifications as
DNA,
Code as
RNA
............................................ 405
17.5
Programming for Portability
............................................................ 408
17.5.1
Portability and Choice of Language
.................................. 409
17.5.2
Avoiding System Dependencies
....................................... 412
17.5.3
Tools for Portability
........................................................... 413
17.6
Internationalization
......................................................................... 413
17.7
Portability, Open Standards, and Open Source
.............................. 414
18
Documentation: Explaining Your Code to a Web-Centric World
............... 417
18.1
Documentation Concepts
............................................................... 418
18.2
The Unix Style
................................................................................ 420
18.2.1
The Large-Document Bias
................................................ 420
18.2.2
Cultural Style
.................................................................... 421
18.3
The Zoo of Unix Documentation Formats
....................................... 422
18.3.1
troffand the Documenter s Workbench Tools
.................. 422
18.3.2 TeX................................................................................... 424
18.3.3
Texinfo
.............................................................................. 425
18.3.4
POD
.................................................................................. 425
18.3.5
HTML
................................................................................ 426
18.3.6
DocBook
..................................,........................................ 426
18.4
The Present Chaos and a Possible Way Out
.................................. 426
18.5
DocBook
......................................................................................... 427
18.5.1
Document Type Definitions
............................................... 427
18.5.2
Other DTDs
...................................................................... 428
18.5.3
The DocBookToolchain
.................................................... 429
18.5.4
Migration Tools
.................................................................. 431
18.5.5
Editing Tools
..................................................................... 432
18.5.6
Related Standards and Practices
..................................... 433
18.5.7
SGML
............................................................................... 433
18.5.8
XML-DocBook References
............................................... 433
18.6
Best Practices for Writing Unix Documentation
.............................. 434
19
Open Source: Programming in the New Unix Community
........................ 437
19.1
Unix and Open Source
................................................................... 438
19.2
Best Practices for Working with Open-Source Developers
............. 440
19.2.1
Good Patching Practice
.................................................... 440
19.2.2
Good Project-and Archive-Naming Practice
.................... 444
19.2.3
Good Development Practice
............................................. 447
19.2.4
Good Distribution-Making Practice
................................... 450
19.2.5
Good Communication Practice
......................................... 454
19.3
The Logic of Licenses: How to Pick One
........................................ 456
19.4
Why You Should Use a Standard License
...................................... 457
19.5
Varieties of Open-Source Licensing
............................................... 457
19.5.1
MIT or X Consortium License
........................................... 457
19.5.2
BSD Classic License
........................................................ 457
19.5.3
Artistic License
................................................................. 458
19.5.4
General Public License
..................................................... 458
19.5.5 Mozilla
Public License
...................................................... 459
20
Futures: Dangers and Opportunities
........................................................ 461
20.1
Essence and Accident in Unix Tradition
.......................................... 461
20.2
Plan
9:
The Way the Future Was
..................................................... 464
20.3
Problems in the Design of Unix
...................................................... 466
20.3.1
A Unix File Is Just a Big Bag of Bytes
.............................. 466
20.3.2
Unix Support for GUIs Is Weak
......................................... 467
20.3.3
File Deletion Is Forever
..................................................... 468
20.3.4
Unix Assumes a Static File System
.................................. 469
20.3.5
The Design of Job Control Was Badly Botched
................ 469
20.3.6
The Unix API Doesn t Use Exceptions
............................. 470
20.3.7
ioctl{2) andfentl{2)
Arean
Embarrassment
.................... 471
20.3.8
The Unix Security Model May Be Too Primitive
................ 471
20.3.9
Unix Has Too Many Different Kinds of Names
.................. 472
20.3.10
File Systems Might Be Considered Harmful
..................... 472
20.3.11
Towards a Global Internet Address Space
....................... 472
20.4
Problems in the Environment of Unix
............................................. 473
20.5
Problems in the Culture of Unix
...................................................... 475
20.6
Reasonsto
Believe
......................................................................... 477
A Glossary of Abbreviations
........................................................................ 479
В
References
............................................................................................... 483
С
Contributors
.............................................................................................. 495
D
Rootless Root: The Unix Koans of Master Foo
......................................... 499
Colophon
.......................................................................................................... 510
Index
................................................................................................................. 511
|
any_adam_object | 1 |
author | Raymond, Eric S. |
author_facet | Raymond, Eric S. |
author_role | aut |
author_sort | Raymond, Eric S. |
author_variant | e s r es esr |
building | Verbundindex |
bvnumber | BV017367006 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.O63 |
callnumber-search | QA76.76.O63 |
callnumber-sort | QA 276.76 O63 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 261 |
classification_tum | DAT 440f |
ctrlnum | (OCoLC)52638755 (DE-599)BVBBV017367006 |
dewey-full | 005.4/32 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.4/32 |
dewey-search | 005.4/32 |
dewey-sort | 15.4 232 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01632nam a2200457zc 4500</leader><controlfield tag="001">BV017367006</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20080114 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">030729s2004 xxu |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2003058264</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0131429019</subfield><subfield code="9">0-13-142901-9</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)52638755</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV017367006</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-739</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.O63</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.4/32</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 261</subfield><subfield code="0">(DE-625)143633:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 440f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Raymond, Eric S.</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">The art of UNIX programming</subfield><subfield code="c">Eric Steven Raymond</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston, MA [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2004</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXII, 525 S.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Adison-Wesley professional computing series</subfield></datafield><datafield tag="630" ind1="0" ind2="4"><subfield code="a">UNIX (Computer file)</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programmeren (computers)</subfield><subfield code="2">gtt</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">UNIX</subfield><subfield code="2">gtt</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Operating systems (Computers)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">UNIX</subfield><subfield code="0">(DE-588)4061835-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">UNIX</subfield><subfield code="0">(DE-588)4061835-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=010467277&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-010467277</subfield></datafield></record></collection> |
id | DE-604.BV017367006 |
illustrated | Not Illustrated |
indexdate | 2024-07-09T19:17:11Z |
institution | BVB |
isbn | 0131429019 |
language | English |
lccn | 2003058264 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-010467277 |
oclc_num | 52638755 |
open_access_boolean | |
owner | DE-Aug4 DE-898 DE-BY-UBR DE-91G DE-BY-TUM DE-92 DE-11 DE-739 |
owner_facet | DE-Aug4 DE-898 DE-BY-UBR DE-91G DE-BY-TUM DE-92 DE-11 DE-739 |
physical | XXXII, 525 S. |
publishDate | 2004 |
publishDateSearch | 2004 |
publishDateSort | 2004 |
publisher | Addison-Wesley |
record_format | marc |
series2 | Adison-Wesley professional computing series |
spelling | Raymond, Eric S. Verfasser aut The art of UNIX programming Eric Steven Raymond Boston, MA [u.a.] Addison-Wesley 2004 XXXII, 525 S. txt rdacontent n rdamedia nc rdacarrier Adison-Wesley professional computing series UNIX (Computer file) Programmeren (computers) gtt UNIX gtt Operating systems (Computers) Programmierung (DE-588)4076370-5 gnd rswk-swf UNIX (DE-588)4061835-3 gnd rswk-swf UNIX (DE-588)4061835-3 s Programmierung (DE-588)4076370-5 s DE-604 Digitalisierung UB Passau application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=010467277&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Raymond, Eric S. The art of UNIX programming UNIX (Computer file) Programmeren (computers) gtt UNIX gtt Operating systems (Computers) Programmierung (DE-588)4076370-5 gnd UNIX (DE-588)4061835-3 gnd |
subject_GND | (DE-588)4076370-5 (DE-588)4061835-3 |
title | The art of UNIX programming |
title_auth | The art of UNIX programming |
title_exact_search | The art of UNIX programming |
title_full | The art of UNIX programming Eric Steven Raymond |
title_fullStr | The art of UNIX programming Eric Steven Raymond |
title_full_unstemmed | The art of UNIX programming Eric Steven Raymond |
title_short | The art of UNIX programming |
title_sort | the art of unix programming |
topic | UNIX (Computer file) Programmeren (computers) gtt UNIX gtt Operating systems (Computers) Programmierung (DE-588)4076370-5 gnd UNIX (DE-588)4061835-3 gnd |
topic_facet | UNIX (Computer file) Programmeren (computers) UNIX Operating systems (Computers) Programmierung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=010467277&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT raymonderics theartofunixprogramming |