Inadvertently, when Yuan Dejun brother sent the initial translation in Blog, seeking opinions in an open source method (http://blog.9cbs.net/yuandj/archive/2004/07/08/36969.aspx), I feel very good. I want to take out my initial translation. Although the translation of an article is not very good, but because I also participate in the competition, those content is full, and the departure of Yuan Xiong is very large, and it is estimated that it seems that it seems to be.
I hope everyone can give me some criticism, and progress together!
Related Links:
9CBS TAOUP translation notice: http://www.9cbs.net/news/newstopic/16/16101.shtml
TAOUP original download address: ftp://download.9cbs.net/taoup.rar
Changelog:
Time change contributor remarks 2004-07-16 Post to Blog Shang Ximen Buffle (I) None 2004-07-16 Change the first sentence SOLSTICE Corrected in Yuan Xiong, see 2004-07-16 originally leaking a sentence Plus me to see the translation of the people, I found out that there is a bad design symptom AA "bad" and the first sentence repeated, changed to "bad" 2004-07-19 "Zen The essence is changed to "Zen" AA "Write" here "written" to "write" TAFT See here 2004-07-23 "Numbered Footnotes" translation TAFT Changes Here is my initiation Draft translational comparison table:
Word / sentence
Translation
Note
Expertise
Expert skill
If it is translated as "expertise", it is not smooth.
TECHNICALIA
technical details
Guess, unknown words
Bloat
Code expansion
port
transplant
Context
background
Community
team
TRANSACTION
communicate with
Agreement
harmonious
This should be "agreement, consistent"
Pretennd Omniscience
Dress up as God
Here is the meaning of God is "three integration", the author uses "we" look like he is also "three one", huh, huh
Folklore
Folk legend
It seems that it is not much
Asides
hearsay
I don't know if used as a noun or asides Than? ?
vital
Decisive role
Mysteries of X
XWindow Secret
The X I don't know if it is XWindow.
TAP
use
Make good use of
Case Study
case study
Major General-Market Or Vertical Application
Main market or vertical application
To tell the truth, I don't know what these two are known.
Aphaoristic
motto
paced
Position
See Paced
War Stories
Star War story
It seems that old beauty appreciates this science fiction
Mined this Territory
Drop in this field
See Mined this Territory
Disquisition
book
Originally, "Special Paper", see Disquisition
ground
Topic, topic
Located in Ground
ZEN FLESH, ZEN BONES
"The essence of Zen"
Located in Zen Flesh, Zen Bones
Therapeutic Form Of Mental Discipline
Intelligent training treatment
Located in Therapeutic Form Of Mental Discipline
Facilities
Features
Located in Facilities
Well-established
Yuanyuan
Located in Well-Establish
renders
which performed
Located in renders
Inspire
Promote
InspiredMotivate
Promote
Motivate
Toss Around
Talking, talk
Located in Toss Around
Implicit Knowledge
Skile knowledge
Originally, "implied knowledge", my translation may be more appropriate. See IMPLICIT KNOWLEDGE
Ephemeral
Short-lived
See
experience
It may be appropriate here, see Seen
Mind-Bogglingly
Snack
Originally, I didn't find it, but Boggle contains "intimidation" meaning.
SHONE SIMULTASLY
Comparable to it
Direct translation is "same, the same eye"
Preface
Foreword
UNIX is not so much an operating system as an oral history.
Unix is not an operating system like a legend.
(Refer to the opinion of Yuan Xiong, it is said that Unix is an operating system, it is better to call it as a verbal history) There is a vast Difference Between Knowledge and expertise. Knowledge lets you dedu the rightthing to do; Expertise Makes the right thing a reflex, hardly requiring conscious thought at all.This book has a lot of knowledge in it, but it is mainly about expertise. It is going to try to teachyou the things about Unix development that Unix experts know, but aren ' t aware that they know.It is therefore less about technicalia and more about shared culture than most Unix books -. bothexplicit and implicit culture, both conscious and unconscious traditions It is not a 'how-to' book, it is a 'why- TO 'book. There is a huge difference between knowledge and expert skills. Knowledge can make you infer what it should be doing; expert skills can make (do) the correct thing to become conditions reflex, and almost no intentional thinking. There is a lot of knowledge in this book, but its main purpose is to expert skills. It will do everything possible to teach you to the UNIX experts (although these experts don't realize that they understand these content). Thus, this book is less referred to with other UNIX books, while more concerned with shared culture - including external and implicit (cultural), intentional or unintentional traditions. This is not a book that teaches you "how to do", it is a book "why do" book. The why-to has great practical importance, because far too much software is poorly designed. Muchof it suffers from bloat, is exceedingly hard to maintain, and is too difficult to port to new platformsor extend in ways the original programmers did not anticipate. "Why" is very important practical significance because there is too much software to be designed because there are too many software designed because there are too many software designed. . Many software are troubled by code expansion, maintaining extreme difficulties, and difficult to transplant to new platforms, or it is difficult to expand the original developers unforeseen. These problems are all poor
The symptoms of poor (in accordance with AA recommendation). We expect this book readers to learn some things related to well design from UNIX. 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 adviceabout design and implementation. The third part (Tools) focuses on the software Unix providesfor helping you solve problems. The fourth part (Community) is about the human-to-humantransactions and agreements that make the Unix culture so effective at This book is divided into four parts: background, design, tools and team. The first part (background) is about (UNIX) philosophy and history, which establishes the foundation and motivation for subsequent chapters. The second part (design) launches UNIX's philosophical principles more specific to design and implementation. The third part (tools) is concerned about UNIX to help you solve the problem with the problem. The fourth part (team) explains the exchanges and harmony between people and people, which is this communication and harmony, making UNIX culture very effective in what they do. Because this is a book about shared culture, I never planned to write it alone. You will notice thatthe 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 luminariesto comment on and argue with the text. Rather than submerging the results of that review processin the final version, these guests were encouraged to speak with their own voices, amplifying anddeveloping and even disagreeing with the main line of the text. because this is A book about sharing a culture, so I never intended to write this book one by one. You will find that some text comes from outstanding UNIX developers, it is the formation of UNIX traditional. This book has experienced a wide range of public review process, and in the meant, I invited these outstanding people to evaluate and discuss these words. (Author) did not merge the results of the review process into the final version. Instead, these guests are encouraged to speak, strengthen, extended, and even oppose the main line of this book.
In this book, when I use the ed ostable omniscience but to one, in this book, when I use "we" this word I don't want to install it as God (three one), I just want to reflect such a fact: it is trying to show that this is the expert skill of the entire team (the translator Note: Not the author's ability). Because this book is aimed at transmitting culture, it includes much more in the way of history andfolklore and asides than is normal for a technical book Enjoy;. These things, too, are part of youreducation as a Unix programmer No single one of the. historical details is vital, but the gestalt ofthem 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 intuitivefeel for the Unix style Due to this book, it is compared to other technical books, it has accomplished more historical facts, folklore and Taoist listening. Enjoy it, these things are also your educated as a UNIX programmer. There is no separate person in the historical process to make a decisive role, but they are important as a whole. We think in this way, it has become a more interesting story. More importantly, understand where UNIX comes from and how it be like this, helps you form an intuitive feeling about UNIX style. For the same reason, we refuse to write as if history is over. You will find an unusually large numberof references to the time of writing in this book. We do not wish to pretend that current practicereflects some sort of timeless and perfectly logical outcome of preordained destiny. References totime of writing are meant as an alert to the reader two or three or five years hence that the associatedstatements of fact may have become dated and should be double-checked. for the same reason, we do not want (the book )written
It seems that history has been ended. You will find that this book has experienced a lot of time periods. We don't want to pretend that the current practice is reflected in some hit, eternal and perfect logic results. The purpose of the time period of writing is to remind the reader to pay attention: Two three years, or five years later, the relevant fact statement may, and need to re-examine. Other things this book is not is neither a C tutorial, nor a guide to the Unix commands and API. Itis not a reference for sed or Yacc or Perl or Python. It's not a network programming primer, nor anexhaustive guide to the mysteries of X . IT's NOT A TOUR OF UNIX'S INTERNAL.THER BOOKS COVER SPECIFICS BETER, AND THIS BOOK POINTS You at Them AS Appropriate. This book is not the following things: not a C language textbook, nor a UNIX directive and API guide . This book is not an SED or YACC or Perl, Python's reference manual. It is not a network programming basis, nor is X secret. This is not a guide to UNIX kernels and architectures. Other books have a better elaboration for these specific content, and this book will give you to see these books when it is appropriate. Beyond all these technical specifics, the Unix culture has an unwritten engineering tradition that hasdeveloped over literally millions of man-years1 of skilled effort. This book is written in the beliefthat understanding that tradition, and adding its design patterns to your toolkit, will help you In addition to all of these technical details, UNIX culture has a traditional engineering tradition, from data, this tradition is built in the efforts of more than one million people. . This book is to write about the following beliefs: We believe that this tradition is understood, add its design model to your own toolbox, 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 andthrough 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 Culture is composed of people, and traditional learning UNIX culture is through penetration, learned from other people and legends. This book is not an alternative to people's cultural inheritance, but it can make you use other people's experience, so that you can accelerate the process of learning. Note 1: 1969 to 2003 this 35 years is the short period of time. According to the historical trend curve of the number of UNIX sites that time, there are about 5 million people in the world to invest in UNIX development.
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 positionof either educating novice programmers or debating partisans of other operating systems, and youfind it hard to articulate the benefits of the Unix approach. If You are an experienced UNIX programmer, and often in the position of the training novice or with other operating system members (: ^)), and you find that it is difficult to say that the benefits of UNIX methods are difficult, then You should read this book. You Should Read this Book if you are A C, C , or Java Programmer with Experience on Other About To Start a Unix-Based Project. If you are a C, C or Java programmer, there are other operating systems Programming experience, and now I am preparing to start a UNIX-based project, you should look at this book. You should read this book if you are a Unix user with novice-level up to middle-level skills inthe operating system, but little development experience, and want to learn how to design softwareeffectively under Unix. If you are a Unix user, is from The novice level of the operating system transitions to the intermediate level, but the development experience is lacking, and I want to know how to more effective design software under UNIX, you should read this book. You should read this book if you are a non-Unix programmer who has figured out that the Unixtradition might have something to teach you. We believe you're right, and that the Unix philosophycan be exported to other operating systems. So we will pay More attention to Non-Unix Environments (especially Microsoft Operating Systems) Than Usual In a Unix Book; and wills and casStudies are Portable, We say so. If you are a non-Unix programmer, you find UNIX tradition perhaps some Things you want to learn, then this book is worth reading. We believe that you are right, and UNIX philosophy can be introduced to other systems. Therefore, we will focus more than the usual UNIX environments (especially Microsoft operating system) than the usual UNIX environment; and when tools and case studies are portable, we will point out this.
You should read this book if you are an application architect considering platforms or implementationstrategies for a major general-market or vertical application. It will help you understandthe strengths of Unix as a development platform, and of the Unix tradition of open source as adevelopment method. If you are an application (program) architect, you are thinking about the main market or vertical application, or if you implement a strategy, then you should read this book. It will help you understand UNIX as a development platform, and using open source as a UNIX tradition of development methods. You should not read this book if what you are looking for is the details of C coding or how to usethe Unix kernel API There are many good books on these topics;. Advanced Programming in theUnix Environment [Stevens92] is classic among explorations of the Unix API, AND the Practice Ofprogramming [kernighan-pike99] is Recommended Reading for All C Program (Indeed for Allprogram ". If you want to find C encoding details or how to use the UNIX core API method, then This book is not suitable for you. There are a lot of good books on these issues; "Unix Environment Programming Advanced" [Stevens92] is a classic, "Programming Practice" in UNIX API [kernighan-Pike99], recommend all C programmer reading (in fact regardless of use What languages are programmers should read). How to use this book
How to use this book
This book is both practical and philosophical Some parts are aphoristic and general, others willexamine specific case studies in Unix development We will precede or follow general principlesand aphorisms with examples that illustrate them:.. Examples drawn not from toy demonstrationprograms but rather from real working code This book is both practical and philosophical. Some parts are modes and are common, others will investigate some specific UNIX development case studies. We will provide some examples before or after the principles and the motto to explain them, which is not extracted from the presentation of the toy properties, but from the work code running every day. We have deliberately avoided filling the book with lots of code or specification-file examples, eventhough in many places this might have made it easier to write (and in some places perhaps easierto read!). Most books about programming give too many low-level Details and Examples, But Fail Atgiving The Reader a High-Level Feel For What Real, WE Prefer To Err in Theopposite Direction. We deliberately avoid being filled with a lot of code and specific file instances in this book. Although it is easier to write in many occasions (and some cases may be easier to read!). Most of the programming books give excessive underlying details and examples, but they have not helped readers to build a high level of feelings. In this book, we would rather make mistakes in the opposite direction (translator Note: Refers to the code, and more help readers designed from high-level understanding). Therefore, while you will often be invited to read code and specification files, relatively few areactually included in the book. Instead, we point you at examples on the Web. Thus, although (in this book) you will often be invited to read some Codes and specific files, relatively, they are rarely included in the book. Instead, we pointed out that these examples are on the web.
Absorbing these examples will help solidify the principles you learn into semi-instinctive workingknowledge. Ideally, you should read this book near the console of a running Unix system, with aWebbrowser handy. Any Unix will do, but the software case studies are more likely to be preinstalledand immediately available for inspection on a Linux system. the pointers in the book are invitationsto browse and experiment. Introduction of these pointers is paced so that wandering off to explorefor a while will not break up exposition that has to be continuous. absorb these The example will help you have learned the principles to cure as a semi-straightness of work. Ideally, you should read this book by reading a web browser next to a terminal running a UNIX system. Any type of UNIX is linen, but the software case learning will be installed and can be used immediately. The instructions in the book encourage you to browse and experiment. The introduction of these indications has positioning identifiers (translator Note: See list of examples), and thus leaving to browse for a while and does not interrupt the display of continuous progress. Note: while we have made every effort to cite URLs that should remain stable and usable, there isno way we can guarantee this If you find that a cited link has gone stale, use common sense and doa phrase search with your favorite Web search engine. Note: Note: Although we do everything we all might guarantees that the URLs are stable and available, it is not possible to ensure this. If you find that the links referenced in the book are no longer valid, use your common sense, use your favorite web search engine for a phrase. We recommend that the URLs we reference will try to find this way. Most Abbreviations Used In this book area. For Convenience, We Have AlsoProvided A Glossary In an appendix. Most of the abbreviations used in this book will explain the first time. For convenience, we also provide a glossary in the appendix. References are usually by author name. Numbered FootNotes area for Urls That Well Intrude ONTHE TEXTOR THAT WESPECT Might Be PERISHABLE; Also For Asides, War Stories, And Jokes.2 references are typically given by author name. Footnotes with numbers are the URL link for text
Some URLs that may destroy the text coherence, or those we suspect may be deleted; or some hearsay, "Star Wars" story, 2. To make this book more accessible to less technical readers, we invited some non-programmers toread it and identify terms that seemed both obscure and necessary to the flow of exposition. Wealso use footnotes for definitions of elementary terms that an experienced programmer is unlikely toneed. In order to make this book more easy to accept technical uncomfortable readers, we invited some non-programmers to read and point out those processes that are exhibiting both (reading) obstacles are also essential terms. We also use footnotes to give definitions of basic terms, which are usually unnecessary for experienced programmers. Note 2: This footnote is dedicated to Terry Pratchett, his use of footnote is ... Hey, encouraging: ^)
Related References
Reference book
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 amongthese 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 early Unix developers' papers and books have won something in this area. The "UNIX programming environment" of Kerninghan and Pike [kerninghan-Pike84] stood out in these books and is (correctly) as a classic. However, today, it has indeed showing some old states: it does not mention Internet, and WORLD WIDE Web or a new wave similar to Perl, TCL, and Python's interpretation language. 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 spectrumof topics we felt needed to be addressed. Nevertheless we are grateful To the author for the reminderthat The Very Simplest UNIX Design Patterns HAVEEN THE MOST PERSISTENT AND SUCCESSFUL AND SUCCESSFUL AND SIONES. We will learn Mike Gancarz's "UNIX Philosophy" [Gancarz]. This book is very good in its coverage, but it does not try to cover all the types we feel that you need to explain. However, we are still very grateful to the reminder of the author: The simplest UNIX design model is the most lasting. The Pragmatic Programmer [Hunt-Thomas] is a witty and wise disquisition on good design practicepitched at a slightly different level of the software-design craft (more about coding, less about higherlevelpartitioning of problems) than this book. The authors' philosophy is an Outgrowth of unixexperience, and it is an excellent complement to this book. "The programmer cultivation" [hunt-thomas] is a dedicated and wisdom. It focuses on excellent design practices, but it is slightly different from this book. It is more inclined to the level of software design technology (more attention to encoding, and less concerned about the high level of problem). The author's philosophy is the product of UNIX experience, and this book is a good supplement to this book.
The Practice Of Programming [Kernighan-Pike99] Covers Some of the Same Ground As the PragmaticProgrammer from a position Deep Wtemmer from a position. "Programming" [kerninghan-pike99] describes some of the "programmer cultivation" very similar The topic, but it is carried out from a further angle of UNIX. 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 scatteredthroughout this book. They are included because Zen provides a vocabulary for addressing someideas that turn out to be very important for software design but are otherwise very difficult to hold inthe mind. Readers with religious attachments are invited to consider Zen not as a religion but as atherapeutic form of mental discipline-which, in its purest non-theistic forms , is exactly what zenis. Finally (with unbacked incitement), we recommend "the essence of Zen
Zen "[REPS-SENZAKI], one of the important works of Zen's origin. The reference to "Zen" is spread all over the book. They (translators Note: Refers to Zen Thought) is included in the "Zen" to describe some thoughts, these ideas are ultimately proven to be very important for software design, but it is very difficult to understand. We recommend that readers with religious beliefs don't think of "Zen" as a belief, but treat it as a form of intelligence training, and this purehe theory is also the "Zen".
Conventions Used in this BOOK
Some of the agreements used in this book
The term "UNIX" is technically and legally a trademark of The Open Group, and should formallybe used only for operating systems which are certified to have passed The Open Group's elaboratestandards-conformance tests. In this book we use "Unix" in the looser sense widely current amongprogrammers, to refer to any operating system (whether formally Unix-branded or not) that is eithergenetically descended from Bell Labs's ancestral Unix code or written in close imitation of itsdescendants. in particular, Linux (from which we draw most of our examples IS A UNIX Underthis Definition. The term "UNIX" is technically and legally registered trademarks of Open Group, and it is only allowed to be officially used for operating systems that pass the Open Group's refinement standard consistency test certification. In this book, we use the broader meaning of "UNIX" currently in programmers to refer to all the original UNIX code from Bell Lab, or code that is very similar to its future generation. The operating system written in the way (regardless of whether it is formally in Unix is trademark). Special, Linux (that is, most of the examples we have drawn) is a UNIX under this definition. This book employs the Unix manual page convention of tagging Unix facilities with a followingmanual section in parentheses, usually on first introduction when we want to emphasize that thisis a Unix command. Thus, for example, read "munger (1)" as "the ' munger 'program, which willbe 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, section8 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 -s1 man). This book uses the Unix manual The agreement is identified by coupled with a bracket and its number of chapters in the manual after UNIX. Usually we labeled like this time to emphasize it is a UNIX directive.
Thus, for example, "Munger (1)" should be construed as "Munger program, you can find the corresponding document in Section 1 (User Tool) of the UNIX Manual, if it exists in your system." Section 2 is C system call, Section 3 is C library call, Section 5 is the file format and protocol, Section 8 is the system management tool. Other chapters are different from the UNIX system, but they are not referenced in this book. To learn more, please in your UNIX shell (Translator Note: I don't want to translate shell as "shell", or keep it) Type Man L Man (Old System V UNIX may require Man-S L Man). Sometimes we mention a Unix application (such as Emacs, without a manual-section suffix andcapitalized. This is a clue that the name actually represents a well-established family of Unixprograms with essentially the same function, and we are discussing generic properties of all ofthem Sometimes we mention a UNIX application (for example, Emacs), there is no manual chapter number, and it is capitalized. This usually implies that this name represents a long-lived UNIX program family. Essentially the same function, and we are discussing their common attributes. For example, Emacs, including Xemacs. At Various Points Later in this book we refer to 'Old School' and 'New School' Methods. Aswith Rap Music, new-school starts about 1990. In this context, it's associated with the rise ofscripting 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 inshell, and C everywhere. This difference is worth pointing out because cheaper and less memoryconstrained machines have wrought some significant changes on the Unix programming st We all mentioned the "old school" and "new school" methods after this book. "New School" and Rap Music began in the 1990s. In this background, it is associated with a scripting language, graphical user interface, an open source UNIX and network. "Old School" refers to the world before the 1990s (especially 1985), which is full of expensive (shared) computers, private UNIX, scripts under the shell, and C.
This difference deserves our particular pointing because it is cheaper, and more unsigned by memory constraints has formed some major changes in UNIX program design. Our Case Studies 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 Ones: Many of the programming books rely on some examples of some toys, which are specifically constructed in order to demonstrate a certain point of view. Our book is not the case. Our case studies will be real, the existing software products that have been applied in daily life. Here are some of the major cases: 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/]. These two independent (developed) projects are usually used together. The CDRTools package is a set of CLI tools for writing CD-ROMs; search "CDRTools" on the Internet. xcdroast cdrtools application is a graphical interface; see xcdroast project 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). The Fetchmail program receives mail from the remote mail server via the POP3 or IMAP Mail Protocol.
See Fetchmail Home [http://www.catb.org/~esr/fetchmail] (or search "Fetchmail" on the Internet) (Translator Note: Fetchmail is a mail receiving and forwarding program developed by this author, you can refer to the author of "the Cathedral and the bazaar") 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 available from the GIMP Home Page [http://www.gimp.org/] (or search for "gimp" on the web). GIMP (GNU image handler) is a full-featured painting, drawing and image processing program, can Fine way to edit images in a variety of formats. GIMP's homepage has related source programs [http://www.gimp.org/] (or search "gimp" online) Mutt The Mutt Mail User agent is the current best-of-break Among TextBased 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 Mail User Assistant is the most excellent in existing text-based UNIX email assistant, which has excellent support for MIME (multi-purpose Internet mail extension) and privacy accessories Such as PGP (Pretty Good Privacy, this is not covered?) And support for GPG (GNU privacy guards). [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 instructions can express DOCBOOK and other XML documents into different output formats, including HTML and text, and postscript format.
If you need the source and related documents, please go to XMLTO project site [http://cyberelk.net/tim/xmlto/] to minimize the amount of code the user neseds to read to understand The Examples, We Have Triedto 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 In order to minimize the code that users need to read in order to understand the examples, we try to choose a case study that can be reused. Ideally, it is best to show a variety of different design principles and practices. For the same reason, many examples are for my own project. (Do this) is not implying that these may be the best, just because I found that they are just familiar with me, you can meet the needs of the need for AUTHOR's ACKNOWLEDGEMENTS author, thank you.
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. guest contributors are (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 increase the value of this book. Here, Doug Mcilroy is specifically mentioned, and he has greatly exceeded his obligation in the depth of the rigidity and contribution to the contribution of the comments, showing the same concerns when managing the original UNIX research group in thirty years ago. Contribution to the pursuit of excellence. Special thanks go to Rob Landley and to my wife Catherine Raymond, both of whom deliveredintensive line-by-line critiques of manuscript drafts. Rob's insightful and attentive commentaryactually inspired more than one entire chapter in the final manuscript, and he had a lot to do withits present organization and range; if he had written all the text he pushed me to improve, I wouldhave 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. For Rob Landley and My Wife Catherine Raymond's special gratitude. The two of them give a fine comment on each line of my manuscript. Robs have insightful and considerate annotations in fact contributing to the content of the final manuscript, and he has also made a quite contribution to the organization structure and scope of this book; if he puts reminds me to improve the improvement Those words all wrote, I should call him as a person. Cathy is a non-technical reader as a book for this book; it is worthy of her.
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. Discussions with many others in the five years of my writing have benefited the book. Mark M. Miller gave me a lot of enlightenment in the thread. John Cowan provides some distinctive knowledge about the interface design, and drafted Wily and VM / CMS case studies; Jef raskin specified for the "minimum surprise" principle. The UIUC system architecture group gives a very useful feedback from the previous chapters. "Where is UNIX," and "in-depth exploration scalability" are all protruded directly from their review. Russell J. Nelson provides materials for the contents of the Bernistan chain in Chapter 7. Jay MayNard provides material for content related to MVS case studies in Chapter 3. Les Hatton provides a lot of beneficial annotations for the "Language" chapter and contributes to some of the contents in Chapter 4 "Optimized Module Size". David A. Wheeler puts forward a lot of keen criticisms and materials for some case studies, especially those in "design". Russ Cox helps expand the "Plan 9" survey. Dennis Ritchie points my mistake in some historical points of the C language.
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, responsibility for any errors in the resulting work remains my owne. There is a hundred thousand UNIX programmers, because they are too many, they cannot be listed here, they are open from January 2003 to July. Many recommendations and comments have been made during the review period. As always, I found that the online public equality review is full of fierce challenges and enthusiasm. Also as always, the mistakes in the final product are still my own responsibility. The expository style and some of the concerns of this book have been influenced by the designpatterns 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 work3 (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 Patternals. Some of the ideas have some concepts in the book being influenced by design mode; in fact, I have to name this book "Unix Design Mode" This idea is swaying. I didn't do this, because I didn't agree (design mode) exercise Some of some blind bobbins, and I don't think it takes to use the full formal facilities it provides or to accept its cultural burden.
However, my way is inevitably affected by Christopher Alexander 3 (especially the "Eternal Road" and "Mode Language"), and I am full of gratitude to the "Four Gang" and other members of their favorite. The feelings, because they show me how to make higher levels of communication in the software design area, instead of just issue some vague, meaningless mutters. Interested readers should look at "Design mode: can be used for object-oriented software" [Gangoffour] to have a basic understanding of design mode. (Translator Note: "Design Mode" book has now become the Bible in the design mode, and the auto is usually known as Gang of Four, or abbreviated as GOF, here we call them "Four Help" There is no meanings. Correspondingly, this book is often called GOF design mode) The Title of this Book is, of course, a reference to donald knUth's the art of computer programming. While NOT SPECIFICLY ASSOCIATED with THE UNIX Tradition Knuth Has Been An Influnce ON US All. Of course, the title of this book is to imitate the title of Donald Knuth's "Computer Program Design Art" book. Although Knuth and UNIX traditions have no specific links, he influences us. (Translator Note: Knuth is a man-class person in the computer field, and its art of computer programming is also refreshed as a programming classic book (textbook). At the same time, his writing style also affected a large number of technical writers)
Note 3: The correct evaluation of Alexander, as well as the link to the on-line version of some important content, can be in the "Some Notes On Christopher Alexander" website [http://www.math.utsa.edu/sphere/salingar/ Chris.text.html is found. 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. have vision and imagination of editors is not as It can be seen everywhere. Mark Taub is an editor; he discovered a stagnant project value, and very tips to convince me to complete it. With a keen hearing of the prose style, there is a more rare copy editor that improves the ability to have a completely different article completely different. However, Mary Lou Nohr reached this level. Jerry Votta caught the cover of this book from my concept, and I made it more than my imagination. All staff of Prentice-Hall gave me a good impression, because they strive to reduce the troubles brought by editors and publishing processes (give me), and very happy to accept me in writing, Even in depth of the book's visual design, art, market, etc. "" control hammer "tendency. Culture? What creted?
culture? What 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 often talk about "culture", "art" and "philosophy" in the book. If you are not a programmer, or you are a programmer but have not touched the UNIX world, this will be strange. However, UNIX has its culture, which has different artificial arts, and has a very powerful design philosophy with it. Understanding these traditions will help you build better software, even if you are developing on non-Unix systems. 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 importantas (and, as experience grows, often more important than) the official handbooks and textbooks.Senior Engineers Developing Huge 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". Each branch of engineering and design has technical culture. In most engineering, there are no traditions in this field that are part of the employee education in which it works, and it is equally important with the official manual and textbooks (and the growth of experience may be more important. ). The seniors of engineers developed a large number of subtle knowledge, which spread to their later generations through a special exchange mechanism outside the text (special communication mechanism outside the text).
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 of software engineering in terms of this principle usually is an exception;. Technology is changing so rapidly, the software environment is you Changba me on stage So in terms of technical culture, it has become short and short. However, there is still exception to this "exception". Hundreds of software technologies have proven to have sufficient durability to evolve power, special art, and design philosophy in 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. Internet culture is another - or, in the 21st century, some people argue that they are actually the same (culture). These both have become more difficult to distinguish since the 1980s. In this book, we will not do so. The durability of unix
Durability of UNIX
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 Unix since 1969 Birth continues to use in productive applications. That experienced a number of phases in the Geological Era of Computer Industry - Better than the PC, Workstations, Microprocessors and even display terminals, with the earliest semiconductor memory. In today's time division system, only IBM's VM / CMS can claim that it exists (more Unix), and the Unix machine is installed, it provides thousands of service time; in fact, UNIX Supported computments may be more than the sum of all other time division systems. 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. It is already possible to find that the use of UNIX machines can have a wider type than other operating systems. From the supercomputer to the handheld device, as well as embedded network hardware, from the workstation to the server, from the PC to the microcomputer, the uniX has been added more than the other three operating systems. 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 extensive application supported by UNIX is enough to surprise you. As a sample for research, as a friendly host environment of customized technology applications, as a platform for business standards, as a platform for business standards, as an extremely important ring in the integration technology of the Internet, no other operating system is comparable to it. .
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. These confident full predictions either unix will be disilled, or it will be squeezed by other operating systems. This prophecy starts from Unix's infant era. However, the body is today's Linux, BSD, Solaris, Macos X and more than half of other variants, but it looks unprecedented. 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.④ Unix has already undergone several such transformations. Robert Metcalf (father of Ethernet) Said, if there is anything that emerges, it will be called "Ethernet", so the Ethernet will never die. Unix has already experienced a number of transformations. At least one of Unix's central technologies - the C language -. Has been widely naturalizedelsewhere Indeed it is now hard to imagine doing software engineering without C as a ubiquitouscommon language of systems programming Unix also introduced both the now-ubiquitous treeshaped file namespace with directory. Nodes and the pipeline for connection program. At least one of UNIX core technology - C language - has been widely ported to many places. In fact, it is hard to imagine today. If there is no C language as a widely existing common system program design language, how software engineering is implemented. At the same time, UNIX has also introduced a tree file name space with a directory node today, and a Pipeline function for connecting the application.
(Start drain turned phrase) 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 Paying The Bills, and Still Commanding Loyal From Many of The Best and Brightest Software Technologists on the planet. Unix is not a surprising thing. Other techniques such as flowing fluorescence dying. The capacity of the machine has grown thousands, the language has changed, and the industrial practice has experienced many revolutions - and UNIX is still high at the top, still in production, still paying bills, and still owns this planet It is best to be loyal to the smart software expert. Once when coax was replaced with twisted pair, and a second time when gigabit Ethernet came in. One of the many consequences of the exponential power-versus-time curve in computing, and thecorresponding 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 Likey to Fall in When Learns It. Thus the Loyalty Unix Commands. One is a twisted pair replaced the coaxial cable, and it is another Gigabit Ethernet. In the calculation field, the energy VS time curve growing in the field, as well as the progress of the corresponding software development, one of the effects is that a person's knowledge is eliminated every 18 months. UNIX cannot avoid this phenomenon, but a good job to accommodate it.
There are some foundations that do not shake (UNIX) foundation - language, system calls, tool calls, etc., these are enough to use years, and even decades. Other things, it is impossible to predict what will be stable; even the entire operating system is eliminated in the loop. Under UNIX, there is an extremely obvious difference between short knowledge and long-lasting knowledge, and when you study, you can pre-understand (about 90% of your confirmation) which type will be outdated. In this way, the loyalty to UNIX is guaranteed. 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. Unix stability And success should be attributed to the strength it inherit, attributed to the design decision made by Ken Thompson, Dennis Ritchie, Brian Kernighan, Doug Mcilroy, Rob Pike, and other UNIX developers as early as possible, and these decisions have repeatedly proved to be reasonably. It should also be attributed to the design of philosophy, programming art, and technical culture in the early stage of UNIX. Since then, this tradition has been continuous and successful in symbiosis with UNIX. Note 4: In fact, Ethernet has been replaced by different techniques with the same name - and there are more than two times!