TAOUP first translation: submit version

zhaozj2021-02-16  113

Preface

Foreword

UNIX is not so much an operating system as an oral history.

-

NEALSTEENSON

Unix, it is said that it is an operating system, it is better to say oral history.

-

NEALSTEENSON

There Is a Vast Difference Between Knowledge and Expertise. Knowledge letts you dedu The right shing to do; Expertise Makes The Right Thing a Reflex, Hardly Requiring Conscious Thought at all.

The knowledge and expert experience have a great difference. According to knowledge, it can infer the right thing to do; from expert experience, it can reflect the right thing, and there is almost no need to think about it.

This book has a lot of knowledge in it, but it is mainly about expertise. It is going to try to teach you the things about Unix development that Unix experts know, but are not aware that they know. It is therefore less about technicalia And More About Shared Culture Than Most Unix Books - Both Explicit and Implicit Culture, Both Conscious and Unconscious Traditions. It is not a 'how-to' book, it is a 'why-to' book.

There are many knowledge in this book, but mainly about expert experience. This book tries to teach you to develop things related to UNIX - UNIX experts know them, but they don't realize they already know. Thus, unlike most UNIX books, the technical details involved in this book are small, talking more is common culture - external or intrinsic cultural, conscious or unconscious tradition. This is not a book that "how to do", but said "why" book.

The why-to has great practical importance, because far too much software is poorly designed. Much of it suffers from bloat, is exceedingly hard to maintain, and is too difficult to port to new platforms or extend in ways the original programmers did not Anticipate. Thase Problems. We Hope That Readers of this Book Will Learn Somethingy What UNIX HAS TO TEACH ABOUT Good Design.

"Why" is very important in practice, this is because too many software is designed very badly. Most software is bloated, and its maintenance is extremely arduous; to transplant them to the new platform, or expand them in a way that the original developer is not foreseen, it is more difficult. We hope that the readers of this book learn some things about a good design, which is the unix can teach us.

This book is divided into four parts: Context, Design, Tools, and Community The first part (Context) is philosophy and history, to help provide foundation and motivation for what follows The second part (Design) unfolds the principles of the Unix.. philosophy into more specific advice about design and implementation. The third part (Tools) focuses on the software Unix provides for helping you solve problems. The fourth part (Community) is about the human-to-human transactions and agreements that make the Unix culture So Effective At What It Does. This book is divided into four parts: background, design, tools and communities. The first part (background) is philosophical and history, which describes the foundation and motivation of subsequent parts. The second part (design) reveals the principles of UNIX philosophy, which expounds more clear recommendations on design and implementation. Part III (Tool) Follow UNIX to help you solve the various software. The fourth part (community) tells the communication and collaboration between people, such communication and collaboration, makes UNIX culture impressive in their own.

Because this is a book about shared culture, I never planned to write it alone. You will notice that the text includes guest appearances by prominent Unix developers, the shapers of the Unix tradition. The book went through an extended public review process during which I invited these luminaries to comment on and argue with the text. Rather than submerging the results of that review process in the final version, these guests were encouraged to speak with their own voices, amplifying and developing and even disagreeing with the main line of the text .

Because this is a book about a common culture, I have never planned to write it alone. You will notice that the book includes a guest show, passenger guests are outstanding UNIX developers, they are unix traditional shaper. After a long-term and open review, during the review, I invite these knowledgeable people to evaluate and discuss the text in the book. However, in the final version, the results of the evaluation process are not yet been annihilated; passenger guests are encouraged to encourage them to express their views - supplement, express their views, and even use the main line to express their point of view. .

In this Book, WHEN I use the ed it 'it is not to pretend omniscience but to process the fact That attempts to articulate the expertise of an entire commiculate, when I use editorial "us", It's not to be installed, this is just a fact that this book tries to clearly express the overall expert experience in the community.

Because this book is aimed at transmitting culture, it includes much more in the way of history and folklore and asides than is normal for a technical book Enjoy;. These things, too, are part of your education as a Unix programmer No single one. of the historical details is vital, but the gestalt of them all is important. We think it makes a more interesting story this way. More importantly, understanding where Unix came from and how it got the way it is will help you develop an intuitive feel For the unix style.

Because this book aims to disseminate culture, there are more history, legends and narrative compared to technical books. Appreciate it; these contents are also part of the education that UNIX programmers should be subject to. Any separate historical events is not important, but their "Ge" (Gestalt, Structure or Morphology, It is not simple to add between each component, but a complete structure or form - translator's note ) Is important. We believe that this will have many interesting stories. More importantly, understand where Unix comes from, and how to get on the road, will help you cultivate the intuition of UNIX style.

For the same reason, we refuse to write as if history is over. You will find an unusually large number of references to the time of writing in this book. We do not wish to pretend that current practice reflects some sort of timeless and perfectly logical outcome of preordained destiny. References to time of writing are meant as an alert to the reader two or three or five years hence that the associated statements of fact may have become dated and should be double-checked.

Based on the same reasons, we refuse this way of writing, that is, it seems that history has been completed. You will find a number of exotic references, and these references are the latest when writing. We don't plan to claim that this book reflects some eternal, logical perfect results, which is the result of destined. References in writing are intended to be alert reader, two years, three years or five years later, the relevant statements may be out of date, need to perform repeated inspections. Other things this book is not is neither a C tutorial, nor a guide to the Unix commands and API. It is not a reference for sed or Yacc or Perl or Python. It's not a network programming primer, nor an exhaustive guide to the mysteries Of X. It's NOT A TOUR OF UNIX'S INTERS AND Architecture, Either. Other Books Cover The Specifics Better, And this book point, you at the as appropriate.

In addition, this book is neither a C tutorial, nor a UNIX command and an API guide. It is not a reference manual for SED, YACC, Perl or Python. It is not a introduction of a network programming, nor is it a detailed X secret guide. It is also not the roaming of the internal composition and architecture of UNIX. For these topics, other books have a better narrative, in the appropriate place, we will point out which books should be referred to.

Beyond all these technical specifics, the Unix culture has an unwritten engineering tradition that has developed over literally millions of man-years [1] of skilled effort. This book is written in the belief that understanding that tradition, and adding its design patterns to your Toolkit, Will Help You Become A Better Programmer and Designer.

Above all of these technical details, UNIX culture has an incultative engineering tradition, which is a tradition formed by millions of people who have millions of people in skilled technicians [1]. Writing book, is believed that once you understand the tradition of UNIX engineering, master its design patterns will help you become a better programmer and designer.

Cultures consist of people, and the traditional way to learn Unix culture is from other people and through the folklore, by osmosis. This book is not a substitute for person-to-person acculturation, but it can help accelerate the process by allowing you to Tap the experience of others.

Culture is composed of people, learning UNIX culture is: From other people, from the legend, subtlely learn. This book cannot replace direct cultural inheritance between people, but this book allows you to take advantage of others' experience, so that this process can be accelerated.

! Who Should Read this Book

! Who should read this book?

You should read this book if you are an experienced Unix programmer who is often in the position of either educating novice programmers or debating partisans of other operating systems, and you find it hard to articulate the benefits of the Unix approach. You should read this book If you are an experienced UNIX programmer, you often need to teach novices, or argue with other operating systems, but you have discovered that it is difficult to express the benefits of UNIX pathways.

You Should Read this Book if you are A C, C , or Java Programmer with Experience On Other Operating Systems and You Are About To Start a Unix-Based Project.

You should read this book, if you are C, C or Java programmers, there are other operating systems experience, and intend to start UNIX-based projects.

You should read this book if you are a Unix user with novice-level up to middle-level skills in the operating system, but little development experience, and want to learn how to design software effectively under Unix.

You should read this book. If you are UNIX users, you have an initial to intermediate operating system application skills, but there are very few development experience. You want to learn how to effectively design software under UNIX.

You should read this book if you are a non-Unix programmer who has figured out that the Unix tradition might have something to teach you. We believe you're right, and that the Unix philosophy can be exported to other operating systems. So we Will Pay More Attention To Non-UNIX Environments (Especially Microsoft Operating Systems) Than IS Usual In a Unix Book; and when Tools and Case Studies Are Portable, We Say SO.

You should read this book if you are a non-Unix programmer, but it is speculated that UNIX tradition may teach you something. You are right, UNIX philosophy can spread to other operating systems. Therefore, we compared to the usual UNIX books, we have a lot of inks for non-Unix environments (especially the mircrosoft operating system); once the tools and case studies are portable, we will point out.

You should read this book if you are an application architect considering platforms or implementation strategies for a major general-market or vertical application. It will help you understand the strengths of Unix as a development platform, and of the Unix tradition of open source as a You should read this book, if you are the application architect, for the main generic market or portrait applications, you are considering the software's platform or implementation strategy. This book will help you understand UNIX as the power of the development platform, understand the power of open source as a UNIX traditional power.

You should not read this book if what you are looking for is the details of C coding or how to use the Unix kernel API There are many good books on these topics;. Advanced Programming in the Unix Environment [Stevens92] is classic among explorations of The UNIX API, AND the Practice Of Programming [kernighan-Pike99] is Recommended Reading for All C Programmers (Indeed for All Programmers in Any Language).

You don't have to read this book, if you are looking for the details of C program or how to use the UNIX kernel API. With regard to these topics, there are many good books; such as "Advanced Programming In the Unix Environment [Stevens92] is the classic of exploring the Unix API, as well as" program design practices "recommended all C programmers reading ( The Practice of Programming [Kernighan-Pike99] (In fact, all programmers are recommended, no matter what language he uses).

! How to use this book

! How to use this book

This book is both practical and philosophical Some parts are aphoristic and general, others will examine specific case studies in Unix development We will precede or follow general principles and aphorisms with examples that illustrate them:.. Examples drawn not from toy demonstration programs but rather from REAL WORKING CODE THAT IS in Use every day.

This book is both practical and ideological. Some of the content is a rumor, summary, and the rest will analyze specific cases in UNIX development. In the pretends, prior to or after the rumor, we will give an explanatory example: Example is not from a toy presenter, but from every day, real running code.

We have deliberately avoided filling the book with lots of code or specification-file examples, even though in many places this might have made it easier to write (and in some places perhaps easier to read!). Most books about programming give too many low -LEVEL DETAILS AND EXAMPLES, But Fail At Giving The Reader a High-Level Feel For What Really Going On. In this book, we prefer to err in the oppositive Direction. Intellectually, we avoid plugging in a large number of code or Describe the document-like example, although this can make the next pen easier (in some places, may make reading easier!). Most about the books of the program, gives too much low-level details and examples, but what is the actual high-level feeling of the actual progress, but failed. In this book, we would rather make the opposite mistake.

THEFORE, WHILE WIOTEN BE Invited to Read Code and Specification Files, Relatively Few Are Actually Included In The Book. Instead, We Point You at Examples on The Web.

Therefore, although books often encourage you to read code and documentation, the actual code and documentation are relatively small. As an alternative, we give an example of the URL.

Absorbing these examples will help solidify the principles you learn into semi-instinctive working knowledge. Ideally, you should read this book near the console of a running Unix system, with a Web browser handy. Any Unix will do, but the software case studies are more likely to be preinstalled and immediately available for inspection on a Linux system. The pointers in the book are invitations to browse and experiment. Introduction of these pointers is paced so that wandering off to explore for a while will not break up exposition that has To Be Continuous.

Digestive examples, which will help consolidate the principles you have learned so that they become approximately the application knowledge of instinct. Ideally, you should read this book near the console, the console runs the UNIX system, and the web browser is ready. Any UNIX can, on the Linux system, software research cases are likely to be pre-installed, and you can view it immediately. The link in the book is to encourage you to browse and experiment. These links are placed properly, you can leave the text to explore for a while, but will not interrupt those descriptions that need to remain continuous.

Note: while we have made every effort to cite URLs that should remain stable and usable, there is no way we can guarantee this If you find that a cited link has gone stale, use common sense and do a phrase search with your favorite Web. Search Engine WE SUGGEST WAYS to Do this Near The Urls We Cite. Note: Although we have made our utmost to continue to stabilize, available URLs, but we cannot guarantee this. If you find that a referenced link has been invalidated, according to your common sense, use your favorite web search engine to search for a phrase. As long as it may, we will propose search suggestions next to the referenced URL.

.

Most of the abbreviations used in this book will give full names in the first use. For convenience, we also provide a glossary in the appendix.

References are usually by author name. Numbered FootNotes Are for Urls That Well Intrude on The Text Or That We suspect might be perishable; Also for Asides, War Stories, and Jokes. [2]

References are usually given in the form of the author's name. With numbered footnotes, used for URLs that are not suitable for entering the body, or for those who are suspected of being able to fail; with numbered footnotes are also used for narration, arguing stories and jokes [2].

To make this book more accessible to less technical readers, we invited some non-programmers to read it and identify terms that seemed both obscure and necessary to the flow of exposition. We also use footnotes for definitions of elementary terms that an experienced programmer is unlikely TO NEED.

For readers with less technical, in order to make this book easier to understand, we invited some non-service readers to read this book, identify the terms that they seem to be embarrassed but elaborate. We also use footnotes to define basic terms, and experienced programmers may not need these definitions.

Related References

! Related references

. Some famous papers and a few books by Unix's early developers have mined this territory before Kernighan & Pike's The Unix Programming Environment [Kernighan-Pike84] stands out among these and is rightly considered a classic But today it shows its age a bit;. It Doesn't Cover The Internet, And The World Wide Web or The New Wave of Interpreted Languages ​​Like Perl, Tcl, And Python. Some famous papers, some books written by UNIX, have been explored before this area. Kernighan & Pike's "UNIX programming environment" [kernighan-pike84] is an excellent one, it is classic. But today it seems to have some old; it does not involve the Internet, World Wide Web, and has not talked about the new wave of interpretation languages ​​such as Perl, TCL and Python.

About halfway into the composition of this book, we learned of Mike Gancarz's The Unix Philosophy [Gancarz]. This book is excellent within its range, but did not attempt to cover the full spectrum of topics we felt needed to be addressed. Nevertheless we are Grateful to the author for the reminder That The Very Simplest Unix Design Patterns Have Been The MOST PERSISTENT AND SUCCESSFUL ONES.

In the middle of this book, we met the Unix Philosophy [Gancarz] of Mike Gancarz. This book is very good within its discussion, but it does not attempt to cover all the topics we feel referred to. However, we want to thank the author's reminder: The simplest Unix design mode is the most lasting, most successful model.

The Pragmatic Programmer [Hunt-Thomas] is a witty and wise disquisition on good design practice pitched at a slightly different level of the software-design craft (more about coding, less about higher-level partitioning of problems) than this book. The authors 'philosophy is an outgrowth of unix experience, and it is an excellent complement to this book.

"The Pragmatic Programmer" [hunt-thomas] is a tuned and witty, regarding the topic of good design practices; compared with this book, in the level of software design technology, its positioning is slightly Different (more discussions, less concerned about high-level issues). Its author's idea is the product of UNIX experience. "The way programmer cultivates" is a very good supplementary reading.

The Practice of Programming [Kernighan-Pike99] covers some of the same ground as The Pragmatic Programmer from a position deep within the Unix tradition. "Programming Practice" [Kernighan-Pike99] from traditional Unix more in-depth positions, discussed Some problems with "programmers cultivation" are on the same level.

Finally (and with admitted intent to provoke) we recommend Zen Flesh, Zen Bones [Reps-Senzaki], an important collection of Zen Buddhist primary sources. References to Zen are scattered throughout this book. They are included because Zen provides a vocabulary for addressing some ideas that turn out to be very important for software design but are otherwise very difficult to hold in the mind. Readers with religious attachments are invited to consider Zen not as a religion but as a therapeutic form of mental discipline -which, in its purest Non-theistic forms, is exactly what zen is.

Finally, (acknowledges that it is intentional to provoke the argument,) We recommend Zen Flesh, Zen Bones [REPS-SENZAKI], an important collection of the origin of Buddhist Zen. References about Zen scattered in this book. It is recommended because of some concepts - it has shown that these concepts are very important for software design - Zen provides the corresponding vocabulary, otherwise, it is difficult to grasp these concepts in the mind. Readers with religious beliefs should not regard Zen as religion, but should be regarded as an effective form of mental training - from the purest inactive sense, this is Zen.

! Convention used in this book

! The practice used by this book

The term "UNIX" is technically and legally a trademark of The Open Group, and should formally be used only for operating systems which are certified to have passed The Open Group's elaborate standards-conformance tests. In this book we use "Unix" in the looser sense widely current among programmers, to refer to any operating system (whether formally Unix-branded or not) that is either genetically descended from Bell Labs's ancestral Unix code or written in close imitation of its descendants. in particular, Linux (from which we Draw Most of Our Examples) IS A UNIX Under This Definition. The term "Unix" is technically, legally trademarks, belonging to Open Group, should be officially used in the uniform standards that have been detailed through open source organizations Sexual test certification operating system. In this book, we are more unscrupulous in one meaning, but have been accepted by programmers to use "UNIX", referring to any such operating system (whether it is officially posted a UNIX tag), it Or the genetic descendants of the Bell laboratory ancestor Unix code, or to a large extent imitating these genetic descendants. In particular, under this definition, Linux (most of our examples come from Linux) is UNIX.

This book employs the Unix manual page convention of tagging Unix facilities with a following manual section in parentheses, usually on first introduction when we want to emphasize that this is a Unix command. Thus, for example, read "munger (1)" as " the 'munger' program, which will be documented in section 1 (user tools) of the Unix manual pages, if it's present on your system. "Section 2 is C system calls, section 3 is C library calls, section 5 is file formats and protocols, section 8 is system administration tools. Other sections vary among Unixes but are not cited in this book. For more, type man 1 man at your Unix shell prompt (older System V Unixes may require man -s 1 man).

This book uses the UNIX manual paging practice, followed by a parentheses in the back of the UNIX tool name, in parentheses, the corresponding section in the manual, when introducing the command, if we want to emphasize this is a unix command, we usually Use this way. For example, "MUNGER (1)" is understood as "MUNGER program, the corresponding document is in the Unix Manual (User Tool), if you have Munger on your system." Section 2 is C system call, and the third section is a C library function call, and the 5th section is the file format and protocol, and Section 8 is the system management tool. Other subtots are different in the UNIX system, but will not be referenced in this book. To display more information, type MAN 1 MAN at your UNIX's shell prompt (for the older SYSTEM V UNIX system, you might want to type Man-S 1 Man). Sometimes we mention a Unix application (such as Emacs), without a manual-section suffix and capitalized. This is a clue that the name actually represents a well-established family of Unix programs with essentially the same function, and we are discussing generic properties Of all of them. Emacs, for example, incrudes Xemacs.

From time to time, when we mention a UNIX application (for example, Emacs), we did not give the manual - section suffix, but also uppercase his first letters. This is suggesting that the mentioned name actually represents a widely accepted UNIX program, essentially they have the same function, and we discuss its common characteristics. For example, Emacs included XEMACS.

At various points later in this book we refer to 'old school' and 'new school' methods. As with rap music, new-school starts about 1990. In this context, it's associated with the rise of scripting languages, GUIs, open- source Unixes, and the Web. Old-school refers to the pre-1990 (and especially pre-1985) world of expensive (shared) computers, proprietary Unixes, scripting in shell, and C everywhere. This difference is worth pointing out because cheaper And Less Memory-Constrained Machines Have Wrought Some Significant Changes on the UNIX Programming Style.

There are many places behind this book, we will talk about the old school (the new school) method. Similar to RAP music, the new genre started around 1990. In this time background, the new genre with the scripting language, GUI, open source UNIX and Web's rise in the rise. The old flow refers to the world of 1990 (especially 1985), which belongs to expensive (shared) computer, exclusive UNIX, shell script, and unwanted C world. It is pointed out that the difference between the new and old genre is meaningful, because it is cheaper, less than the memory constraint computer, has caused some major changes to the UNIX program design style. Our Case Studies

! Our case study

A lot of books on programming rely on toy examples constructed specifically to prove a point. This one will not. Our case studies will be real, pre-existing pieces of software that are in production use every day. Here are some of the major Ons:

Many programming books rely on toy examples that are designed to prove a certain point of view. This book is not the case. Our research cases are real, existing pieces, which are used every day. Here are some of the more important examples:

cdrtools / xcdroast: These two separate projects are usually used together The cdrtools package is a set of CLI tools for writing CD-ROMs; Web search for "cdrtools" The xcdroast application is a GUI front end for cdrtools; see the xcdroast project.. Site [http://www.xcdroast.org/].

CDRTOOLS / XCDroast: This is two separate projects, but usually used together. The CDRTools kit is a set of CLI tools for disc burn; WEB search with cdrtools. XcDroast Applications are CDRTools's GUI front-end; see the XcDroast Engineering Site [http://www.xcdroast.org/].

fetchmail: The fetchmail program retrieves mail from remote-mail servers using the POP3 or IMAP post-office protocols See the fetchmail home page [http://www.catb.org/~esr/fetchmail] (or search for "fetchmail". On the web).

Fetchmail: Fetchmail program uses the POP3 or IMAP post office protocol to get emails from the remote mail server. See the homepage of Fetchmail [http://www.catb.org/~esr/fetchmail] (or search Fetchmail on the Web).

GIMP: The GIMP (GNU Image Manipulation Program) is a full-featured paint, draw, and image-manipulation program that can edit a huge variety of graphical formats in sophisticated ways Sources are avail-able from the GIMP home page [http.: //www.gimp.org/] (or search for "gimp" on the web .gimp: GIMP (GNU Image Manipulation Program, GNU Image Processor) is a fully equipped drawing and image processing program that can be perfect Edit a wide variety of graphics formats. Source code can be obtained from the GIMP home page [http://www.gimp.org/] (or search GIMP on the web).

mutt: The mutt mail user agent is the current best-of-breed among text-based Unix electronic mail agents, with notably good support for MIME (Multipurpose Internet Mail Extensions) and the use of privacy aids such as PGP (Pretty Good Privacy) And GPG (GNU Privacy Guard). Source Code and Executable Binaries Are Available At The Mutt Project Site [http://www.mutt.org].

MUTT: MUTT Mail User Agent, is the best text-based UNIX email agent, which has good support for MIME (Multipurpose Internet mail extensions, multi-purpose Internet mail extensions) and uses such as PRETTY Good Privacy. Personal privacy assist tools such as GPG (GNU Privacy Guard). Source code and executable binary code can be found on the MUTT engineering site [http://www.mutt.org].

xmlto:. The xmlto command renders DocBook and other XML documents in various output formats, including HTML and text and PostScript For sources and documentation, see the xmlto project site [http://cyberelk.net/tim/xmlto/].

XMLTO: XMLTO command, convert DocBook and other XML documents to various output formats, and the output format includes HTML, plain text, and postscript. Source and documentation, see the XMLTO project website [http://cybereelk.net/tim/xmlto/].

To minimize the amount of code the user needs to read to understand the examples, we have tried to choose case studies that can be used more than once, ideally to illustrate several different design principles and practices. For this same reason, many of the examples . are from my projects No claim that these are the best possible ones is implied, merely that I find them sufficiently familiar to be useful for multiple expository purposes to understand examples, the reader needs to read a certain number of source code; to minimize the source code The reading amount, we tried to choose the research cases that can be used multiple times, ideally, examples should be used to illustrate several different design principles and practices. For this purpose, many examples of self-engineering. This is not implying that they are the best example, I am just more familiar with them, and they can use a variety of explanatory purposes.

Author's Acknowledgements

! Author acknowledgments

The guest contributors (Ken Arnold, Steven M. Bellovin, Stuart Feldman, Jim Gettys, Steve Johnson, Brian Kernighan, David Korn, Mike Lesk, Doug McIlroy, Marshall Kirk McKusick, Keith Packard, Henry Spencer, and Ken Thompson) added a great deal of value to this book. Doug McIlroy, in particular, went far beyond the call of duty in the thoroughness of his critique and the depth of his contributions, displaying the same care and dedication to excellence which he brought to managing the original Unix research Group thirty years ago.

Written by guest guest (Ken Arnold, Steven M. Bellovin, Stuart Feldman, Jim Gettys, Steve Johnson, Brian Kernighan, David Korn, Mike Lesk, Doug McIlroy, Marshall Kirk McKusick, Keith Packard, Henry Spencer and Ken Thompson) greatly enhanced The value of this book. Especially Doug Mcilroy, in the depth of its comments, the depth of writing, far beyond the nature of the guest, the care and the pursuit of excellence, and managing the earliest UNIX research team with him thirty years ago The presented is exactly the same.

Special thanks go to Rob Landley and to my wife Catherine Raymond, both of whom delivered intensive line-by-line critiques of manuscript drafts. Rob's insightful and attentive commentary actually inspired more than one entire chapter in the final manuscript, and he had a lot to do with its present organization and range; if he had written all the text he pushed me to improve, I would have to call him a co-author Cathy was my test audience representing non-technical readers;. to the extent this book is Accessible to People Who Aren't Already Programmers, That's Largely Her doing. Special thanks to Rob Landley and my wife Catherine Raymond, they conducted a draft scribble. Rob insights, the careful comment, actually inspired the content of the whole manuscript, the current organization and scope of this book is also quite related to him; for those who force me to improve, if he personally If I have to call him a compilation. Cathy is my test object that represents non-technical readers; non-programmers can also read this book, this book can achieve this degree, to a large extent to be at the work of Cathy.

This book benefited from discussions with many other people over the five years it took me to write it. Mark M. Miller helped me achieve enlightenment about threads. John Cowan supplied some insights about interface design patterns and drafted the case studies of wily and VM / CMS, and Jef Raskin showed me where the Rule of Least Surprise comes from. The UIUC System Architecture Group contributed useful feedback on early chapters. The sections on What Unix Gets Wrong and Flexibility in Depth were directly inspired by their review. Russell J. Nelson contributed the material on Bernstein chaining in Chapter 7. Jay Maynard contributed most of the material in the MVS case study in Chapter 3. Les Hatton provided many helpful comments on the Languages ​​chapter and motivated the portion of Chapter 4 on Optimal Module Size. David A Surve Cox Helped Develop The Survey of Plan 9. Dennis Rusts IE Corrected Me On Some Historical Points About C. In the time of writing books, I have discussed with many people, making this book benefit. Mark M. Miller helps me understand the thread in-depth. John Cowan provides some deep insights on interface design patterns, and he also drafted Wily and VM / CMS research cases, while Jef Raskin told me "Rule of Least Surprise". Use useful feedback on the first few chaces of this book, the University of Novoli (UIUC) system. "What Unix Gets WRONG) section," Flexibility In Depth] is directly inspired from their review. Russell J. Nelson provides information on Chapter 7 Bernstein chain. Jay Maynard provides most of the information for Chapter 3 MVS case studies. For the "Language", LES Hatton provides useful comment and contributes to Chapter 4 about the writing of the "Best Module Size" section. David A. Wheeler gives a lot of keen criticism, providing some case studies, especially in the "design". Russ Cox helps designed a Plan 9 questionnaire. Regarding the history of C, Dennis Ritchie corrected some of my errors.

Hundreds of Unix programmers, far too many to list here, contributed advice and comments during the book's public review period between January and June of 2003. As always, I found the process of open peer review over the Web both intensely challenging and intensely rewarding. Also as always, responibility for any errors in the resulting work remains my rrors. Hundreds of UNIX programmers, unable to list their names in one by one, contributing to the public review of this book from January to June 2003 A large number of suggestions and comments. As always, I found the open peer review process through the web, full of fierce challenges, but the return is also rich. Still like this, there is any mistake in the book, the responsibility is in me.

The expository style and some of the concerns of this book have been influenced by the design patterns movement; indeed, I flirted with the idea of ​​titling the book Unix Design Patterns I did not, because I disagree with some of the implicit central dogmas. of the movement and do not feel the need to use all its formal apparatus or accept its cultural baggage. nevertheless, my approach has certainly been influenced by Christopher Alexander's work [3] (especially The Timeless Way of Building and A Pattern Language, and I owe the Gang of Four and other members of their school a large debt of gratitude for showing me how it is possible to use Alexander's insights to talk about software design at a high level without merely uttering vague and useless generalities. Interested readers should see Design Patterns: Elements of Reusable Object-Oriented Software [Gangoffour] for an Introduction to Design Patterns.

The book's narrative style and some views have been influenced by the design mode; in fact, I think that the book is called "UNIX design mode" idea. But I didn't, because I didn't agree with some core dogmas that the design mode movement was implied. I don't think it is necessary to use its formal method, nor does it accept its cultural beliefs. However, the method I use is indeed affected by Christopher Alexander [3] (especially the "Eternal Road of Building", "Building Mode Language"), I am from the "Tour" (The Gang Of "and from them The other members have beneficially beneficial, they show me how to use Alexander's thoughts when discussing software design, avoid blurring, and no value. For design patterns, interested readers should read "Design Mode: Decoction of Object Software" (DESIGN PATTERNS: Elements of Reusable Object-Oriented Software) [Gangoffour]. .

The title of this book, of course, is a "computer programming art" of Donald Knuth. Although there is no special relationship with UNIX tradition, Knuth also affects us.

Editors with vision and imagination are not as common as they should be Mark Taub is one;.. He saw merit in a stalled project and skillfully nudged me into finishing it Copy editors with a good ear for prose style and enough ability to improve writing that is not like theirs are even less common, but Mary Lou Nohr makes that grade. Jerry Votta seized on my concept for the cover and made it look better than I had imagined. The whole crew at Prentice-Hall gets high marks for making the editorial and production process as painless as possible, and for cheerfully accommodating my control-freak tendencies not just over the text but deep into the details of the book's visual design, art, and marketing.

Editing with vision and imagination is not as common as expected. Mark Taub is one of them; he sees this value of this one-stop project, very tips to promote me to complete it. Such text editing - pay attention to writing style, with sufficient ability to improve words with their own writing style - not common, but Mary lou nohr is. Jerry Votta grasped my idea to cover, so that the cover looks better than I imagined. I gave all the staff of Prentice-Hall, they made the editorial and production process as smooth as possible, they happily accepted my control paranoia, but not only to control text, but also to go deep into book design , Illustration and marketing control tendency. Part

I.

Context

First part background

Chapter 1. Philosophy

Chapter 1 Philosophy

Philosophy Matters

Those Who Do Not Und Unix Are Condemned To Reinvent It, Poorly.

- HenrySpencer USEnet Signature, November 1987

Philosophy has a major relationship

Condemn those who don't understand Unix, call them to invent it.

- HenrySpence Usenet sign, November 1987

Culture? What creted?

! culture? What is culture?

This Is A Book About Unix Programming, But in It We're Going to Toss Around The Words 'Culture', 'Art', And 'Philosophy' a Lot. If You Are Not a Programmer, or You Are A Program WHO HAS HAD little contact with the Unix world, this may seem strange But Unix has a culture;. it has a distinctive art of programming;. and it carries with it a powerful design philosophy Understanding these traditions will help you build better software, even if you ' Re Developing for a Non-UNIX Platform.

This is a book about UNIX programming, but we will talk more about "culture", "art" and "philosophy" many times. If you are not a programmer, or you are hardly tangible, this is a bit strange. However, Unix has a culture, with different procedures for design, UNIX also carries powerful design philosophy. Understanding these traditions will help you build better software, even if you are now developing software for non-UNIX platforms.

Every branch of engineering and design has technical cultures. In most kinds of engineering, the unwritten traditions of the field are parts of a working practitioner's education as important as (and, as experience grows, often more important than) the official handbooks and textbooks. Senior Engineers Develop Hue Bodies of Implicit Knowledge, Which The Pass To Their Juniors By The Pass To Their Juniors BY (As Zen Buddhists Put It) "A Special Transmission, Outside The Scriptures". Subject of each project and design has its technical culture. In the vast majority of engineering fields, as part of the education of practitioners, unstead of unstext and formal manuals in the disciplines are equally important; with the accumulation of experience, unstextual traditions often look more important. Senior engineers have accumulated a huge unknown knowledge system, which will teach them to them, and the way to teach is (like Zen said) "teaching outside".

(Translator Note: Zen, which is created by Bodhihamo, the basic points are summed up to four sentences:

Teaching outside

A Special Transmission Outside The Scriptures;

Not a text

Depending not on Words and letters;

Direct

Pointing Directly to the Human Mind;

Ming sex into a Buddha.

Seeing Into One's Nature, One Becomes a Buddha.

End of the translation

Software engineering is generally an exception to this rule; technology has changed so rapidly, software environments have come and gone so quickly, that technical cultures have been weak and ephemeral There are, however, exceptions to this exception A very few software technologies have.. Proved Durable Enough To Evolve Strong Technical Cultures, DistINcTive Arts, And An Associated Design Philosophy Transmitted Across Generations of Engineers.

In general, software engineering is the exception of the above law; the technology is rapid, the software environment is frequent, and the technical culture becomes weak and short. However, this exception has exceptions. There are very few kinds of software technology's persistence has been confirmed, enough to develop strong technical culture, unique art, and the related design ideas of engineers.

The Unix culture is one of these The Internet culture is another -.. Or, in the twenty-first century, arguably the same one The two have grown increasingly difficult to separate since the early 1980s, and in this book we will not try Particularly Hard.Unix culture is one of them, and the other is Internet culture - perhaps, in the 21st century, they can argue them are the same culture. Since the early 1980s, these two cultures are increasingly distinguishing. In this book, we don't intend to distinguish them.

! The durability of unix

! UNIX's persistence

Unix was born in 1969 and has been in continuous production use ever since That's several geologic eras by computer-industry standards -.. Older than the PC or workstations or microprocessors or even video display terminals, and contemporaneous with the first semiconductor memories Of all production timesharing systems today, only IBM's VM / CMS can claim to have existed longer, and Unix machines have provided hundreds of thousands of times more service hours; indeed, Unix has probably supported more computing than all other timesharing systems put together.

Born in 1969, UNIX has been used for productive purposes. From the sense of computer industry standard, it is a few "geological generation" before-than PC, workstation, microprocessor even more old than video display terminals, and the first semiconductor memory is in the same period. In today's all productive time-time systems, only IBM's VM / CMS can claim longer, but the service time provided by UNIX machine is tens of thousands of IBM VM / CMS; in fact, UNIX support, It may be more than if all other tax systems are added.

Unix has found use on a wider variety of machines than any other operating system can claim. From supercomputers to handhelds and embedded networking hardware, through workstations and servers and PCs and minicomputers, Unix has probably seen more architectures and more odd hardware than any three other Operating systems combined.

For machine types used in the operating system, the machine type using UNIX is far more than other operating systems. Big to supercomputers, small to handheld equipment, embedded network hardware, intermediates are workstations, servers, PCs, and small computers; Unix-I have seen architecture and quirky hardware, may add more than any three other operations.

Unix has supported a mind-bogglingly wide spectrum of uses. No other operating system has shone simultaneously as a research vehicle, a friendly host for technical custom applications, a platform for commercial-off-the-shelf business software, and a vital component technology The use range of the INTERNET.Unix is ​​incredible. UNIX can be used as a platform for research tools, technical application software, and the platform selling products sales, but also an integral part of Internet; except Unix, no operating system can be in these applications It can express the same outstanding.

Confident predictions that Unix would wither away, or be crowded out by other operating systems, have been made yearly since its infancy. And yet Unix, in its present-day avatars as Linux and BSD and Solaris and MacOS X and half a dozen other variants SEEMS STRONGER THAN EVER TODAY.

Starting from UNIX's new birth, some people have bold fables: UNIX will get dying, or drive out of the stage by other operating systems. However, avatars are Linux, BSD, Solaris, Macos X and many other variants, today's UNIX seems to be more powerful.

Robert Metcalf [the inventor of Ethernet] says that if something comes along to replace Ethernet, it will be called "Ethernet", so therefore Ethernet will never die. [4] Unix has already undergone several such transformations.

-

Kenthompson

Robert Metcalf said that if there is something that can replace Ethernet, it will call "Ethernet", so Ethernet will never die [4]. UNIX has also experienced several similar changes.

-

Kenthompson

At least one of Unix's central technologies - the C language - has been widely naturalized elsewhere Indeed it is now hard to imagine doing software engineering without C as a ubiquitous common language of systems programming Unix also introduced both the now-ubiquitous tree-shaped.. File Namespace with Directory Nodes and The Pipeline for Connecting Programs.

At least one of UNIX core technologies - C language - has been widely transplanted. In fact, it is difficult to imagine such software projects, it does not use C to use the universal and common language of the system program design. UNIX also introduces a tree file with a directory node now introduces a pipe technology of the connection program. .. Unix's durability and adaptability have been nothing short of astonishing Other technologies have come and gone like mayflies Machines have increased a thousandfold in power, languages ​​have mutated, industry practice has gone through multiple revolutions - and Unix hangs in there, still producing, still ............... ..

The persistence and adaptability of UNIX always surprised us. Other technical pictures have come again. The machine performance has been upgraded thousands of times, and the language has changed. Industrial practice has also experienced several revolution --unix still stands there. It is still working, still dealing with bills, still got a lot of planet The best of the best and smarter software technology experts are faithful.

One of the many consequences of the exponential power-versus-time curve in computing, and the corresponding pace of software development, is that 50% of what one knows becomes obsolete over every 18 months. Unix does not abolish this phenomenon, but does do . a good job of containing it There's a bedrock of unchanging basics -languages, system calls, and tool invocations -that one can actually keep using for years, even decades Elsewhere it is impossible to predict what will be stable;. even entire operating systems cycle out of use. Under Unix, there is a fairly sharp distinction between transient knowledge and lasting knowledge, and one can know ahead of time (with about 90% certainty) which category something is likely to fall in when one learns it. Thus the Loyalty UNIX Commands.

Consider calculation - time index curve, consider the corresponding pace of software development, one of the results of the inferior: what you know, 50% every 18 months will time. Unix is ​​not an exception to this observation, but it is very good. No change is the foundation-language, system calls, and tools - they can also use years or decades. Other places, it is impossible to predict which will be stable; even, the entire operating system may no longer be used. Under UNIX, the distinction between transient knowledge and persistent knowledge is quite obvious. When you learn something, it is basically in advance (probably 90% of confirmation) What you have learned is short-lived or lasting. This is why UNIX gets the support. Much of Unix's stability and success has to be attributed to its inherent strengths, to design decisions Ken Thompson, Dennis Ritchie, Brian Kernighan, Doug McIlroy, Rob Pike and other early Unix developers made back at the beginning; decisions that have been proven sound over and over. But just as much is due to the design philosophy, art of programming, and technical culture that grew up around Unix in the early days. This tradition has continuously and successfully propagated itself in symbiosis with Unix ever since.

The stability and success of Unix, mostly due to its inherent strong, due to Ken Thompson, Dennis Ritchie, Brian Kernighan, Doug Mcilroy, Rob Pike, and other early UNIX developers from the most beginnings of design decisions; The correctness of decision has been repeatedly certified. However, the early stations surrounded UNIX growth, programming art, and technical culture also contributed to huge. This tradition will continue to be inherited, always with UNIX.

[1] The three and a half decades between 1969 and 2003 is a long time. Going by the historical trend curve in number of Unix sites during that period, probably somewhere upwards of fifty million man-years have been plowed into Unix development worldwide.

The 1969 to 2003 is a long time. This period, with the historical growth trend line of UNIX site, probably more than 50 million people, and put it in the world's UNIX development.

[2] This Particular Footnote is Dedicated to Terry Pratcher, Whose Use of Footnotes IS Quite ... Inspiring.

This special footnote gives Terry Pratchett, and his use of footnote is quite ... inspiratory.

[3] An Appreciation of Alexander's Work, with links to on-line Versions of Significant Portions, May Be found at some Notes on Christopher Alexander [http://www.math.utsa.edu/sphere/salingar/chris.text. HTML]. Appreciation of Alexander work, and link to the important part of the online version of the online version, you can find in the Some Notes On Christopher Alexander website [http://www.math.utsa.edu/sphere/salingar/chris.text .html].

[4] IN FACT, Ethernet Has Already Been Replaced By A Different Technology with The Same Name - Twice. Once WHEN COAX WAS REPLAced with Twisted Pair, And A Second Time When GigaBit Ethernet Came IN.

In fact, Ethernet has been replaced by different techniques with the same name - and replacing twice. Once, the twisted pair replaces the coaxial cable, the second time is the emergence of Gigabit Ethernet.

Published on July 26, 2004 11:44 AM

comment

#

For your reason

2004-07-26 11:45 AM

I fell

First Draft

http://blog.9cbs.net/enslx/archive/2004/07/16/43229.aspx

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:08 PM

DD

Sorry, but still hope that the publishing house should not choose you.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:16 PM

DD

You are a long family. I want you to do it yourself.

A few days ago, some people disclosed their own translation, everyone seven tongue, so hard to judge everyone's true level. Publishing agencies may not be expected to be, huh, huh.

In addition, be careful when you copy, it is "seeing sex into a Buddha."

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:20 PM

I fell

1, why?

2, if you can have an impact on the publishing house, then who you are? What motivation?

3, if you can't affected the publisher, who is you? What motivation?

In the DD, the super 暧, it is easy to cause misuse. - For example, can we doubt that DD is a person or an internal person?

Ha ha.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:25 PM

I fell

I rely, I can't agree. DD is too small to see me. I know that you have foreigated colleagues, haha, but I have already reported to me - this is also called blowing, anyway, you don't know the true and false, haha.

Which places are referring to others? Please refer to it. - I know which places refer to, huh, huh, will not exceed 3, it is also very small place - and is not shameful. Haina Baichuan, there is a big milk.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:31 PM

I fell

Read DD's remarks again:

=====

You are a long family. I want you to do it yourself. A few days ago, some people disclosed their own translation, everyone seven tongue, so hard to judge everyone's true level. Publishing agencies may not be expected to be, huh, huh.

In addition, be careful when you copy, it is "seeing sex into a Buddha."

======

I am not going to the way. You this person is more mind, haha.

In the discussion, it is mainly what I am speaking. Some people play at TMD and people - in a very strange way to fight.

You have two conclusions to be more awkward: One is "more can't do", the second is "plagiarism". When the conclusion, we must be careful, don't speculate.

In fact, DD, you can refer to my translation, take out your own translation, come - my conclusion is: You will definitely not exceed me - you definitely not agree to be right? OK, Just Do IT.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:33 PM

DD

> 1, why?

Don't mind, talk about personal feelings, not right.

For example, someone else is this, "Unix, it is said that it is an operating system. It is better to say that it is oral history." You also follow it, where the "oral history" makes people feel the verb noun, I think it is Action, do you think it is better to translate as "a history"?

> 2, if you can have an impact on the publishing house, then who you are? What motivation?

No, personal feelings. What is the motivation?

> 3, if you can't affected the publisher, who are you? What motivation?

People who don't know any of any publishers :(

> Translator Note: Zen that is created by Bodhihamo, the basic point is attributed to four sentences:

In addition, you don't understand Zen, the Buddhist scriptures have not read several volumes, it is best not to comment, mislead readers. Zen is not what you said.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:33 PM

di

This paper is very good.

A conceptual problem: The open group is not "open source organization". Don't see Open, I think it is open source. Ha ha. The Open Group is like Sun, Microsoft, is a legal person, can not translate, only to call it name.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:35 PM

DD

> You will definitely not agree to be right? OK, Just Do IT.

It turned out to be your brother. Agree, how can I not agree. Finally, I am not saying "you".

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:45 PM

DD

The things in the past few days have been forgotten. There is no provocative meaning, just DD comparison ...

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:45 PM

I fell

DD interesting.

"Unix, it is said that it is an operating system, it is better to say that it is oral history." - This comma can not add. About Oral History translation, after the post of Lao Yuan, I have the process of choosing this word. - "One" Do not add, it is a human taste problem, it is difficult to judge the quality - language is living things, not that is limited to rules.

Zen has seen it before, forgot, now I don't plan to look again. but. At the time of translation, you should know that this is a more critical place. If you want to check the information, you understand. As for the four sentences to Dharma, it is definitely not what I mean. It is a lot of experts who specialize in studying Zen - what they said is different from you. Who is we listened? For example, Plan 9, see this thing, you can't easily translate "Plan 9", inevitably, it is clear. For example, Old School, New School, you have to check the information to learn about the history of RAP.

Recognizing that ignorance is not terrible, the key is that when translation, it is not necessary to think of it, it is necessary to be handled, and it cannot make mistakes. For more information, please see more information.

I don't know people, huh, I don't know. Recently, I have tried to contact Publishing House, see if I can rely on technology to eat.

==================

D brother's Comments is inspiratory, huh, huh. Thank you.

Open Group does not need to be translated, staying there is the best choice.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:49 PM

DD

> A few days ago, some people disclosed their own translation. Everyone seven tongues, so it is difficult to judge everyone's true level. Publishing agencies may not be expected to be, huh, huh.

This sentence is not for you. Because the publisher is now unclear that there is a submitter in each translation, how much is from others. This is contrary to the purpose of picking the translator of the publishing house. Of course, the publishing house is at least as a result, and the public is also a good idea.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:51 PM

di

Zen, which is created by Bodhodide, the basic point of the basic point to four sentences

These four sentences are only the characteristics of Zen's teaching, and the basic points of Zen are biased.

Finally, declare: DD! = D; Plunny brother! = D. Huh.

I speculate:

DD == aa?

If so, get rid of you or not DD, confusing (of course, unless this is your idea, I can't force you to use DD). If not, then I am sorry, please say it. Ha ha.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:56 PM

DD

About Oral History, um, you also make sense.

OK, point constructive :)

> XMLTO command, convert DOCBOOK and other XML documents to various output formats, and the output format includes HTML, plain text, and postscript. Source code and documentation, see XMLTO Engineering Website [

http://cyberelk.net/tim/xmlto/].

"Output formats include" can be simplified to "include", because the "output format" has been mentioned.

#

Reply: TAOUP initial translation: submit version

2004-07-26 2:58 PM

AA

> Finally, declare: DD! = D; Plunate brother! = D. Huh.

Does this should be confused?

Sorry, I am DD, AA is casually, and the map is convenient. It is also estimated that you are also. Change below is AA. #

D brother?

2004-07-26 3:03 PM

I fell

In fact, the A Special Transmission Outside The Scriptures is actually very people. At that time, I thought it was careful.

So in the Internet, I finally got it.

The basic point of Zen, cough, I am really unclear. I saw some coarse readings that were thought that they advocated a positive entry. What deeds, become a Buddha, it is more illusory. - This is the understanding of the year, it is estimated very incorrect, ha.

Topic talks. There is a brother when I have a graduate student, converted to my Buddha, very devout. The good side is that he looks very good, the body is also healthier, and it is absolutely given a feeling of sunshine. The bad side is, his problem, thinking, a bit deviates from rational critical tracks. Like preset premise, I like bold conclusions, and I have also begun to close to He Xin's "Extreme Nationalism".

Alase, don't mention it.

Perhaps, people have to have a certain age?

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:03 PM

AA

> XMLTO command, convert DOCBOOK and other XML documents to various output formats, and the output format includes HTML, plain text, and postscript. Source and documentation, see XMLTO Project Website

"Source and documentation, see XMLTO Project Website", plus a "its" word, is there any time?

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:07 PM

AA

> I also started to close to He Xin's "extreme nationalism".

Buddha and extreme nationalism can be unified on the same person, interesting.

> Perhaps, people have to have a certain age, they must be in spiritive?

If you look at it, you will be disappointed; if you are a consequence of disappointment, of course, there are other options, such as with me, believe in the end of the world :)

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:10 PM

AA

> In order to minimize the reading of source code, we tried to select the research cases that can be used multiple times.

Try to choose, try to do our best to make sense. Trying to seem to be neutral or even biased?

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:13 PM

AA

> For this Same Reason, Many of The Examples Are from My Projects.

> For this purpose,

Put the Same. Why don't you translate become "out of the same purpose"? Suspected.

#

Another choice problem, huh, huh

2004-07-26 3:16 PM

I fell

DD = aa brother suggestion:

===========

The XMLTO command converts DOCBOOK and other XML documents to various output formats, and the output format includes HTML, plain text, and postscript. Source code and documentation, see ...

"Output formats include" can be simplified to "include", because the "output format" has been mentioned. ===========

Thanks for constructive Comments.

The treatment here is considered, it is definitely not to have a brain cerebeline. :). This place, I am afraid there is no best way to handle it? It is completely taste problem - I have chosen "output formats including ..." after considering. This doesn't mean that my choice is right. It seems that it is necessary to think about it.

Topping: Technology translation, actually very personal, in some complex places, some flexible places reflect the individuality of translators. Therefore, simple plagiarism is basically aware of it.

For example, I really like to short the long sentences, I often read it out, see if I am suffocating, and often make me more difficult for me - ask them to see the book I translated, huh.

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:18 PM

AA

Is the GUEST CONTRIBUTORS translated into a "guest writing guest"?

I think The Guest Contributors probably is what I picked up like this, what a little bit of opinion, but I have not personally "written".

Not very clear, the publishing house, refer to it.

#

Believe in the end of the world?

2004-07-26 3:21 PM

I fell

Believe in the end of the world?

AA brotherhood Christ is still the same? Buddha also has hell.

Religious this thing, not saying.

The devout brother said to me: First, the religious problem you face is "Accept or not accept". I said, the feelings are so overbearing? Didn't have any space?

If I don't accept basic education, God will not care about my fall. I think: when I am stupid? Don't make a discussion, it can't. I still don't accept it, continue to fall.

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:24 PM

AA

.

The Care here does not seem to be "care", which is very concerned about Excellence, it is very much.

> For example, I really like to short the long sentences, I often read it out, see if I am suffocating, and often make me sadly sad - told them to see the book I translated, huh, huh.

It's stunning, difficult.

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:26 PM

AA

> Believe in the end of the world?

> AA brotherhood Christ is still the Lord? Buddha also has hell.

Letter, Allah or Buddha will not have a world's ending issue. I believe in science :)))

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:29 PM

AA

> My wife catherine raymond, they conduct a draft

I like the inner people (you have to have BS .:).

I feel that it is more likely to be a Chinese habit, and the expression is also the same.

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:31 PMAA

> In fact, it has stimulated the content of more than one chapter in the final draft.

Inspire the content, um, it feels a bit. Do you want it?

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:32 PM

AA

> In fact, it has stimulated the content of more than one chapter in the final draft.

The final draft, seems to be called, and the case is more.

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:36 PM

AA

> Writing this book for more than five years

Which one is better for more than five years in writing book?

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:39 PM

AA

> The book's narrative style and some views have been influenced by the design mode; in fact, I consider the idea of ​​"UNIX design mode". But I didn't, because I didn't agree with some core dogmas that design mode motion implied.

"Partial view" is more likely my aesthetic standard, you estimate that you will not agree.

"Core Torch", dogma, derogatory. "Core concept"

#

Reply: TAOUP initial translation: submit version

2004-07-26 3:40 PM

AA

> I consider the idea of ​​"UNIX design mode"

I considered the idea of ​​named "UNIX design mode"

#

Reply: TAOUP initial translation: submit version

2004-07-26 4:15 PM

AA

Christopher Alexander's "Eternal Road of the Building" with Chinese translation, you can read it.

> Technical is not so strong

Readers with less technical background

> Many good books

I like "masterpiece"

> Indeed for All Programmmers in Any Language

Here Language refers to computer programming languages ​​such as c / perl, or Chinese, Japanese such as natural language? Multiple is the former, but the latter is also said.

> You should read this book, if you are an application architect, for the main generic market or portrait applications, you are considering the platform or implementation strategy of the software. This book will help you understand UNIX as the power of the development platform, understand the power of open source as a UNIX traditional power.

The main general market, a little awkward -> mainstream general market

Consider the platform or implementation strategy of software -> Considering the details, the consideration seems to have more emphasizes the overall performance, from a big aspect, and is more engaged in this book.

Longitudinal application software in a specific field? This is not translated :(

Understand the open source as a UNIX traditional power of the development method -> add one, understand the power of UNIX traditional power in open source?

In general, I like this:

You should read this book, if you are a platform or implementation strategy for longitudinal application software for the main general market or specific areas as an application architect.

I have a bad place to feel bad from XMLTO. The previous estimated less, because people discussed only to look at the front, everyone is too lazy to see :)

In fact, the ideal translator in my mind is a person who has more than 5 years (more than 10 years, but hard to find) UNIX experience, compares open source movement (similar to the corresponding, so that the author's idea). The software mentioned in the book is known, such as Fetchmail to collect Email, use DocBook write documentation, and use the GIMP to handle the image.

PS: Find one, interest, I have an idea;)

#

Reply: TAOUP initial translation: submit version

2004-07-26 4:20 PM

AA

If you understand Zen, read "Jiuyang Zhenjing", understand the architecture, know what is a water, open, and go better :)) #

Reply: TAOUP initial translation: submit version

2004-07-26 4:38 PM

I fell

Haha, you have to live with AA.

Technology translation is small, this is not a good job of the child's child.

The remuneration is low, too tired, the cattle is disdainful - the most played tickets, blinds.

First of all, you have to pass this English. CET6 is not entered, don't use bricks, I have passed CET6, knowing it.

Then, you have a certain degree of technology translation experience, don't personally have hundreds of thousands of words, don't say experience.

Third, you have to be technically sensitive. It is not necessarily a technical expert, but it is necessary to be technically sensitive, otherwise it will become Lao Qiu at Xiamen University.

This fourth, Chinese has to pass it, the knowledge is best, even "Jiuyang Zhenjing" must see!

People who satisfy the above conditions are really not much.

If it is a cattle, the bovine, or write a book yourself, ha.

#

Reply: TAOUP initial translation: submit version

2004-07-26 4:47 PM

AA

> Technology translation is small, this is not a good job of children's children.

What is going to be deep, there must be hobby; of course, talent is also important. You are playing with CET-6, but CET-4 is difficult to fell, and it is alive. In fact, the American devil usually writes in English as desirable, what is the dog whistle, CET-4 will definitely can't.

I hope that after you become famous for your family, you can also be unswervingly. Poor, gas does not change! Da, do not change!

#

Reply: TAOUP initial translation: submit version

2004-07-26 5:27 PM

AA

Search online, often there is a loss of loss, from Harley comets into General Harley, a misfortune. Hundreds of synthetic, you may not be able to understand. Still want to see the original information.

For example, the Buddhist scriptures say that Buddhism itself must repair meditation, disconnect trouble, obeyed the true heart and purification body, breaking various kinds of confusion, and finally there is no Miao. No matter what Zen is still what is still, the big multiplier is still a small, and the hardship is still a way, and the difference is just a method of practice. But the Buddha also said that legality is often true, each with the rootability, convenient door, and it is evident into Yuantong.

I didn't know if I was translated from Tianzhu Wen several hundred years ago. But I believe in translators in these Buddha, at least they have a devout heart.

#

Reply: TAOUP initial translation: submit version

2004-07-27 3:26 AM

di

Is it so overbearing? Didn't have any space?

If I don't accept basic education, God will not care about my fall. I think: when I am stupid? Don't make a discussion, it can't. I still don't accept it, continue to fall.

Belief must be believed to be the end of the endless ultimate truth. Since it is the ultimate truth, it should be more than people yourself. What kind of theory of belief, it is over, because the human theory is always wrong. Therefore, science cannot be a faith, because science is a human thoughts, under people. Faith science cloud cloud, mostly have not yet clear what is faith.

Therefore, people with belief think that she is truth, this is a logical premise. And the truth is not to discuss, you have to accept, logically there is only one consequence: Finish; just like a person does not accept the geostration, do not try the building. So, "Belief is so overbearing, no room is limited," is inevitable. I feel surprised because belief is outside our experience. #

Reply: TAOUP initial translation: submit version

2004-07-27 5:47 PM

AA

> Therefore, science cannot be faith, because science is human thinking, under people. Faith science cloud cloud, mostly have not yet clear what is faith.

First clarify, say that the end of the world is of course joking. Say, if the end of the world is really coming, then it is definitely a masterpiece of violence in science.

A person who has basic concepts with science generally does not think that a theory is the ultimate truth that is not easy. If so, it is also the theory of belief, not belief science. This kind of belief is too easy to break, an experiment, so it will not be popular.

Generally, those who say "believe in science" or "belief", mainly refers to "The way to believe in science can solve all our problems, you can explain all objective phenomena, let us know the future". " This is a better belief, because I can't solve it today, I can push it tomorrow, I have not overturned the danger on the spot :)

Therefore, "belief science" is actually a brief statement of "Methodology of Faith Science", at least in this way. Of course, you may not think so. Different people have a completely different understanding of the same word, which is also normal.

However, as human beings, we are probably facing a variety of theories and the actual limits. Thinking of the science will not be taken as the future of the future and oil, it is really a valid method for the delivery time.

Although it is not related to topics, I still want to say, I am interested, I have to take out the singer's incomplete theorem to prove that the machine is not as good as a person, most does not understand the Goethe theorem.

In fact, we have long been confused, don't think about thinking, I believe a lot of contradictory things. For example, turning the history book, the previous page said that "the Chinese people are hobby peace, never dominate", the latter page is "the" 400,000 "" Huang Nest grinds people to make food ". China is so big, not killing, is it still sent by others?

Is this not a belief? Maybe it is stupid?

转载请注明原文地址:https://www.9cbs.com/read-10387.html

New Post(0)