一. å¤§æ•™å ‚å’Œå¸‚é›†
  Linuxçš„å½±å“æ˜¯éžå¸¸å·¨å¤§çš„。甚至在5年以å‰ï¼Œæœ‰è°èƒ½å¤Ÿæƒ³è±¡ä¸€ä¸ªä¸–界级的æ“作系统能够仅仅用细细的Internet连接起æ¥çš„æ•£å¸ƒåœ¨å…¨çƒçš„å‡ åƒä¸ªå¼€å‘人员有以业余时间æ¥åˆ›é€ 呢?
  我当然ä¸ä¼šè¿™ä¹ˆæƒ³ã€‚在1993年早期我开始注æ„Linux时,我已ç»å‚与Unix和自由软件开å‘è¾¾å年之久了。我是八å年代䏿œŸGNUæœ€æ—©çš„å‡ ä¸ªå‚与者之一。我已ç»åœ¨ç½‘上å‘布了大é‡çš„自由软件,开å‘å’Œå助开å‘äº†å‡ ä¸ªè‡³ä»Šä»åœ¨å¹¿æ³›ä½¿ç”¨çš„程åºï¼ˆNethack,Emacs VCå’ŒGND模å¼ï¼Œxlifeç‰ç‰ï¼‰ã€‚我想我知é“è¯¥æ€Žæ ·åšã€‚
  Linux推翻了许多我认为自己明白的事情。我已ç»å®£æ‰¬å°å·¥å…·ã€å¿«é€ŸåŽŸåž‹å’Œæ¼”è¿›å¼å¼€å‘çš„Unixç¦éŸ³å¤šå¹´äº†ã€‚但是我也相信æŸäº›é‡è¦çš„夿‚çš„äº‹æƒ…éœ€è¦æ›´é›†ä¸åŒ–的,严密的方法。我相信多数é‡è¦çš„软件(æ“作系统和象Emacsä¸€æ ·çš„çœŸæ£å¤§åž‹çš„工具)需è¦å‘å»ºé€ å¤§æ•™å ‚ä¸€æ ·æ¥å¼€å‘,需è¦ä¸€ç¾¤äºŽä¸–éš”ç»çš„奇æ‰çš„细心工作,在æˆåŠŸä¹‹å‰æ²¡æœ‰beta版的å‘布。
Linus Torvalds的开å‘é£Žæ ¼ï¼ˆå°½æ—©å°½å¤šçš„å‘布,委托所有å¯ä»¥å§”托的事,对所有的改动和èžåˆå¼€æ”¾ï¼‰ä»¤äººæƒŠå¥‡çš„é™ä¸´äº†ã€‚这里没有安é™çš„ã€è™”è¯šçš„å¤§æ•™å ‚çš„å»ºé€ å·¥ä½œâ€”â€”ç›¸å,Linux团体看起æ¥åƒä¸€ä¸ªå·¨å¤§çš„æœ‰å„ç§ä¸åŒè®®ç¨‹å’Œæ–¹æ³•的乱哄哄的集市(Linux归档站点接å—任何人的建议和作å“ï¼Œå¹¶èªæ˜Žçš„åŠ ä»¥ç®¡ç†ï¼‰ï¼Œä¸€ä¸ªä¸€è‡´è€Œç¨³å®šçš„系统就象奇迹一般从这个集市ä¸äº§ç”Ÿäº†ã€‚
  这ç§è®¾è®¡é£Žæ ¼ç¡®å®žèƒ½å·¥ä½œï¼Œå¹¶ä¸”å·¥ä½œå¾—å¾ˆå¥½ï¼Œè¿™ä¸ªäº‹å®žç¡®å®žæ˜¯ä¸€ä¸ªå†²å‡»ã€‚åœ¨æˆ‘çš„ç ”ç©¶è¿‡ç¨‹ä¸ï¼Œæˆ‘ä¸ä»…在å•个工程ä¸åŠªåŠ›å·¥ä½œï¼Œè€Œä¸”è¯•å›¾ç†è§£ä¸ºä»€ä¹ˆLinux世界ä¸ä»…没有在一片混乱ä¸åˆ†å´©ç¦»æžï¼Œåè€Œä»¥å¤§æ•™å ‚å»ºé€ è€…ä»¬ä¸å¯æƒ³è±¡çš„速度å˜å¾—è¶Šæ¥è¶Šå¼ºå¤§ã€‚
  到了1996年ä¸ï¼Œæˆ‘想我开始ç†è§£äº†ã€‚我有一个æžå¥½çš„æµ‹è¯•我的ç†è®ºçš„æœºä¼šï¼Œä»¥ä¸€ä¸ªè‡ªç”±è½¯ä»¶è®¡åˆ’的形å¼ï¼Œæˆ‘有æ„è¯†çš„æ˜¯ç”¨äº†å¸‚é›†é£Žæ ¼ã€‚æˆ‘è¿™æ ·åšäº†ï¼Œå¹¶å–得了很大的æˆåŠŸã€‚
ã€€ã€€åœ¨æœ¬æ–‡çš„ä½™ä¸‹éƒ¨åˆ†ï¼Œæˆ‘å°†è®²è¿°è¿™ä¸ªè®¡åˆ’çš„æ•…äº‹ï¼Œæˆ‘ç”¨å®ƒæ¥æ˜Žç¡®ä¸€äº›è‡ªç”±è½¯ä»¶é«˜æ•ˆå¼€å‘çš„æ ¼è¨€ã€‚å¹¶ä¸æ˜¯æ‰€æœ‰è¿™äº›éƒ½æ˜¯ä»ŽLinux世界ä¸å¦åˆ°çš„,但我们将看到Linuxä¸–ç•Œç»™äºˆäº†å®ƒä»¬ä¸€ä¸ªä»€ä¹ˆæ ·çš„ä½ç½®ã€‚如果我是æ£ç¡®çš„ï¼Œå®ƒä»¬å°†ä½¿ä½ ç†è§£æ˜¯ä»€ä¹ˆä½¿Linux团体æˆä¸ºå¥½è½¯ä»¶çš„æºæ³‰ï¼Œå¸®åŠ©ä½ å˜å¾—æ›´åŠ é«˜æ•ˆã€‚
二. 邮件必须得通过
ã€€ã€€ï¼‘ï¼™ï¼™ï¼“å¹´ä»¥å‰æˆ‘在一个å°çš„å…费访问的å为Chester County InterLinkçš„ISPçš„åšæŠ€æœ¯å·¥ä½œï¼Œå®ƒä½äºŽPennsylvaniaçš„West Chester。(我å助建立了CCIL,并写了我们独特的多用户BBSç³»ç»Ÿâ€”â€”ä½ å¯ä»¥telnet到locke.ccil.orgæ¥æ£€æµ‹ä¸€ä¸‹ã€‚今天它在å乿¡çº¿ä¸Šæ”¯æŒä¸‰åƒçš„用户)。这个工作使我å¯ä»¥ä¸€å¤©äºŒå四尿—¶é€šè¿‡CCILçš„56Kä¸“çº¿è¿žåœ¨ç½‘ä¸Šï¼Œå®žé™…ä¸Šï¼Œå®ƒè¦æ±‚我怎么åšï¼
  所以,我对Internet emailå¾ˆç†Ÿæ‚‰ã€‚å› ä¸ºå¤æ‚çš„åŽŸå› ï¼Œå¾ˆéš¾åœ¨æˆ‘å®¶é‡Œçš„æœºå™¨ï¼ˆsnark.thyrsus.com)和CCIL之间用SLIPå·¥ä½œã€‚æœ€åŽæˆ‘终于æˆåŠŸäº†ï¼Œä½†æˆ‘å‘现ä¸å¾—䏿—¶å¸¸telnet到lockeæ¥æ£€æŸ¥æˆ‘的邮件,这真是太烦了。我所需è¦çš„æ˜¯æˆ‘的邮件å‘é€åˆ°snark,è¿™æ ·biff(1)会在它到达时通知我。
  简å•地sendmail的转é€åŠŸèƒ½æ˜¯ä¸å¤Ÿçš„ï¼Œå› ä¸ºsnark并䏿˜¯æ€»åœ¨ç½‘ä¸Šè€Œä¸”æ²¡æœ‰ä¸€ä¸ªé™æ€åœ°å€ã€‚我需è¦ä¸€ä¸ªç¨‹åºé€šè¿‡æˆ‘çš„SLIP连接把我的本地å‘é€çš„邮件拉过æ¥ã€‚我知é“è¿™ç§ä¸œè¥¿æ˜¯å˜åœ¨çš„,它们大多使用一个简å•çš„åè®®POP(Post Office Protocol)。而且,lockeçš„BSD/OSæ“作系统已ç»è‡ªå¸¦äº†ä¸€ä¸ªPOP3æœåŠ¡å™¨ã€‚
  我需è¦ä¸€ä¸ªPOP3客户。所以我到网上去找到了一个。实际上,我å‘现了三ã€å››ä¸ªã€‚我用了一会pop-perl,但它å´å°‘一个明显的特å¾ï¼šæŠ½å–收到的邮件的地å€ä»¥ä¾¿æ£ç¡®å›žå¤ã€‚
ã€€ã€€é—®é¢˜æ˜¯è¿™æ ·çš„ï¼šå‡è®¾locke上一个å«â€œjoeâ€çš„äººå‘æˆ‘å‘了一å°é‚®ä»¶ã€‚如果我把它å–到snarkä¸Šå‡†å¤‡å›žå¤æ—¶,我的邮件程åºä¼šå¾ˆé«˜å…´åœ°æŠŠå®ƒå‘é€ç»™ä¸€ä¸ªä¸å˜åœ¨çš„snark上的“joeâ€ã€‚手工的在地å€ä¸ŠåŠ ä¸Šâ€œ@ccil.orgâ€å˜æˆäº†ä¸€ä¸ªä¸¥é…·çš„痛苦。
  这显然应是计算机替我åšçš„äº‹ã€‚ï¼ˆå®žé™…ä¸Šï¼Œä¾æ®RFC1123çš„5.2.18节,sendmail应该åšè¿™ä»¶äº‹ï¼‰ã€‚但是没有一个现å˜çš„POPå®¢æˆ·çŸ¥é“æ€Žæ ·åšï¼äºŽæ˜¯è¿™å°±ç»™æˆ‘们上了第一课:
  1.æ¯ä¸ªå¥½çš„软件工作都开始于æ”到了开å‘者本人的痒处。
  也许这应该是显而易è§çš„ï¼ˆâ€œéœ€è¦æ˜¯å‘明之æ¯â€é•¿ä¹…以æ¥å°±è¢«è¯æ˜Žæ˜¯æ£ç¡®çš„),但是软件开å‘人员常常把他们的精力放在它们既ä¸éœ€è¦ä¹Ÿä¸å–œæ¬¢çš„程åºï¼Œä½†åœ¨Linux世界ä¸å´ä¸æ˜¯è¿™æ ·â€”—这解释了为什么从Linux团体ä¸äº§ç”Ÿçš„软件质é‡éƒ½å¦‚æ¤ä¹‹é«˜ã€‚
  那么,我是å¦ç«‹å³æŠ•入疯狂的工作ä¸ï¼Œè¦ç¼–出一个新的POP3客户与现å˜çš„那些竞争呢?æ‰ä¸æ˜¯å“ªï¼æˆ‘仔细考察了手头上的POP工具,问自己“那一个最接近我的需è¦ï¼Ÿâ€å› 为:
  2.好程åºå‘˜çŸ¥é“该写什么,伟大的程åºå‘˜çŸ¥é“该é‡å†™ï¼ˆå’Œé‡ç”¨ï¼‰ä»€ä¹ˆã€‚
  我并没有声称自己是一个伟大的程åºå‘˜ï¼Œå¯æ˜¯æˆ‘è¯•ç€æ•ˆä»¿ä»–们。伟大程åºå‘˜çš„一个é‡è¦ç‰¹ç‚¹æ˜¯å»ºè®¾æ€§çš„æ‡’惰。他们知é“ä½ æ˜¯å› ä¸ºæˆç»©è€Œä¸æ˜¯åŠªåŠ›å¾—åˆ°å¥–èµï¼Œè€Œä¸”ä»Žä¸€ä¸ªå¥½çš„å®žé™…çš„è§£å†³æ–¹æ¡ˆå¼€å§‹æ€»æ˜¯è¦æ¯”从头干起容易。
  例如,Linux并䏿˜¯ä»Žå¤´å¼€å§‹å†™Linux的。相å的它从é‡ç”¨Minix(一个386机型上的类似Unix的微型æ“作系统)的代ç å’Œæ€æƒ³å…¥æ‰‹ã€‚æœ€åŽæ‰€æœ‰çš„Minix代ç 都消失或被彻底的é‡å†™äº†ï¼Œä½†æ˜¯å½“它们在的时候它为最终æˆä¸ºLinuxçš„é›å½¢åšäº†é“ºåž«ã€‚
ã€€ã€€ç§‰æ‰¿åŒæ ·çš„精神,我去寻找良好编ç 的现æˆçš„POP工具,用æ¥ä½œä¸ºåŸºç¡€ã€‚
  Unix世界ä¸çš„代ç å…±äº«ä¼ ç»Ÿä¸€ç›´å¯¹ä»£ç é‡ç”¨å¾ˆå‹å¥½ï¼ˆè¿™æ£æ˜¯ä¸ºä»€ä¹ˆGNU计划ä¸ç®¡Unix本身有多么ä¿å®ˆè€Œé€‰å–它作为基础æ“ä½œç³»ç»Ÿçš„åŽŸå› ï¼‰ã€‚Linuxä¸–ç•ŒæŠŠè¿™ä¸ªä¼ ç»ŸæŽ¨å‘æŠ€æœ¯æžé™ï¼šå®ƒæœ‰å‡ 个Tå—节的æºä»£ç å¯ä»¥ç”¨ã€‚所以在Linux世界ä¸èŠ±æ—¶é—´å¯»æ‰¾å…¶ä»–å‡ ä¹Žè¶³å¤Ÿå¥½çš„ä¸œè¥¿ï¼Œä¼šæ¯”åœ¨åˆ«å¤„å¸¦æ¥æ›´å¥½çš„结果。
ã€€ã€€è¿™ä¹Ÿé€‚åˆæˆ‘ã€‚åŠ ä¸Šæˆ‘å…ˆå‰å‘现的,第二次寻找找到了9个候选者——fetchPOP,PopTart,get-mail,gwpop,pimp,pop-perl,popc,popmail å’Œ upop)。我首先选定的是“fetchpopâ€ã€‚æˆ‘åŠ å…¥äº†å¤´æ ‡é‡å†™åŠŸèƒ½ï¼Œå¹¶ä¸”åšäº†ä¸€äº›è¢«ä½œè€…åŠ å…¥ä»–çš„1.9版ä¸çš„æ”¹è¿›ã€‚
ã€€ã€€ä½†æ˜¯å‡ ä¸ªæ˜ŸæœŸä¹‹åŽï¼Œæˆ‘å¶ç„¶å‘现了Carl Harris写的“popclientâ€çš„代ç ,然åŽå‘现有个问题,虽然fetchpopæœ‰ä¸€äº›å¥½çš„åŽŸå§‹æ€æƒ³(比如它的守护进程模å¼),它åªèƒ½å¤„ç†pop3,而且编ç 的水平相当业余(Seung-Hongæ˜¯ä¸ªå¾ˆèªæ˜Žä½†æ˜¯ç»éªŒä¸è¶³çš„程åºå‘˜),Carlçš„ä»£ç æ›´å¥½ä¸€äº›ï¼Œç›¸å½“专业和稳固,但他的程åºç¼ºå°‘å‡ ä¸ªé‡è¦çš„相当容易实现的fetchpop的特å¾(包括我自己写的那些)。
  继ç»å‘¢è¿˜æ˜¯æ¢ä¸€ä¸ª? 如果æ¢ä¸€ä¸ªçš„è¯ï¼Œä½œä¸ºå¾—到一个更好开å‘åŸºç¡€çš„ä»£ä»·ï¼Œæˆ‘å°±è¦æ‰”æŽ‰æˆ‘å·²ç»æœ‰çš„那些代ç 。
  æ¢ä¸€ä¸ªçš„一个实际的动机是支æŒå¤šå议,pop3是用的最广的邮局å议,但并éžå”¯ä¸€ä¸€ä¸ªï¼ŒFetchpopå’Œå…¶ä½™å‡ ä¸ªæ²¡æœ‰å®žçŽ°POP2.RPOP,或者APOPï¼Œè€Œä¸”æˆ‘è¿˜æœ‰ä¸€ä¸ªä¸ºäº†å…´è¶£åŠ å…¥IMAP(Internet Message Access Protocol,最近设计的最强大的邮局åè®®)的模糊想法。
ã€€ã€€ä½†æ˜¯æˆ‘æœ‰ä¸€ä¸ªæ›´åŠ ç†è®ºåŒ–çš„åŽŸå› è®¤ä¸ºæ¢ä¸€ä¸‹ä¼šæ˜¯ä¸€ä¸ªå¥½ä¸»æ„ï
¼Œè¿™æ˜¯æˆ‘在Linux很久以å‰å¦åˆ°çš„:
  3.â€œè®¡åˆ’å¥½æŠ›å¼ƒï¼Œæ— è®ºå¦‚ä½•ï¼Œä½ ä¼šçš„â€(Fred Brooks,《神秘的人月》第11ç« )
  或者æ¢å¥è¯è¯´ï¼Œä½ å¸¸å¸¸åœ¨ç¬¬ä¸€æ¬¡å®žçŽ°ä¸€ä¸ªè§£å†³æ–¹æ¡ˆä¹‹åŽæ‰èƒ½ç†è§£é—®é¢˜æ‰€åœ¨ï¼Œç¬¬äºŒæ¬¡ä½ 也许æ‰è¶³å¤Ÿæ¸…æ¥šæ€Žæ ·åšå¥½å®ƒï¼Œå› æ¤å¦‚æžœä½ æƒ³åšå¥½ï¼Œå‡†å¤‡å¥½æŽ¨ç¿»é‡æ¥è‡³å°‘一次。
  好å§(我告诉自己),对fetchpopçš„å°è¯•是我第一次的å°è¯•ï¼Œå› æ¤æˆ‘æ¢äº†ä¸€ä¸‹ã€‚
  当我在1996å¹´6月25日把我第一套popclient的补ä¸ç¨‹åºå¯„ç»™Carl Harris之åŽï¼Œæˆ‘å‘现一段时间以å‰ä»–å·²ç»å¯¹popclientåŸºæœ¬ä¸Šå¤±åŽ»äº†å…´è¶£ï¼Œè¿™äº›ä»£ç æœ‰äº›é™ˆæ—§ï¼Œæœ‰ä¸€äº›æ¬¡è¦çš„错误,我有许多修改è¦åšï¼Œæˆ‘们很快达æˆä¸€è‡´ï¼Œæˆ‘æ¥æŽ¥æ‰‹è¿™ä¸ªç¨‹åºã€‚ä¸çŸ¥ä¸è§‰çš„,这个计划扩大了,å†ä¹Ÿä¸æ˜¯æˆ‘原先打算的在已有的popå®¢æˆ·ä¸ŠåŠ å‡ ä¸ªæ¬¡è¦çš„è¡¥ä¸è€Œå·²äº†ï¼Œæˆ‘得维护整个的工程,而且我脑袋里涌动ç€ä¸€äº›å¿µå¤´è¦å¼•起一个大的å˜åŒ–。
  在一个鼓励代ç 共享的软件文化里,这是一个工程进化的自然é“è·¯ï¼Œæˆ‘è¦æŒ‡å‡ºï¼š
  4. å¦‚æžœä½ æœ‰æ£ç¡®çš„æ€åº¦ï¼Œæœ‰è¶£çš„é—®é¢˜ä¼šæ‰¾ä¸Šä½ çš„ï¼Œä½†æ˜¯Carl Harrisçš„æ€åº¦ç”šè‡³æ›´åŠ é‡è¦ï¼Œä»–ç†è§£ï¼š
  5.å½“ä½ å¯¹ä¸€ä¸ªç¨‹åºå¤±åŽ»å…´è¶£æ—¶ï¼Œä½ æœ€åŽçš„è´£ä»»å°±æ˜¯æŠŠå®ƒä¼ ç»™ä¸€ä¸ªèƒ½å¹²çš„åŽç»§è€…。
  甚至没有商é‡ï¼ŒCarlå’Œæˆ‘çŸ¥é“æˆ‘们有一个共åŒç›®æ ‡å°±æ˜¯æ‰¾åˆ°æœ€å¥½çš„解决方案,对我们æ¥è¯´å”¯ä¸€çš„问题是我能å¦è¯æ˜Žæˆ‘有一åŒåšå¼ºçš„æ‰‹ï¼Œä»–优雅而快速的写出了程åºï¼Œæˆ‘希望轮到我时我也能åšåˆ°ã€‚
三. 拥有用户的é‡è¦æ€§
  于是我继承了popclientï¼ŒåŒæ ·é‡è¦çš„æ˜¯ï¼Œæˆ‘继承了popclientçš„ç”¨æˆ·åŸºç¡€ï¼Œç”¨æˆ·æ˜¯ä½ æ‰€æ‹¥æœ‰çš„æžå¥½çš„东西,ä¸ä»…ä»…æ˜¯å› ä¸ºä»–ä»¬æ˜¾ç¤ºäº†ä½ æ£åœ¨æ»¡è¶³éœ€è¦ï¼Œä½ åšäº†æ£ç¡®çš„äº‹æƒ…ï¼Œå¦‚æžœåŠ ä»¥é€‚å½“çš„åŸ¹å…»ï¼Œä»–ä»¬å¯ä»¥æˆä¸ºåˆä½œå¼€å‘者。
  Unixä¼ ç»Ÿå¦ä¸€æœ‰åŠ›ä¹‹å¤„æ˜¯è®¸å¤šç”¨æˆ·éƒ½æ˜¯é»‘å®¢ï¼Œå› ä¸ºæºä¼˜ç 是公开的,他们å¯ä»¥æˆä¸ºé«˜æ•ˆçš„黑客,这一点在Linux世界ä¸ä¹Ÿè¢«æŽ¨å‘了令人高兴的æžè‡´ï¼Œè¿™å¯¹ç¼©çŸè°ƒè¯•时间是æžç«¯é‡è¦çš„ï¼Œåœ¨ä¸€ç‚¹é¼“åŠ±ä¹‹ä¸‹ï¼Œä½ çš„ç”¨æˆ·ä¼šè¯Šæ–问题,æå‡ºä¿®è®¢å»ºè®®ï¼Œå¸®ä½ ä»¥è¿œæ¯”ä½ æœŸæœ›å¿«å¾—å¤šçš„é€Ÿåº¦çš„æ”¹è¿›ä»£ç 。
  6. 把用户当åšå作开å‘者是快速改进代ç å’Œé«˜æ•ˆè°ƒè¯•çš„æ— å¯äº‰è¾©çš„æ–¹å¼ã€‚
ã€€ã€€è¿™ç§æ•ˆæžœçš„力é‡å¾ˆå®¹æ˜“è¢«ä½Žä¼°ï¼Œå®žé™…ä¸Šï¼Œå‡ ä¹Žæ‰€æœ‰æˆ‘ä»¬è‡ªç”±è½¯ä»¶ä¸–ç•Œä¸çš„人都强烈低估了用户å¯ä»¥å¤šä¹ˆæœ‰æ•ˆåœ°å¯¹ä»˜ç³»ç»Ÿå¤æ‚性,直到Linus让我们看到了这一点。
  实际上,我认为Linusæœ€èªæ˜Žæœ€äº†ä¸èµ·çš„å·¥ä½œä¸æ˜¯åˆ›å»ºäº†Linuxå†…æ ¸æœ¬èº«ï¼Œè€Œæ˜¯å‘æ˜Žäº†Linux开呿¨¡å¼ï¼Œå½“我有一次当ç€ä»–çš„é¢è¡¨è¾¾è¿™ç§è§‚点时,他微笑了一下,é‡å¤äº†ä¸€å¥ä»–ç»å¸¸è¯´çš„è¯ï¼šâ€œæˆ‘基本上是一个懒惰的人,ä¾é 他人的工作æ¥èŽ·å–æˆç»©ã€‚â€è±¡ç‹ç‹¸ä¸€æ ·æ‡’惰,或者如Robert Heinlein所说,太懒了而ä¸ä¼šå¤±è´¥ã€‚
  回顾起æ¥ï¼Œåœ¨GNU Emacs Lisp库和Lisp代ç 集ä¸å¯ä»¥çœ‹åˆ°Linux方法的æˆåŠŸï¼Œä¸ŽEmacsçš„Cå†…æ ¸å’Œè®¸å¤šå…¶ä»–FSF的工具相比,Lisp代ç 库的演化是æµåŠ¨æ€§çš„å’Œç”¨æˆ·é©±åŠ¨çš„ï¼Œæ€æƒ³å’ŒåŽŸåž‹åœ¨è¾¾åˆ°æœ€ç»ˆçš„ç¨³å®šå½¢å¼ä¹‹å‰å¾€å¾€è¦é‡å†™ä¸‰æˆ–四次,而且ç»å¸¸åˆ©ç”¨Internetçš„æ¾æ•£åˆä½œã€‚
  实际上,我自己在fetchmail之剿œ€æˆåŠŸçš„ä½œå“è¦ç®—Emacs VC模å¼ï¼Œå®ƒæ˜¯ä¸‰ä¸ªå…¶ä»–的人通过电å邮件进行的类似Linuxçš„åˆä½œï¼Œè‡³ä»Šæˆ‘åªè§è¿‡å…¶ä¸ä¸€ä¸ªäºº(Richard Stallman),它是SCCSã€RCSå’ŒåŽæ¥çš„CVSçš„å‰ç«¯ï¼Œä¸ºEmacsæä¾›â€œone-touchâ€ç‰ˆæœ¬æŽ§åˆ¶æ“作,它是从一个微型的ã€ç²—糙的别人写好的sccs.el模å¼å¼€å§‹æ¼”化的,VCå¼€å‘çš„æˆåŠŸä¸åƒEmacsæœ¬èº«ï¼Œè€Œæ˜¯å› ä¸ºEmacs Lisp代ç å¯ä»¥å¾ˆå¿«çš„通过å‘å¸ƒï¼æµ‹è¯•ï¼æ”¹è¿›çš„过程。
  (FSFçš„è¯•å›¾æŠŠä»£ç æ”¾å…¥GPL之下的ç–略有一个未曾预料到的副作用,它让FSF难以采å–市集模å¼ï¼Œå› 为他们认为æ¯ä¸ªæƒ³è´¡çŒ®äºŒå行以上代ç 的人都必须得到一个授æƒï¼Œä»¥ä½¿å—到GPL的代ç å…å—ç‰ˆæƒæ³•的侵扰,具有BSDå’ŒMITXå会的授æƒçš„用户ä¸ä¼šæœ‰è¿™ä¸ªé—®é¢˜ï¼Œå› 为他们并ä¸è¯•图ä¿ç•™é‚£äº›ä¼šä½¿äººå¯èƒ½å—到质询的æƒåŠ›)。
å››. æ—©å‘布ã€å¸¸å‘布
ã€€ã€€å°½é‡æ—©å°½é‡é¢‘ç¹çš„å‘布是Linux开呿¨¡å¼çš„一个é‡è¦éƒ¨åˆ†ï¼Œå¤šæ•°å¼€å‘人员(包括我)过去都相信这对大型工程æ¥è¯´æ˜¯ä¸ªä¸å¥½çš„ç–ç•¥ï¼Œå› ä¸ºæ—©æœŸç‰ˆæœ¬éƒ½æ˜¯äº›å……æ»¡é”™è¯¯çš„ç‰ˆæœ¬ï¼Œè€Œä½ ä¸æƒ³è€—光用户的è€å¿ƒã€‚
  这ç§ä¿¡ä»°å¼ºåŒ–äº†å»ºé€ å¤§æ•™å ‚å¼€å‘æ–¹å¼çš„å¿…è¦æ€§ï¼Œå¦‚æžœç›®æ ‡æ˜¯è®©ç”¨æˆ·å°½å¯èƒ½å°‘çš„è§åˆ°é”™è¯¯ï¼Œé‚£ä½ 怎能ä¸ä¼šä»…ä»…æ¯å…个月å‘布一次(或更ä¸ç»å¸¸),而且在å‘布之间象一åªç‹—ä¸€æ ·è¾›å‹¤â€œæ‰è™«â€å‘¢? Emacs Cå†…æ ¸å°±æ˜¯ä»¥è¿™ç§æ–¹å¼å¼€å‘的,Lisp库,实际上å´ç›¸åï¼Œå› ä¸ºæœ‰ä¸€äº›æœ‰FSF控制之外的Lispåº“ï¼Œåœ¨é‚£é‡Œä½ å¯ä»¥ç‹¬ç«‹äºŽEmacså‘布周期地找寻新的和开å‘代ç 版本。
ã€€ã€€è¿™å…¶ä¸æœ€é‡è¦çš„æ˜¯Ohioå·žçš„elisp库,预示了今天的巨大的Linux库的许多特å¾çš„精神,但是我们很少真æ£ä»”细考虑我们在åšä»€ä¹ˆï¼Œæˆ–者这个库的å˜åœ¨æŒ‡å‡ºäº†FSFå»ºé€ æ•™å ‚å¼å¼€å‘模å¼çš„什么问题,1992年我曾ç»åšäº†ä¸€æ¬¡ä¸¥è‚ƒçš„å°è¯•,想把Ohio的大é‡ä»£ç æ£å¼åˆå¹¶åˆ°Emacs的官方Lisp库ä¸ï¼Œç»“果我陷入了政治斗争ä¸ï¼Œå½»åº•失败了。
  但是一年之åŽï¼Œåœ¨Linux广泛应用之åŽï¼Œå¾ˆæ¸…楚,一些ä¸åŒçš„æ›´åŠ å¥åº·çš„东西诞生了,Linusçš„å¼€å‘æ¨¡å¼æ£å¥½ä¸Žå»ºé€ æ•™å ‚æ–¹å¼ç›¸å,Sunsiteå’Œtsx-11的库开始æˆé•¿ï¼ŒæŽ¨åŠ¨äº†è®¸å¤šå‘布。所有这些都是闻所未闻的频ç¹çš„å†…æ ¸ç³»ç»Ÿçš„å‘布所推动的。
  Linus以所有实际å¯èƒ½çš„æ–¹å¼æŠŠå®ƒçš„用户作为å作开å‘人员。
  7. æ—©å‘布ã€å¸¸å‘布ã€å¬å–客户的建议
  Linusçš„åˆ›æ–°å¹¶ä¸æ˜¯è¿™ä¸ª(这在Unixä¸–ç•Œä¸æ˜¯ä¸€ä¸ªé•¿æœŸä¼ 统),而是把它扩展到和他所开å‘çš„ä¸œè¥¿çš„å¤æ‚程度相匹é…的地æ¥ï¼Œåœ¨æ—©æœŸä¸€å¤©ä¸€æ¬¡å‘布对他æ¥è¯´éƒ½ä¸æ˜¯ç½•è§çš„!è€Œä¸”å› ä¸ºä»–åŸ¹è‚²äº†ä»–çš„å作开å‘者基础,比其他任何人更努力地充分利用了Internet进行åˆä½œï¼Œæ‰€ä»¥è¿™ç¡®å®žèƒ½è¡Œã€‚
ã€€ã€€ä½†æ˜¯å®ƒæ˜¯æ€Žæ ·è¿›è¡Œçš„å‘¢?它是我能模仿的å—?还是这ä¾èµ–于Linus的独特天æ‰?
  我ä¸è¿™æ ·æƒ³ï¼Œæˆ‘承认Linus是一个æžå¥½çš„黑客(我们有多少人能够åšå‡ºä¸€ä¸ªå®Œæ•´çš„高质é‡çš„æ“ä½œç³»ç»Ÿå†…æ ¸?),但是Linux并䏿˜¯ä¸€ä¸ªä»¤äººæ•¬ç•的概念上的飞跃,Linus䏿˜¯(è‡³å°‘è¿˜ä¸æ›¾æ˜¯)象Richard stallman或James Goslingä¸€æ ·çš„åˆ›æ–°å¤©æ‰ï¼Œåœ¨æˆ‘看æ¥ï¼ŒLinus更象一个工程天æ‰ï¼Œå…·æœ‰é¿å…错误和开å‘å¤±è´¥çš„ç¬¬å…æ„Ÿè§‰ï¼ŒæŽŒæ¡äº†å‘现从A点到B点代价最å°çš„路径的决çªï¼Œç¡®å®žï¼ŒLinux的整个设计å—ç›ŠäºŽè¿™ä¸ªç‰¹è´¨ï¼Œå¹¶åæ˜ 出Linus的本质上ä¿å®ˆå’Œç®€åŒ–设计的方法。
  如果快速的å‘布和充分利用Internet䏿˜¯å¶ç„¶è€Œæ˜¯Linus的对代价最å°çš„路径的洞察力的工程天æ‰çš„内在部分,那么他æžå¤§å¢žå¼ºäº†ä»€ä¹ˆ?ä»–åˆ›å»ºäº†ä»€ä¹ˆæ ·çš„æ–¹æ³•?
  问题回ç”了它自己,Linusä¿æŒä»–的黑客用户ç»å¸¸å—到激励和奖èµï¼šè¢«è¡ŒåŠ¨çš„è‡ªæˆ‘æ»¡è¶³çš„å¸Œæœ›æ‰€æ¿€åŠ±ï¼Œè€Œå¥–èµåˆ™æ˜¯ç»å¸¸(甚至æ¯å¤©)都看到工作在进æ¥ã€‚
  Linusç›´æŽ¥çž„å‡†äº†äº‰å–æœ€å¤šçš„æŠ•入调试和开å‘的人时,甚至冒代ç ä¸ç¨³å®šå’Œä¸€æ—¦æœ‰éžå¸¸æ£˜æ‰‹çš„错误而失去用户基础的险,Linus似乎相信下é¢è¿™ä¸ªï¼š
  8. 如果有一个足够大的beta测试人员和å作开å‘äººå‘˜çš„åŸºç¡€ï¼Œå‡ ä¹Žæ‰€æœ‰çš„
问题都å¯ä»¥è¢«å¿«é€Ÿçš„æ‰¾å‡ºå¹¶è¢«ä¸€äº›äººçº æ£ã€‚
ã€€ã€€æˆ–è€…æ›´ä¸æ£å¼çš„讲:“如果有足够多的眼ç›ï¼Œæ‰€æœ‰çš„错误都是浅显的â€(ç¾¤ä¼—çš„çœ¼ç›æ˜¯é›ªäº®çš„),我把这称为“Linus定律â€ã€‚
  我最åˆçš„表述是æ¯ä¸ªé—®é¢˜â€œå¯¹æŸäº›äººæ˜¯é€æ˜Žçš„â€ï¼ŒLinuså对说,ç†è§£å’Œä¿®è®¢é—®é¢˜çš„那个人ä¸ä¸€å®šéžæ˜¯ç”šè‡³å¾€å¾€ä¸æ˜¯é¦–å…ˆå‘现它的人,“æŸä¸ªäººå‘现了问题â€ï¼Œä»–说,“å¦ä¸€ä¸ªç†è§£å®ƒï¼Œæˆ‘认为å‘现它是个更大的挑战â€ï¼Œä½†æ˜¯è¦ç‚¹æ˜¯æ‰€æœ‰äº‹éƒ½è¶‹å‘于迅速å‘生。
ã€€ã€€æˆ‘è®¤ä¸ºè¿™æ˜¯å»ºé€ æ•™å ‚å’Œé›†å¸‚æ¨¡å¼çš„æ ¸å¿ƒåŒºåˆ«ï¼Œåœ¨å»ºé€ æ•™å ‚æ¨¡å¼çš„编程模å¼çœ‹æ¥ï¼Œé”™è¯¯å’Œç¼–程问题是狡猾的ã€é˜´é™©çš„ã€éšè—å¾ˆæ·±çš„çŽ°è±¡ï¼ŒèŠ±è´¹å‡ ä¸ªæœˆçš„ä»”ç»†æ£€æŸ¥ï¼Œä¹Ÿä¸èƒ½ç»™ä½ å¤šå¤§ç¡®ä¿æŠŠå®ƒä»¬éƒ½æŒ‘å‡ºæ¥çš„ä¿¡å¿ƒï¼Œå› æ¤å¾ˆé•¿çš„å‘布周期,和在长期ç‰å¾…之åŽå¹¶æ²¡æœ‰å¾—到完美的版本å‘布所引起的失望都是ä¸å¯é¿å…的。
  以市集模å¼è§‚点æ¥çœ‹ï¼Œåœ¨å¦ä¸€æ–¹é¢ï¼Œæˆ‘们认为错误是浅显的现象,或者至少当暴露给上åƒä¸ªçƒåˆ‡çš„å作开å‘人员,让他们æ¥å¯¹æ¯ä¸ªæ–°å‘布进行测试的时候,它们很快å˜å¾—浅显了,所以我们ç»å¸¸å‘布æ¥èŽ·å¾—æ›´å¤šçš„æ›´æ£ï¼Œä½œä¸ºä¸€ä¸ªæœ‰ç›Šçš„å‰¯ä½œç”¨ï¼Œå¦‚æžœä½ å¶å°”åšäº†ä¸€ä¸ªç¬¨æ‹™çš„修改,也ä¸ä¼šæŸå¤±å¤ªå¤šã€‚也许我们本ä¸åº”è¯¥è¿™æ ·çš„æƒŠå¥‡ï¼Œç¤¾ä¼šå¦å®¶åœ¨å‡ å¹´å‰å·²ç»å‘现一群相åŒä¸“业的(æˆ–ç›¸åŒæ— 知的)观察者的平å‡è§‚点比在其ä¸éšæœºæŒ‘é€‰ä¸€ä¸ªæ¥å¾—æ›´åŠ å¯é ,他们称æ¤ä¸ºâ€œDelhpi效应â€ï¼ŒLinusæ‰€æ˜¾ç¤ºçš„è¯æ˜Žåœ¨è°ƒè¯•一个æ“作系统时它也适用——Delphi效应甚至å¯ä»¥æˆ˜èƒœæ“ä½œç³»ç»Ÿå†…æ ¸ä¸€çº§çš„å¤æ‚度。
  我å—Jeff Dutky (dutky @ wam.umd.edu)çš„å¯å‘指出Linus定律å¯ä»¥é‡æ–°è¡¨è¿°ä¸ºâ€œè°ƒè¯•å¯ä»¥å¹¶è¡Œâ€ï¼ŒJeff观察到虽然调试工作需è¦è°ƒè¯•人员和对应的开å‘人员相交æµï¼Œä½†å®ƒä¸éœ€è¦åœ¨è°ƒè¯•人员之间进行大é‡çš„åè°ƒï¼ŒäºŽæ˜¯å®ƒå°±æ²¡æœ‰é™·å…¥å¼€å‘æ—¶é‡åˆ°çš„å¹³æ–¹å¤æ‚度和管ç†å¼€é”€ã€‚
  在实际ä¸ï¼Œç”±äºŽé‡å¤åŠ³åŠ¨è€Œå¯¼è‡´çš„ç†è®ºä¸Šçš„丧失效率的现象在Linux世界ä¸å¹¶ä¸æ˜¯ä¸€ä¸ªå¤§é—®é¢˜ï¼Œâ€œæ—©å‘布ã€å¸¸å‘布ç–ç•¥â€çš„ä¸€ä¸ªæ•ˆæžœå°±æ˜¯åˆ©ç”¨å¿«é€Ÿçš„ä¼ æ’å馈修订æ¥ä½¿é‡å¤åŠ³åŠ¨è¾¾åˆ°æœ€å°ã€‚
  Brooks甚至åšäº†ä¸€ä¸ªä¸ŽJeff相关的更精确的观察:“维护一个广泛使用的程åºçš„æˆæœ¬ä¸€èˆ¬æ˜¯å…¶å¼€å‘æˆæœ¬çš„40%ï¼Œå¥‡æ€ªçš„æ˜¯è¿™ä¸ªæˆæœ¬å—到用户个数的强烈影å“,更多的用户å‘现更多的错误â€(我的强调)。
  更多的用户å‘çŽ°æ›´å¤šçš„é”™è¯¯æ˜¯å› ä¸ºæ›´å¤šçš„ç”¨æˆ·æä¾›äº†æ›´å¤šæµ‹è¯•程åºçš„æ–¹æ³•,当用户是å作开å‘人员时这个效果被放大了,æ¯ä¸ªæ‰¾å¯»é”™è¯¯çš„人都有自己ç¨å¾®ä¸åŒçš„æ„Ÿè§‰å’Œåˆ†æžå·¥å…·ï¼Œä»Žä¸åŒè§’度æ¥çœ‹å¾…问题。“Delphi效应â€ä¼¼ä¹Žå› 为这个å˜ä½“工作å˜å¾—æ›´åŠ ç²¾ç¡®ï¼Œåœ¨è°ƒè¯•çš„æƒ…å†µä¸‹ï¼Œè¿™ä¸ªå˜ä½“åŒæ—¶å‡å°äº†é‡å¤åŠ³åŠ¨ã€‚
ã€€ã€€æ‰€ä»¥åŠ å…¥æ›´å¤šçš„beta测试人员虽ä¸èƒ½ä»Žå¼€å‘人员的P.O.Vä¸å‡å°â€œæœ€æ·±â€çš„é”™è¯¯çš„å¤æ‚åº¦ï¼Œä½†æ˜¯å®ƒå¢žåŠ äº†è¿™æ ·ä¸€ç§å¯èƒ½æ€§ï¼Œå³æŸä¸ªäººçš„工具和问题æ£å¥½åŒ¹é…,而这个错误对这个人æ¥è¯´æ˜¯æµ…显的。
  Linus也åšäº†ä¸€äº›æ”¹è¿›ï¼Œå¦‚果有一些严é‡çš„错误,Linuxå†…æ ¸çš„ç‰ˆæœ¬åœ¨ç¼–å·ä¸Šåšäº†äº›å¤„ç†ï¼Œè®©ç”¨æˆ·å¯ä»¥è‡ªå·±é€‰æ‹©æ˜¯è¿è¡Œä¸Šä¸€ä¸ªâ€œç¨³å®šâ€çš„版本,还是冒é‡åˆ°é”™è¯¯çš„险而得到新特å¾ï¼Œè¿™ä¸ªæˆ˜ç•¥è¿˜æ²¡è¢«å¤§å¤šæ•°Linux黑客所仿效,但它应该被仿效,å˜åœ¨ä¸¤ä¸ªé€‰æ‹©çš„事实让二者都很å¸å¼• 人。
  
五. ä»€ä¹ˆæ—¶å€™çŽ«ç‘°ä¸æ˜¯çŽ«ç‘°?
ã€€ã€€åœ¨ç ”ç©¶äº†Linus的行为和形æˆäº†ä¸ºä»€ä¹ˆå®ƒæˆåŠŸçš„ç†è®ºä¹‹åŽï¼Œæˆ‘决定在我的工程(æ˜¾ç„¶æ²¡æœ‰é‚£ä¹ˆå¤æ‚和雄心勃勃)里有æ„识的测试这个ç†è®ºã€‚
但我首先åšçš„事是熟悉和简化Popclient。 Carl Harris的实现éžå¸¸å¥½ï¼Œä½†æ˜¯æœ‰ä¸€ç§å¯¹è®¸å¤šCç¨‹åºæ¥è¯´æ²¡æœ‰å¿…è¦çš„夿‚性。他把代ç å½“ä½œæ ¸å¿ƒè€ŒæŠŠæ•°æ®ç»“构当作对代ç 的支æŒï¼Œç»“果是代ç éžå¸¸æ¼‚亮但是数æ®ç»“构设计得很特别,相当丑陋(至少对以这个è€LISPé»‘å®¢çš„æ ‡å‡†æ¥çœ‹),然而除了æé«˜ä»£ç 和数æ®ç»“构设计之外,é‡å†™å®ƒè¿˜æœ‰ä¸€ä¸ªç›®çš„ï¼Œå°±æ˜¯è¦æŠŠå®ƒæ¼”åŒ–ä¸ºæˆ‘å½»åº•ç†è§£çš„ä¸œè¥¿ï¼Œå¯¹ä¿®æ”¹ä½ ä¸ç†è§£çš„程åºä¸çš„错误负责å¯ä¸æ˜¯ä¸€ä»¶æœ‰è¶£çš„事。
ã€€ã€€ç¬¬ä¸€ä¸ªæœˆæˆ‘åªæ˜¯åœ¨é¢†ä¼šCarl’s的基本设计的å«ä¹‰ï¼Œæˆ‘所åšçš„第一个é‡å¤§ä¿®æ”¹æ˜¯åŠ å…¥äº†IMAP支æŒï¼Œæˆ‘把åè®®æœºé‡æ–°ç»„织为一个通用驱动程åºå’Œä¸‰ä¸ªæ–¹æ³•表(对应POP2ã€POP3å’ŒIMAP),这个å‰é¢çš„修改指出一个需è¦ç¨‹åºå‘˜(特别是象Cè¿™ç§æ²¡æœ‰è‡ªç„¶çš„动æ€ç±»åž‹æ”¯æŒçš„è¯è¨€)记在脑ä¸çš„一般原ç†ï¼š
  9. èªæ˜Žçš„æ•°æ®ç»“构和笨拙的代ç è¦æ¯”相åçš„æé…工作的更好
  Fred Brooks也在他第11ç« ä¸è®²é“ï¼šâ€œè®©æˆ‘çœ‹ä½ çš„ï¼»ä»£ç ï¼½ï¼ŒæŠŠä½ çš„[æ•°æ®ç»“æž„]éšè—èµ·æ¥ï¼Œæˆ‘è¿˜æ˜¯ä¼šè¿·æƒ‘ï¼›è®©æˆ‘çœ‹çœ‹ä½ çš„[æ•°æ®ç»“æž„],那我就ä¸éœ€è¦ä½ çš„[代ç ]了,它是显而易è§çš„â€ã€‚
  实际上,他说的是“æµç¨‹å›¾â€å’Œâ€œè¡¨â€ï¼Œä½†æ˜¯åœ¨ä¸‰å年的术è¯ï¼æ–‡åŒ–演进之åŽï¼Œäº‹æƒ…è¿˜æ˜¯ä¸€æ ·çš„ã€‚
ã€€ã€€æ¤æ—¶(1996å¹´9月åˆï¼Œåœ¨ä»Žé›¶å¼€å§‹å…个月åŽ),我开始想接下æ¥ä¿®æ”¹åå———毕竟,它已ä¸ä»…仅是一个POPå®¢æˆ·ï¼Œä½†æˆ‘çŠ¹è±«äº†ï¼Œå› ä¸ºè¿˜æ²¡æœ‰ä»€ä¹ˆæ–°çš„æ¼‚äº®è®¾è®¡å‘¢ï¼Œæˆ‘çš„popclientç‰ˆæœ¬éœ€è¦æœ‰è‡ªå·±çš„特色。
  当fetehmailå¦ä¼šæ€Žæ ·æŠŠå–到的邮件转é€åˆ°SMTPç«¯å£æ—¶ï¼Œäº‹æƒ…就完全改å˜äº†ï¼Œä½†æ˜¯é¦–å…ˆï¼šä¸Šé¢æˆ‘è¯´è¿‡æˆ‘å†³å®šä½¿ç”¨è¿™ä¸ªå·¥ç¨‹æ¥æµ‹è¯•我关于Linus Torualds所åšçš„行为的ç†è®ºï¼Œ(ä½ å¯èƒ½ä¼šé—®)æˆ‘æ€Žæ ·åšåˆ°è¿™ç‚¹å‘¢? 以下é¢çš„æ–¹å¼ï¼š
    1. 我尽早尽é‡é¢‘ç¹çš„å‘布(å‡ ä¹Žä»Žæœªå°‘äºŽæ¯å天å‘布一次;在密集开å‘的时候是æ¯å¤©ä¸€æ¬¡)。
    2. 我把æ¯ä¸€ä¸ªå’Œæˆ‘讨论fetchmailçš„äººåŠ å…¥ä¸€ä¸ªbeta表ä¸ã€‚
    3. æ¯å½“我å‘布我都å‘beta表ä¸çš„人å‘出通告,鼓励人们å‚与。
    4. 我å¬å–beta测试员的æ„è§ï¼Œå‘他们询问设计决ç–,对他们寄æ¥çš„è¡¥ä¸å’Œå馈表示感谢。
  这些简å•çš„æ‰‹æ®µç«‹å³æ”¶åˆ°çš„回报,在工程的开始,我收到了一些错误报告,其质é‡è¶³ä»¥ä½¿å¼€å‘è€…å› æ¤è¢«æ€æŽ‰ï¼Œè€Œä¸”ç»å¸¸è¿˜é™„有补ä¸ã€æˆ‘å¾—åˆ°äº†ç†æ™ºçš„æ‰¹è¯„ï¼Œæœ‰è¶£çš„é‚®ä»¶ï¼Œå’Œèªæ˜Žçš„特å¾å»ºè®®ï¼Œè¿™å¯¼è‡´äº†ï¼š
  10. å¦‚æžœä½ è±¡å¯¹å¾…æœ€å®è´µçš„资æºä¸€æ ·å¯¹å¾…ä½ çš„beta测试员,他们就会æˆä¸ºä½ 最å®è´µçš„资æºã€‚
å…. popclientå˜æˆäº†Fetchmail
  这个工程的真æ£è½¬æŠ˜ç‚¹æ˜¯Harry Hochleiser寄给我他写的代ç è‰ç¨¿ï¼Œä»–把邮件转å‘到客户端机器的SMTP端å£ï¼Œæˆ‘ç«‹å³æ„识到这个特å¾çš„å¯é å®žçŽ°å°†æ·˜æ±°æ‰€æœ‰å…¶ä»–çš„é€’é€æ¨¡å¼ã€‚
ã€€ã€€å‡ ä¸ªæ˜ŸæœŸä»¥æ¥æˆ‘ä¸€ç›´åœ¨ä¿®æ”¹è€Œä¸æ˜¯æ”¹è¿›fetchmailï¼Œå› ä¸ºæˆ‘è§‰å¾—ç•Œé¢è®¾è®¡è™½ç„¶æœ‰ç”¨ä½†æ˜¯å¤ªç¬¨æ‹™ç碎了,到处充满了太多的粗陋的细å°é€‰é¡¹ã€‚
  当我æ€è€ƒSMTPè½¬å‘æ—¶æˆ‘å‘现popclient试图åšçš„äº‹å¤ªå¤šäº†ï¼Œå®ƒè¢«è®¾è®¡æˆæ—¢æ˜¯ä¸€ä¸ªé‚®ä»¶ä¼ 输代ç†(MTA)也是一个本地递é€ä»£ç†(MDA)。使用SMTP转å‘,它就å¯ä»¥ä»ŽMDA的事务ä¸è§£è„±å‡ºæ¥è€Œæˆä¸ºä¸€ä¸ªçº¯MTA,而象sendmailä¸€æ ·æŠŠé‚®ä»¶äº¤ç»™æœ¬åœ°é€’é€ç¨‹åºæ¥å¤„ç†ã€‚
  既然端å£25在所有支撑TCPï¼IP的平å°ä¸Šæ—©å·²è¢«é¢„留,为什么还è¦ä¸ºä¸€ä¸ªé‚®ä»¶ä¼ 输代ç†çš„é…ç½®æˆ–ä¸ºä¸€ä¸ªé‚®ç®±è®¾ç½®åŠ é”çš„é™„åŠ åŠŸèƒ½è€Œæ“心呢?尤其是当这æ„å‘³ç€æŠ½å–的邮件就象一个æ£å¸¸çš„å‘é€è€…å‘出的SMTPé‚®ä»¶ä¸€æ ·ï¼Œè€Œè¿™å°±æ˜¯æˆ‘ä»¬éœ€è¦çš„。
ã€€ã€€è¿™é‡Œæœ‰å‡ ä¸ªæ•™ç›Šï¼šç¬
¬ä¸€ï¼ŒSMTP转å‘的想法是我有æ„识地模拟Linus的方法以æ¥çš„æœ€å¤§çš„å•个回报,一个用户告诉我这个éžåŒå¯»å¸¸çš„æƒ³æ³•——我所需åšçš„åªæ˜¯ç†è§£å®ƒçš„å«ä¹‰ã€‚
  11. æƒ³å‡ºå¥½ä¸»æ„æ˜¯å¥½äº‹ï¼Œä»Žä½ 的用户那里å‘现好主æ„也是好事,有时候åŽè€…更好。
ã€€ã€€å¾ˆæœ‰è¶£çš„æ˜¯ï¼Œä½ å¾ˆå¿«å°†å‘çŽ°ï¼Œå¦‚æžœä½ å®Œå…¨æ‰¿è®¤ä½ ä»Žå…¶ä»–äººé‚£é‡Œå¾—åˆ°å¤šå°‘æ•™ç›Šçš„è¯ï¼Œæ•´ä¸ªä¸–ç•Œå°†ä¼šè®¤ä¸ºæ‰€æœ‰çš„å‘æ˜Žéƒ½æ˜¯ä½ åšå‡ºçš„ï¼Œè€Œä½ ä¼šå¯¹ä½ çš„å¤©æ‰å˜å¾—谦虚。我们å¯ä»¥çœ‹åˆ°è¿™åœ¨Linus身上体现得多明显!(当我在1997å¹´8月的Perl会议上å‘表这个论文时,Larry Wallååœ¨å‰æŽ’ï¼Œå½“æˆ‘è®²åˆ°ä¸Šé¢çš„观点时,他激动的å«äº†å‡ºæ¥ï¼šâ€œå¯¹äº†!说对了!哥们!â€æ‰€æœ‰çš„å¬ä¼—éƒ½å“„å ‚å¤§ç¬‘èµ·æ¥ï¼Œå› 为他们知é“åŒæ ·çš„事情也å‘生在Perlçš„å‘æ˜Žè€…身上)。
ã€€ã€€äºŽæ˜¯åœ¨åŒæ ·ç²¾ç¥žæŒ‡å¯¼ä¸‹å·¥ç¨‹è¿›è¡Œäº†å‡ 个星期,我开始ä¸å…‰ä»Žæˆ‘的用户那儿也从å¬è¯´æˆ‘的系统的人那儿得到类似的赞扬,我把一些这ç§é‚®ä»¶æ”¶è—èµ·æ¥ï¼Œæˆ‘å°†åœ¨æˆ‘å¼€å§‹æ€€ç–‘è‡ªå·±çš„ç”Ÿå‘½æ˜¯å¦æœ‰ä»·å€¼æ—¶é‡æ–°è¯»è¯»è¿™äº›ä¿¡ã€‚:)
ã€€ã€€ä½†æ˜¯æœ‰ä¸¤ä¸ªæ›´åŸºæœ¬çš„ï¼Œéžæ”¿æ²»æ€§çš„å¯¹æ‰€æœ‰è®¾è®¡éƒ½æœ‰æ™®éæ„ä¹‰çš„æ•™ç›Šã€‚
  12. 最é‡è¦å’Œæœ€æœ‰åˆ›æ–°çš„解决方案常常æ¥è‡ªäºŽä½ è®¤è¯†åˆ°ä½ å¯¹é—®é¢˜çš„æ¦‚å¿µæ˜¯é”™è¯¯çš„ã€‚
  一个衡é‡fetchmailæˆåŠŸçš„æœ‰è¶£æ–¹å¼æ˜¯å·¥ç¨‹çš„beta测试人员表(fegtchmail的朋å‹ä»¬)çš„é•¿åº¦ï¼Œåœ¨åˆ›ç«‹å®ƒçš„æ—¶å€™å·²ç»æœ‰249个æˆå‘˜äº†ï¼Œè€Œä¸”æ¯ä¸ªæ˜ŸæœŸå¢žåŠ ä¸¤åˆ°ä¸‰ä¸ªã€‚
  实际上,当我在1997å¹´5æœˆæ ¡è®¢å®ƒæ—¶ï¼Œè¿™å¼ è¡¨å¼€å§‹å› ä¸ºä¸€ä¸ªæœ‰è¶£çš„åŽŸå› è€Œç¼©çŸäº†ï¼Œæœ‰å‡ 个人请求我把他们从表ä¸åŽ»æŽ‰ï¼Œå› ä¸ºfetchmailå·²ç»å·¥ä½œçš„如æ¤ä¹‹å¥½ï¼Œä»–们ä¸éœ€è¦çœ‹åˆ°è¿™äº›é‚®ä»¶äº†!也许这是一个æˆç†Ÿçš„å¸‚é›†é£Žæ ¼å·¥ç¨‹çš„ç”Ÿå‘½å‘¨æœŸçš„ä¸€éƒ¨åˆ†ã€‚
  我以å‰ä¸€ç›´åœ¨è§£å†³é”™è¯¯çš„问题,把popclient当作MTAå’Œå…·æœ‰è®¸å¤šæœ¬åœ°é€’é€æ¨¡å¼çš„MDA的结åˆç‰©ï¼ŒFetchmail的设计需è¦ä»Žå¤´è€ƒè™‘为一个纯的MTA,åšä¸ºä¸€ä¸ªæ™®é€šInternet邮件路径的一部分。
ã€€ã€€å½“ä½ åœ¨å¼€å‘ä¸ç¢°äº†å£æ—¶(å½“ä½ å‘çŽ°è‡ªå·±å¾ˆéš¾æƒ³é€šä¸‹ä¸€æ¥æ—¶)ï¼Œé‚£é€šå¸¸ä¸æ˜¯è¦é—®è‡ªå·±æ˜¯å¦æ‰¾åˆ°æ£ç¡®ç”案,而是è¦é—®æ˜¯å¦é—®äº†æ£ç¡®é—®é¢˜ï¼Œä¹Ÿè®¸éœ€è¦é‡æ–°æž„é€ é—®é¢˜ã€‚
ã€€ã€€äºŽæ˜¯ï¼Œæˆ‘é‡æ–°æž„é€ äº†æˆ‘çš„é—®é¢˜ï¼Œå¾ˆæ¸…æ¥šï¼Œè¦åšçš„æ£ç¡®çš„äº‹æ˜¯(1)把SMTPè½¬å‘æ”¯æŒæ”¾åœ¨é€šç”¨é©±åŠ¨ç¨‹åºä¸ï¼Œ(2)把它åšä¸ºç¼ºçœæ¨¡å¼ï¼Œ(3)æœ€ç»ˆåˆ†ç¦»æ‰€æœ‰å…¶ä»–çš„é€’é€æ¨¡å¼ï¼Œå°¤å…¶æ˜¯é€’é€åˆ°æ–‡ä»¶å’Œæ ‡å‡†è¾“出的选项。
  我在第三æ¥ä¸ŠçŠ¹è±«äº†ä¸€ä¸‹ï¼Œæ‹…å¿ƒä¼šè®©popdiantçš„é•¿æœŸç”¨æˆ·å¯¹æ–°çš„é€’é€æ–¹æ³•感到烦心,在ç†è®ºä¸Šï¼Œä»–们å¯ä»¥ç«‹å³è½¬è€Œè½¬å‘文件或者他们的éžsendmailç‰ä»·ç‰©æ¥å¾—åˆ°åŒæ ·çš„æ•ˆæžœï¼Œåœ¨å®žé™…ä¸è¿™ç§è½¬æ¢å¯èƒ½ä¼šå¾ˆéº»çƒ¦ã€‚
但是当我这么åšä¹‹åŽï¼Œè¯æ˜Žå¥½å¤„是巨大的,驱动程åºä»£ç 的冗余的部分消失了,é…置完全å˜å¾—简å•了——ä¸ç”¨å±ˆä»ŽäºŽç³»ç»ŸMDA和用户的邮箱,也ä¸ç”¨ä¸ºä¸‹å±‚OSæ˜¯å¦æ”¯æŒæ–‡ä»¶é”定而担心了。
ã€€ã€€è€Œä¸”ï¼Œä¸¢å¤±é‚®ä»¶çš„å”¯ä¸€æ¼æ´žä¹Ÿè¢«å µæ»äº†ï¼Œå¦‚æžœä½ é€‰æ‹©äº†é€’é€åˆ°ä¸€ä¸ªæ–‡ä»¶è€Œç£ç›˜å·²æ»¡ï¼Œä½ 的邮件就会丢失,这在SMTP转å‘ä¸ä¸ä¼šå‘ç”Ÿï¼Œå› ä¸ºSMTP侦å¬å™¨ä¸ä¼šè¿”回OK的,除éžé‚®ä»¶å¯ä»¥é€’逿ˆåŠŸæˆ–è‡³å°‘è¢«ç¼“å†²ç•™å¾…ä»¥åŽé€’é€ã€‚
  还有,性能也改善了(è™½ç„¶åœ¨å•æ¬¡æ‰§è¡Œä¸ä½ ä¸ä¼šæ³¨æ„到),这个修改的å¦ä¸€ä¸ªä¸å¯å¿½è§†çš„好处是手册å˜å¾—大大简å•了。
ã€€ã€€åŽæ¥ï¼Œä¸ºäº†å…许处ç†ä¸€äº›ç½•è§çš„æƒ…况,包括动æ€SLIP,我必须回到让用户定义本地MDA递é€ä¸Šæ¥ï¼Œä½†æ˜¯æˆ‘å‘çŽ°äº†ä¸€ä¸ªæ›´åŠ ç®€å•的方法。
  所有这些给了我们什么å¯å‘å‘¢?如果å¯ä»¥ä¸æŸå¤±æ•ˆçŽ‡ï¼Œå°±è¦æ¯«ä¸çŠ¹è±«æŠ›å¼ƒé™ˆæ—§çš„ç‰¹æ€§ï¼ŒAntonine de Saint-Exupery(在他æˆä¸ºç»å…¸å„¿ç«¥ä¹¦ç±ä½œå®¶ä¹‹å‰æ˜¯ä¸€ä¸ªé£žè¡Œå‘˜å’Œé£žæœºè®¾è®¡å¸ˆ)曾说过:
  13. â€œæœ€å¥½çš„è®¾è®¡ä¸æ˜¯å†ä¹Ÿæ²¡æœ‰ä»€ä¹ˆä¸œè¥¿å¯ä»¥æ·»åŠ äº†ï¼Œè€Œæ˜¯å†ä¹Ÿæ²¡æœ‰ä»€ä¹ˆä¸œè¥¿å¯ä»¥åŽ»æŽ‰ã€‚â€
ã€€ã€€å½“ä½ çš„ä»£ç å˜å¾—æ›´å¥½å’Œæ›´ç®€å•æ—¶ï¼Œè¿™å°±æ˜¯ä½ 知é“它是æ£ç¡®çš„æ—¶å€™äº†ï¼Œè€Œä¸”在这个过程ä¸ï¼Œfetehmail的设计具有了自己的特点,而区别于其å‰èº«popclient。
  现在是改åçš„æ—¶å€™äº†ï¼Œè¿™ä¸ªæ–°çš„è®¾è®¡çœ‹èµ·æ¥æ¯”è€popclient更象一个sendmailçš„å¤åˆ¶å“,它们都是MTA,但是Senmail是推然åŽé€’é€ï¼Œè€Œæ–°çš„popclient是拉然åŽé€’é€ã€‚于是,在两个月之åŽï¼Œæˆ‘æŠŠå®ƒé‡æ–°å‘½å为fetehmail。
七. Fetchmailæˆé•¿èµ·æ¥
  现在我有了一个简æ´å’Œå¯Œæœ‰åˆ›æ„的设计,工作得很好的代ç ï¼Œå› ä¸ºæˆ‘æ¯å¤©éƒ½ç”¨å®ƒï¼Œå’Œä¸€ç›´åœ¨å¢žé•¿çš„betaè¡¨ï¼Œå®ƒè®©æˆ‘æ¸æ¸æ˜Žç™½æˆ‘å·²ç»ä¸æ˜¯åœ¨ä»Žäº‹åªèƒ½å¯¹å°‘数其他人有用的工作ä¸ï¼Œæˆ‘写了一个所有有一个Unix邮箱和SLIPï¼PPP邮件连接的人都真æ£éœ€è¦çš„程åºã€‚
  通过SMTP转å‘功能,它æˆä¸ºä¸€ä¸ªæ½œåœ¨çš„â€œç›®å½•æ€æ‰‹â€ï¼Œè¿œè¿œé¢†å…ˆäºŽå®ƒçš„竞争者,这个程åºå¦‚æ¤èƒ½å¹²ä»¥è‡³äºŽå…¶ä»–的程åºä¸ä½†è¢«æ”¾å¼ƒç®€ç›´è¢«å¿˜è®°äº†ã€‚
  我知é“ä½ ä¸å¯ä»¥çœŸå¾—çž„å‡†æˆ–è®¡åˆ’å‡ºè¿™æ ·çš„ç»“æžœï¼Œä½ åªèƒ½åŠªåŠ›åŽ»è®¾è®¡è¿™äº›å¼ºå¤§çš„æ€æƒ³ï¼Œä»¥åŽè¿™äº›ç»“果就好象是ä¸å¯é¿å…çš„ã€è‡ªç„¶çš„ã€æ³¨å®šäº†çš„ï¼Œå¾—åˆ°è¿™ç§æ€æƒ³çš„唯一办法是获å–è®¸å¤šæ€æƒ³ï¼Œæˆ–者用工程化的æ€è€ƒå…¶ä»–人的好主æ„è€Œè¶…è¿‡åŽŸæ¥æƒ³åˆ°å®ƒçš„人的设想。
  Andrew Tanenbanm原æ¥è®¾æƒ³å»ºé€ 一个适åˆ386的简å•çš„Unixç”¨åšæ•™å¦ï¼ŒLinus Torvalels把Andrewçš„å¯èƒ½æƒ³åˆ°çš„Minixå¯ä»¥åšä»€ä¹ˆçš„æ¦‚念推进了一æ¥ï¼Œæˆé•¿ä¸ºä¸€ä¸ªæžå¥½çš„ä¸œè¥¿ï¼ŒåŒæ ·çš„(虽然规模较å°),我接å—了Card Harriså’ŒHarry Hochheiser的想法,把它们å˜å¾—æ›´å¼ºå¤§ï¼Œæˆ‘ä»¬éƒ½ä¸æ˜¯äººä»¬æ‰€æµªæ¼«å¹»æƒ³çš„天æ‰çš„创始人,但是大多数科å¦å’Œå·¥ç¨‹å’Œè½¯ä»¶å¼€å‘䏿˜¯è¢«å¤©æ‰çš„创始人完æˆçš„,这和æµä¼ çš„ç¥žè¯æ°æ°ç›¸å。
  结果总是执ç€çš„åŽŸå› â€”â€”å®žé™…ä¸Šï¼Œå®ƒæ˜¯æ¯ä¸ªé»‘客为之生å˜çš„æˆåŠŸ!而且它们æ„å‘³ç€æˆ‘å¿…é¡»æŠŠè‡ªå·±çš„æ ‡å‡†å®šé«˜ä¸€ç‚¹ï¼Œä¸ºäº†æŠŠfetchmailå˜å¾—å’Œæˆ‘æ‰€èƒ½è®¾æƒ³çš„é‚£æ ·å¥½ï¼Œæˆ‘å¿…é¡»ä¸ä»…为我自己的需è¦å†™ä»£ç ,而且也è¦åŒ…括对在我生活围主页外的人们的需求的支æŒï¼Œè€Œä¸”åŒæ—¶ä¹Ÿè¦ä¿è¯ç¨‹åºçš„简å•å’Œå¥å£®ã€‚
ã€€ã€€åœ¨å®žçŽ°å®ƒä¹‹åŽæˆ‘首先写的最é‡è¦çš„ç‰¹å¾æ˜¯æ”¯æŒå¤šæŠ•——从集ä¸ä¸€ç»„用户的邮件的邮箱ä¸å–å‡ºé‚®ä»¶ï¼Œç„¶åŽæŠŠå®ƒè·¯ç”±åˆ°æ¯ä¸ªäººæ‰‹ä¸ã€‚
ã€€ã€€æˆ‘ä¹‹æ‰€ä»¥åŠ ä¸Šå¤šæŠ•åŠŸèƒ½éƒ¨åˆ†æ˜¯å› ä¸ºæœ‰äº›ç”¨æˆ·ä¸€ç›´åœ¨é—¹ç€è¦å®ƒï¼Œæ›´æ˜¯å› 为我想它å¯ä»¥ä»Žå•投的代ç ä¸æéœ²å‡ºé”™è¯¯æ¥ï¼Œè®©æˆ‘完全一般地处ç†å¯»å€ï¼Œè€Œä¸”è¿™è¢«è¯æ˜Žäº†ã€‚æ£ç¡®è§£é‡ŠRFC822花了我相当长的时间,ä¸ä»…å› ä¸ºå®ƒçš„æ¯ä¸ªå•ç‹¬éƒ¨åˆ†éƒ½å¾ˆéš¾ï¼Œè€Œä¸”å› ä¸ºå®ƒæœ‰ä¸€å¤§å †ç›¸äº’ä¾èµ–的苛刻的细节。
  但是多投寻å€ä¹Ÿæˆä¸ºä¸€ä¸ªæžå¥½çš„设计决ç–ï¼Œç”±æ¤æˆ‘知é“:
  14. 任何工具都应该能以预想的方å¼ä½¿ç”¨ï¼Œä½†æ˜¯ä¸€ä¸ªä¼Ÿå¤§çš„工具æä¾›ä½ 没料到的功能。
  Fetchmant多投功能的一个没有料到的用途是在SLIPï¼PPP的客户端æä¾›é‚®ä»¶åˆ—表ã€åˆ«å扩展。这æ„味ç€ä¸€ä¸ªä½¿ç”¨ä¸ªäººæœºå™¨çš„人ä¸å¿…æŒç»è®¿é—®ISPçš„åˆ«åæ–‡ä»¶å°±èƒ½é€šè¿‡ä¸€ä¸ªISP叿ˆ·ç®¡ç†ä¸€ä¸ªé‚®ä»¶åˆ—表。我的beta测试员æå‡ºçš„å¦ä¸€ä¸ªé‡è¦çš„æ”¹å˜æ˜¯æ”¯æŒ8ä½MIMEæ“作,这很容易åšï¼Œå› 为我已ç»ä»”细的ä¿è¯äº†8ä½ä»£ç 的清晰,ä¸ä»…å› ä¸ºæˆ‘é¢„è§åˆ°äº†è¿™ä¸ªç‰¹æ€§çš„éœ€æ±‚ï¼Œè€Œä¸”å› ä¸ºæˆ‘å¿ å®žäºŽå¦ä¸€å‡†åˆ™ï¼š
  15. 当写任何ç§ç±»çš„ç½‘å…³åž‹ç¨‹åºæ—¶ï¼Œå¤šè´¹ç‚¹åŠ›ï¼Œå°½é‡å°‘å¹²æ‰°æ•°æ®æµï¼Œæ°¸è¿œä¸è¦æŠ›å¼ƒä¿¡æ¯ï¼Œé™¤éžæŽ¥
收方强迫这么作!
  如果我ä¸éµä»Žè¿™ä¸ªå‡†åˆ™ï¼Œé‚£ä¹ˆ8ä½MIME支æŒå°†ä¼šå˜å¾—困难和笨拙,现在我所需è¦åšçš„,是åªè¯»ä¸€ä¸‹RFC 1652ï¼Œåœ¨äº§ç”Ÿä¿¡å¤´çš„é€»è¾‘åŠ ä¸Šä¸€ç‚¹è€Œå·²ã€‚
ã€€ã€€ä¸€äº›æ¬§æ´²ç”¨æˆ·è¦æ±‚æˆ‘åŠ ä¸Šä¸€ä¸ªé€‰é¡¹æ¥é™åˆ¶æ¯æ¬¡ä¼šè¯å–å¾—æ¶ˆæ¯æ•°(è¿™æ ·ä»–ä»¬å°±å¯ä»¥ä»Žæ˜‚贵的电è¯ç½‘ä¸æŽ§åˆ¶èŠ±è´¹äº†),我很长一段时间拒ç»è¿™æ ·åšï¼Œè€Œä¸”我ä»ç„¶å¯¹å®ƒä¸å¾ˆé«˜å…´ï¼Œä½†æ˜¯å¦‚æžœä½ æ˜¯ä¸ºäº†ä¸–ç•Œè€Œå†™ä»£ç ï¼Œä½ å¿…é¡»å¬å–顾客的æ„è§â€”—这并ä¸éšä»–们ä¸ä»˜ç»™ä½ 钱而改å˜ã€‚
å…«. 从Fetchmailå¾—æ¥çš„å¦ä¸€äº›æ•™ç›Š
  在他们回到一般的软件工程问题以å‰ï¼Œè¿˜æœ‰å‡ 个从fetchmailå¾—åˆ°çš„æ•™ç›Šéœ€è¦æ€è€ƒã€‚
  rcæ–‡ä»¶è¯æ³•包括å¯é€‰çš„“noiseâ€å…³é”®å—,它被扫æå™¨å®Œå…¨å¿½ç•¥äº†ï¼Œå½“ä½ æŠŠå®ƒä»¬å…¨æŠ½å–出的时候,关键å—ï¼å€¼å¯¹æ›´å…·å¯è¯»æ€§ã€‚
  当我注æ„到rc文件的声明在多大程度上开始象一个微型命令è¯è¨€æ—¶ï¼Œè¿™æ˜¯ä¸€ä¸ªLate-night的体验(这也是我为什么把popclient原æ¥çš„“serverâ€å…³é”®å—改æˆäº†â€œpollâ€)。
  对我æ¥è¯´ä¼¼ä¹ŽæŠŠè¿™ä¸ªå¾®åž‹å‘½ä»¤è¯è¨€å˜å¾—更象英è¯å¯èƒ½ä¼šä½¿å®ƒæ›´å®¹æ˜“使用。现在,虽然我对ç»è¿‡Emacså’ŒHTMLåŠè®¸å¤šæ•°æ®åº“引擎所è¯å®žçš„â€œæŠŠå®ƒåšæˆä¸€ä¸ªè¯è¨€â€çš„设计方å¼ç¡®ä¿¡ä¸ç–‘ï¼Œä½†æ˜¯æˆ‘å¹¶ä¸æ˜¯ä¸€ä¸ªé€šå¸¸çš„“类英è¯â€è¯æ³•çš„ç‹‚çƒæ‹¥æŠ¤è€…。
ã€€ã€€ä¼ ç»Ÿç¨‹åºå‘˜å®¹æ˜“æŽ§åˆ¶è¯æ³•使它尽é‡ç²¾ç¡®å’Œç´§å‡‘,完全没有冗余,这是计算机资æºè¿˜å¾ˆæ˜‚贵时é—ç•™ä¸‹çš„ä¸€ç§æ–‡åŒ–ä¼ ç»Ÿï¼Œæ‰€ä»¥æ‰«æç–略需è¦å°½å¯èƒ½çš„廉价和简å•,而具有50%冗余度的英è¯ï¼Œçœ‹æ¥å¥½è±¡æ˜¯ä¸€ä¸ªéžå¸¸ä¸åˆé€‚的模型。
ã€€ã€€è¿™å¹¶ä¸æ˜¯æˆ‘ä¸ç”¨ç±»è‹±è¯è¯æ³•çš„åŽŸå› ï¼Œæˆ‘æåˆ°è¿™ä¸€ç‚¹æ˜¯ä¸ºäº†æŽ¨ç¿»å®ƒï¼Œåœ¨æ›´å»‰ä»·çš„æ—¶é’Ÿå‘¨æœŸä¸Žæ ¸å¿ƒçš„æ—¶ä»£ï¼Œç®€æ´å¹¶æ²¡æœ‰èµ°åˆ°å°½å¤´ï¼Œä»Šå¤©å¯¹ä¸€ä¸ªè¯è¨€æ¥è¯´ï¼Œå¯¹äººæ›´æ–¹ä¾¿æ¯”对机器更廉价æ¥çš„æ›´åŠ é‡è¦ã€‚
ã€€ã€€ç„¶è€Œï¼Œæœ‰å‡ ä¸ªåŽŸå› æé†’我们å°å¿ƒä¸€ç‚¹ï¼Œä¸€ä¸ªæ˜¯æ‰«æç–ç•¥çš„å¤æ‚åº¦å¼€é”€â€”â€”ä½ å¹¶ä¸æƒ³æŠŠå®ƒå˜æˆä¸€ä¸ªå·¨å¤§çš„é”™è¯¯æ¥æºå’Œè®©ç”¨æˆ·å›°æƒ‘,å¦ä¸€ä¸ªæ˜¯è¯•图使è¯è¨€è¡¨é¢ä¸Šçš„类似å¯ä»¥å’Œä¼ 统è¯è¨€ä¸€æ ·ä»¤äººå›°æƒ‘(ä½ å¯ä»¥åœ¨è®¸å¤š4GL和商业数æ®åº“查询è¯è¨€ä¸Šçœ‹åˆ°è¿™ä¸€ç‚¹)。
  Fetchmailçš„æŽ§åˆ¶è¯æ³•é¿å…äº†è¿™äº›é—®é¢˜ï¼Œå› ä¸ºè¯è¨€çš„领域是æžå…¶æœ‰é™çš„。它一点也ä¸è±¡ä¸€ä¸ªä¸€èˆ¬æ€§çš„è¯è¨€ï¼Œå®ƒå¾ˆç®€å•地æè¿°çš„东西并ä¸å¤æ‚,所以很少å¯èƒ½åœ¨è‹±è¯çš„一个å°å集与实际的控制è¯è¨€ä¹‹é—´å‘生混淆,我想这有一个更广泛的教益:
  16. å¦‚æžœä½ çš„è¯è¨€ä¸€ç‚¹ä¹Ÿä¸è±¡æ˜¯å›¾çµå®Œå¤‡çš„ï¼Œä¸¥æ ¼çš„è¯æ³•会有好处。
  å¦ä¸€ä¸ªæ•™ç›Šæ˜¯å…³äºŽå®‰å…¨çš„,一些fetchmailç”¨æˆ·è¦æ±‚我修改软件把å£ä»¤åР坆å˜è´®åœ¨rcæ–‡ä»¶é‡Œï¼Œè¿™æ ·è§‘æŽ¢è€…å°±ä¸èƒ½çœ‹åˆ°å®ƒä»¬äº†ã€‚
ã€€ã€€æˆ‘æ²¡æœ‰è¿™æ ·åšï¼Œå› 为这实际上起ä¸åˆ°ä»»ä½•ä¿æŠ¤ä½œç”¨ï¼Œä»»ä½•æœ‰æƒè¯»å–ä½ çš„rc文件的人都å¯ä»¥ä»¥ä½ çš„å义è¿è¡Œfetchmail——如果他们è¦ç ´ä½ çš„å£ä»¤ï¼Œå®ƒä»¬å¯ä»¥ä»Žfetchmail的代ç 䏿‰¾åˆ°åˆ¶ä½œè§£ç 器的方法。
  所以fetchmailå£ä»¤çš„åŠ å¯†éƒ½ä¼šç»™é‚£äº›ä¸æ…Žé‡æ€è€ƒçš„人一ç§å®‰å…¨çš„错觉,这里一般性的准则是:
  17. 一个安全系统åªèƒ½å’Œå®ƒçš„ç§˜å¯†ä¸€æ ·å®‰å…¨ï¼Œå½“å¿ƒä¼ªå®‰å…¨ã€‚
ä¹. é›†å¸‚é£Žæ ¼çš„å¿…è¦çš„先决æ¡ä»¶
ã€€ã€€æœ¬æ–‡çš„æ—©æœŸè¯„å®¡äººå‘˜å’Œæµ‹è¯•äººå‘˜åšæŒæå‡ºæˆåŠŸçš„å¸‚é›†æ¨¡å¼å¼€å‘的先决æ¡ä»¶ï¼ŒåŒ…æ‹¬å·¥ç¨‹é¢†å¯¼äººçš„èµ„æ ¼é—®é¢˜å’Œåœ¨æŠŠé¡¹ç›®å…¬å¼€å’Œå¼€å§‹å»ºé€ ä¸€ä¸ªå作开å‘人员的社团的时候代ç 的状æ€ã€‚
  相当清楚,ä¸èƒ½ä»¥ä¸€ä¸ªå¸‚集模å¼ä»Žå¤´å¼€å‘一个软件,我们å¯ä»¥ä»¥å¸‚集模å¼ã€æµ‹è¯•ã€è°ƒè¯•和改进,但是以市集模å¼ä»Žå¤´å¼€å§‹ä¸€ä¸ªé¡¹ç›®å°†æ˜¯éžå¸¸å›°éš¾çš„,Linusæ²¡æœ‰è¿™æ ·åšï¼Œæˆ‘ä¹Ÿæ²¡æœ‰ï¼ŒåˆæœŸçš„å¼€å‘人员的社团应该有一æ¤å¯ä»¥è¿è¡Œå’Œæµ‹è¯•的东西æ¥çŽ©ã€‚
ã€€ã€€å½“ä½ å¼€å§‹åˆ›å»ºç¤¾å›¢æ—¶ï¼Œä½ éœ€è¦æ¼”ç¤ºçš„æ˜¯ä¸€ä¸ªè¯ºè¨€ï¼Œä½ çš„ç¨‹åºä¸éœ€è¦å·¥ä½œçš„很好,它å¯ä»¥å¾ˆç²—ç³™ã€å¾ˆç¬¨æ‹™ã€ä¸å®Œæ•´å’Œç¼ºå°‘文档ã€å®ƒä¸èƒ½å¿½ç•¥çš„东西是è¦å¸å¼•哪些人å·å…¥ä¸€ä¸ªæ•´æ´çš„项目。
  Linuxå’Œfetchmail都是以一个å¸å¼•äººçš„åŸºæœ¬è®¾è®¡è¿›å…¥å…¬å…±é¢†åŸŸçš„ï¼Œè®¸å¤šå’Œæˆ‘ä¸€æ ·åœ¨æ€è€ƒå¸‚集模å¼çš„äººå·²ç»æ£ç¡®çš„认为这是éžå¸¸å…³é”®çš„,然åŽå¾—出了一个结论,工程领导者的高度的设计直觉和èªé¢–是必ä¸å¯å°‘的。
  但是Linus是从Unixå¾—åˆ°ä»–çš„è®¾è®¡çš„ï¼Œæˆ‘æœ€åˆæ˜¯ä»Žå…ˆå‰çš„popmail得到å¯å‘çš„(虽然相对Linuxè€Œè¨€ï¼Œå®ƒæœ€åŽæ”¹å˜å·¨å¤§)ï¼Œæ‰€ä»¥å¸‚é›†é£Žæ ¼çš„é¢†å¯¼äººï¼åè°ƒäººéœ€è¦æœ‰å‡ºä¼—的设计æ‰èƒ½ï¼Œæˆ–者他å¯ä»¥åˆ©ç”¨åˆ«äººçš„设计æ‰èƒ½?
  我认为能够æå‡ºå“è¶Šçš„åŽŸå§‹è®¾è®¡æ€æƒ³å¯¹å调人æ¥è¯´ä¸æ˜¯æœ€å…³é”®çš„,但是对他ï¼å¥¹æ¥è¯´ç»å¯¹å…³é”®çš„æ˜¯è¦èƒ½æŠŠä»Žä»–äººé‚£é‡Œå¾—åˆ°çš„å¥½çš„è®¾è®¡é‡æ–°ç»„织起æ¥ã€‚
  Linuxå’Œfetchmailé¡¹ç›®éƒ½æ˜¾ç¤ºäº†è¿™äº›è¯æ®ï¼ŒLinus(如åŒå‰é¢æ‰€è¯´)并䏿˜¯æƒŠäººçš„原始设计者,但他显示了å‘现好的设计并把它集æˆåˆ°Linuxå†…æ ¸ä¸çš„强大决çªã€‚还有我也æè¿°äº†æ€Žæ ·ä»Žåˆ«äººé‚£é‡Œå¾—到了fetchmail䏿œ€å¼ºå¤§çš„è®¾è®¡æ€æƒ³(SMTP转å‘)。
ã€€ã€€æœ¬æ–‡çš„æ—©æœŸè¯»è€…ç§°èµžæˆ‘ï¼Œè¯´å› ä¸ºæˆ‘åšäº†è®¸å¤šå…³äºŽåŽŸå§‹è®¾è®¡çš„äº‹ï¼Œæ‰€ä»¥å€¾å‘于低估原始设计在市集项目ä¸çš„价值,也许有些是对的å§ï¼Œä½†æ˜¯è®¾è®¡(è€Œä¸æ˜¯ç¼–ç æˆ–调试)本æ¥å°±æ˜¯æˆ‘最强的能力。
  å˜å¾—èªæ˜Žå’Œè½¯ä»¶è®¾è®¡çš„åŽŸå§‹åˆ›ä½œçš„é—®é¢˜æ˜¯å®ƒä¼šå˜æˆä¸€ä¸ªä¹ 惯,当需è¦ä¿æŒäº‹ç‰©å¥å£®å’Œç®€æ´çš„æ—¶å€™ï¼Œä½ å´å¼€å§‹æŠŠäº‹æƒ…å˜å¾—漂亮但å´å¤æ‚。我曾ç»çŠ¯è¿‡é”™è¯¯ï¼Œä½¿å¾—ä¸€äº›é¡¹ç›®å› æˆ‘è€Œå´©æºƒäº†ï¼Œä½†æˆ‘åŠªåŠ›ä¸è®©å®ƒå‘生在fetchmail身上。
  所以我相信fetchmail项目的æˆåŠŸéƒ¨åˆ†æ˜¯å› ä¸ºæˆ‘æŠ‘åˆ¶è‡ªå·±ä¸è¦å˜å¾—å¤ªèªæ˜Žï¼Œè¿™è¯´æ˜Ž(至少)对市集模å¼è€Œè¨€åŽŸå§‹è®¾è®¡å¹¶ä¸æ˜¯æœ¬è´¨çš„,请考察一下Linuxå‡è®¾Linus Torvaldsåœ¨å¼€å‘æ—¶è¯•å›¾å½»åº•é©æ–°æ“ä½œç³»ç»Ÿè®¾è®¡ï¼Œå®ƒè¿˜ä¼šè±¡ä»Šå¤©æˆ‘ä»¬æ‰€æ‹¥æœ‰çš„å†…æ ¸é‚£æ ·ç¨³å®šå’ŒæˆåŠŸå—?
ã€€ã€€å½“ç„¶åŸºæœ¬çš„è®¾è®¡å’Œç¼–ç æŠ€å·§è¿˜æ˜¯å¿…éœ€çš„ï¼Œä½†æˆ‘å¸Œæœ›æ¯ä¸ªä¸¥è‚ƒè€ƒè™‘å‘起一个市集计划的人都已至少具备这些能力,自由软件社团的内部市场对人们有æŸäº›å¾®å¦™çš„压力,让他们ä¸è¦å‘起自由ä¸èƒ½æžå®šçš„å¼€å‘,目å‰ä¸ºæ¢ï¼Œè¿™å·¥ä½œå¾—ä»ç„¶ç›¸å½“好。
  对市集项目æ¥è¯´ï¼Œæˆ‘认为还有å¦ä¸€ç§é€šå¸¸ä¸Žè½¯ä»¶å¼€å‘æ— å…³çš„æŠ€èƒ½å’Œè®¾è®¡èƒ½åŠ›åŒæ ·é‡è¦â€”â€”æˆ–è€…æ›´åŠ é‡è¦ï¼Œå¸‚集项目的å调人或领导人必须有良好的人际和交æµèƒ½åŠ›ã€‚
ã€€ã€€è¿™æ˜¯å¾ˆæ˜¾ç„¶çš„ï¼Œä¸ºäº†å»ºé€ ä¸€ä¸ªå¼€å‘ç¤¾å›¢ï¼Œä½ éœ€è¦å¸å¼•äººï¼Œä½ æ‰€åšçš„东西è¦è®©ä»–们感到有趣,而且è¦ä¿æŒä»–们对他们æ£åœ¨åšçš„工作感到有趣,而且è¦ä¿æŒä»–们对他们æ£åœ¨åšçš„工作感到高兴,技术方é¢å¯¹è¾¾æˆè¿™äº›ç›®æ ‡æœ‰ä¸€å®šå¸®åŠ©ï¼Œä½†è¿™è¿œè¿œä¸æ˜¯å…¨éƒ¨ï¼Œä½ çš„ä¸ªäººç´ è´¨ä¹Ÿæœ‰å…³ç³»ã€‚
ã€€ã€€å¹¶ä¸æ˜¯è¯´Linus是一个好å°ä¼™å,让人们喜爱并ä¹äºŽå¸®åŠ©ä»–ï¼Œä¹Ÿå¹¶ä¸æ˜¯è¯´æˆ‘是个积æžå¤–å‘çš„ï¼Œå–œæ¬¢æ‰Žå †å„¿å·¥ä½œï¼Œæœ‰å‡ºä¼—çš„å¹½é»˜æ„Ÿçš„äººï¼Œå¯¹å¸‚é›†æ¨¡å¼çš„工作而言,至少有一点å¸å¼•人的技巧是éžå¸¸æœ‰å¸®åŠ©çš„ã€‚
å. 自由软件的社会å¦è¯å¢ƒ
Â Â ã€€ä¸‹è¿°å¦‚å®žï¼šæœ€å¥½çš„å¼€å‘æ˜¯ä»Žä½œè€…解决æ¯å¤©å·¥ä½œä¸çš„ä¸ªäººé—®é¢˜å¼€å§‹çš„ï¼Œå› ä¸ºå®ƒå¯¹ä¸€å¤§ç±»ç”¨æˆ·æ¥è¯´æ˜¯ä¸€ä¸ªå…¸åž‹é—®é¢˜ï¼Œæ‰€ä»¥å®ƒå°±æŽ¨å¹¿å¼€æ¥äº†ï¼Œè¿™æŠŠæˆ‘们带回到准则1,也许是用一个更有ç
”¨çš„æ–¹å¼æ¥æè¿°ï¼š
  18. è¦è§£å†³ä¸€ä¸ªæœ‰è¶£çš„问题,请从å‘çŽ°è®©ä½ æ„Ÿå…´è¶£çš„é—®é¢˜å¼€å§‹ã€‚
  这是Carl Harris和原先的popclient的情形,也是我和fetchmail的情形,但这已在很长一段时间被大家知晓了,Linuxå’Œfetchmail的历å²è¦æ±‚我们注æ„的有趣之处是下一个阶段——软件在一个庞大的活跃的用户和å作开å‘人员的社团ä¸çš„进化。
  在《神秘的人月》一书ä¸ï¼ŒFred Brooks观察到程åºå‘˜çš„工作时间是ä¸å¯æ›¿ä»£çš„:在一个误了工期的软件项目ä¸å¢žåŠ å¼€å‘人员åªä¼šè®©å®ƒæ‹–å¾—æ›´ä¹…ï¼Œä»–å£°ç§°é¡¹ç›®çš„å¤æ‚度和通讯开销以开å‘人员的平方增长,而工作æˆç»©åªæ˜¯ä»¥çº¿æ€§å¢žé•¿ï¼Œè¿™ä¸ªè¯´æ³•被称为“Brooks定律â€ï¼Œè¢«æ™®é当作真ç†ï¼Œä½†å¦‚æžœBrooks定律就是全部,那Linuxå°±ä¸å¯èƒ½æˆåŠŸã€‚
ã€€ã€€å‡ å¹´ä¹‹åŽï¼ŒGerald Weinbengçš„ç»å…¸ä¹‹ä½œâ€œThe Psychology Of Computer Progrommingâ€ä¸ºæˆ‘们更æ£äº†Brooks的看法,在他的“忘我(egoless)的编程â€ä¸ï¼ŒWeinberg观察到在开å‘人员ä¸é¡½å›ºä¿å®ˆè‡ªå·±çš„代ç ,鼓励其他人寻找错误和å‘展潜力的地方,软件的改进的速度会比其他地方有æˆå‰§æ€§çš„æé«˜ã€‚
  Weinberg的用è¯å¯é˜»æ¢äº†ä»–的分æžå¾—到应有的接å—,人们对把Internet黑客称为“忘我â€çš„æƒ³æ³•微笑,但是我想今天他的想法比以往任何时候都è¦å¼•人注目。
  Unix的历å²å·²ç»ä¸ºæˆ‘们准备好了我们æ£åœ¨ä»ŽLinuxå¦åˆ°çš„(和我在更å°è§„模上模仿Linus的方法所验è¯çš„)东西,这就是,虽然编ç 仿˜¯ä¸€ä¸ªäººå¹²çš„æ´»ï¼ŒçœŸæ£ä¼Ÿå¤§çš„工作æ¥è‡ªäºŽåˆ©ç”¨æ•´ä¸ªç¤¾å›¢çš„æ³¨æ„和脑力,在一个å°é—的项目ä¸åªåˆ©ç”¨ä»–自己的脑力的人会è½åœ¨çŸ¥é“æ€Žæ ·åˆ›å»ºä¸€ä¸ªå¼€æ”¾çš„ã€è¿›åŒ–的,æˆç™¾ä¸Šåƒçš„äººåœ¨å…¶ä¸æŸ¥æ‰¾é”™è¯¯å’Œè¿›è¡Œä¿®æ”¹çš„环境的开å‘人员之åŽã€‚
  但是Unixçš„ä¼ ç»Ÿä¸æœ‰å‡ ä¸ªå› ç´ é˜»æ¢æŠŠè¿™ç§æ–¹æ³•推到æžè‡´ã€‚一个是å„ç§æŽˆæƒçš„æ³•律约æŸã€å•†ä¸šæœºå¯†å’Œå•†ä¸šåˆ©ç›Šï¼Œå¦ä¸€ä¸ª(äº‹åŽæ¥çœ‹)是Internet还ä¸å¤Ÿå¥½ã€‚
  在Internetå˜å¾—便宜之å‰ï¼Œæœ‰ä¸€äº›åœ¨åœ°ç†ä¸Šç´§å¯†çš„社团,它们的文化鼓励Weingberg的“忘我â€ç¼–程,一个开å‘人员很容易å¸å¼•许多熟练的人和å作开å‘人员,è´å°”实验室,MIT A1实验室,UC Berkeley,都æˆä¸ºä¼ 统的ã€ä»Šå¤©ä»ç„¶æ˜¯é©æ–°çš„æºæ³‰ã€‚
  Linux是第一个有æ„识的æˆåŠŸçš„åˆ©ç”¨æ•´ä¸ªä¸–ç•Œåšä¸ºå®ƒçš„头脑库的项目,我ä¸è®¤ä¸ºLinuxçš„å•育和万维网的诞生相一致是一个巧åˆï¼Œè€Œä¸”Linux在1993-1994的一段ISP工业大å‘展和对Internet的兴趣爆炸å¼å¢žé•¿çš„æ—¶æœŸä¸æˆé•¿èµ·æ¥ï¼ŒLinus是第一个å¦ä¼šæ€Žæ ·åˆ©ç”¨Internet的新规的人。
  廉价的Internet对Linux模å¼çš„æ¼”化æ¥è¯´æ˜¯ä¸€ä¸ªå¿…è¦æ¡ä»¶ï¼Œä½†å®ƒå¹¶ä¸å……分,å¦ä¸€ä¸ªå…³é”®å› ç´ æ˜¯é¢†å¯¼é£Žæ ¼çš„å¼€å‘和一套å作的氛围使开å‘人员å¯ä»¥å¸å¼•å作开å‘人员和最大é™åº¦åœ°åˆ©ç”¨åª’体。
  但是这ç§é¢†å¯¼é£Žæ ¼ä¸Žæ°›å›´åˆ°åº•是什么呢?它ä¸èƒ½å»ºç«‹åœ¨æƒåŠ›å…³ç³»ä¹‹ä¸Šâ€”â€”ç”šè‡³å¦‚æžœå®ƒä»¬å¯ä»¥ï¼Œé«˜åŽ‹çš„é¢†å¯¼æƒåŠ›ä¸èƒ½äº§ç”Ÿæˆ‘们所看到的结果,Weinberg引用了19ä¸–çºªä¿„å›½çš„æ— æ”¿åºœä¸»ä¹‰è€…Kropotkin的“Memoris of a Revolutionistâ€æ¥è¯æ˜Žè¿™ä¸ªè§‚点:
  “我从å°ç”Ÿæ´»åœ¨ä¸€ä¸ªå†œå¥´ä¸»çš„å®¶åºä¸ï¼Œæˆ‘æœ‰ä¸€ä¸ªæ´»è·ƒçš„ç”Ÿæ´»ï¼Œè±¡æˆ‘ä»¬æ—¶ä»£çš„æ‰€æœ‰å¹´è½»äººä¸€æ ·ï¼Œæˆ‘æ·±ä¿¡å‘½ä»¤ã€å¼ºåˆ¶ã€è´£éª‚ã€æƒ©ç½šç‰ç‰çš„å¿…è¦æ€§ã€‚但是当我(在早期)必须管ç†ä¸€ä¸ªä¼ä¸šï¼Œå’Œ(自由)äººæ‰“äº¤é“æ—¶ï¼Œå½“æ¯ä¸€ä¸ªé”™è¯¯éƒ½ä¼šäº§ç”Ÿä¸¥é‡åŽæžœæ—¶ï¼Œæˆ‘开始接å—以命令和纪律为准则æ¥è¡ŒåŠ¨å’Œä»¥æ™®é€šç†è§£ä¸ºå‡†åˆ™æ¥è¡ŒåŠ¨çš„åŒºåˆ«ã€‚å‰è€…在军事阅兵ä¸å·¥ä½œçš„很好,但是它在现实生活ä¸ä¸€æ–‡ä¸å€¼ï¼Œç›®æ ‡è¾¾æˆåªæ˜¯é 许多愿望的èšåˆçš„简å•åŽæžœã€‚â€â€œè®¸å¤šèšåˆåœ¨ä¸€èµ·çš„æ„¿æœ›çš„ç›´æŽ¥åŽæžœâ€ç²¾ç¡®åœ°æŒ‡å‡ºäº†è±¡Linux的项目所需è¦çš„东西。“命令的准则â€åœ¨Internetè¿™ç§æ— æ”¿åºœä¸»ä¹‰çš„å¤©å ‚ä¸ä¸€ç¾¤è‡ªæ„¿è€…之䏿˜¯æ²¡æœ‰å¸‚场的,为了更有效的æ“作和竞争,想领导å作项目的黑客们必须å¦ä¼šæ€Žæ ·ä»¥Kropotkinså«ç³ŠæŒ‡å‡ºçš„“ç†è§£çš„å‡†åˆ™â€æ¨¡å¼æ¥æ¢å¤å’Œæ¿€æ´»ç¤¾å›¢çš„力é‡ï¼Œä»–们必须å¦ä¼šä½¿ç”¨Linus定律。
  å‰é¢æˆ‘引用“Delhpiæ•ˆåº”â€æ¥ä½œä¸ºLinus定律的一个å¯èƒ½çš„解释,但是æ¥è‡ªç”Ÿç‰©å¦å’Œç»å¸¸å¦çš„自适应系统的更强大的分æžä¹Ÿæå‡ºäº†è‡ªå·±çš„解释,Linus世界的行为更象一个自由市场或生æ€ç³»ç»Ÿï¼Œç”±ä¸€å¤§ç¾¤è‡ªç§çš„个体组æˆï¼Œå®ƒä»¬è¯•图å–å¾—(自己)最大的实效,在这个过程ä¸äº§ç”Ÿäº†æ¯”任何一ç§ä¸å¤®è®¡åˆ’都细致和高效的自å‘的改进的结果,所以,这里就是寻找“ç†è§£çš„准则â€çš„地方。
  Linux黑客å–得的最大化的“实际利益â€ä¸æ˜¯ç»å…¸çš„ç»æµŽåˆ©ç›Šï¼Œè€Œæ˜¯æ— 形的他们的自我满足和在其他黑客ä¸çš„声望,(有人会说他们的动机是“利他的â€ï¼Œä½†è¿™å¿½ç•¥äº†è¿™æ ·çš„事实:利他主义本身是利他主义者的一ç§è‡ªæˆ‘满足的形å¼)ï¼Œè‡ªæ„¿çš„æ–‡åŒ–ä»¥è¿™ç§æ–¹å¼å·¥ä½œçš„实际上并éžä¸å¯»å¸¸ï¼Œæˆ‘å·²å‚与一个科幻迷团体很长时间了,它ä¸è±¡é»‘å®¢å›¢ä½“ä¸€æ ·ï¼Œæ˜¾å¼åœ°è¯†åˆ«å‡ºâ€œegobooâ€(一个人在其他爱好者之ä¸çš„声望的增长)作为自愿者活动背åŽçš„基础驱动力)。
  LinusæˆåŠŸåœ°æŠŠè‡ªå·±ç½®äºŽé¡¹ç›®çš„å®ˆé—¨äººçš„ä½ç½®ï¼Œåœ¨é¡¹ç›®ä¸å¼€å‘大部分是别人åšçš„ï¼Œä»–åªæ˜¯åœ¨é¡¹ç›®ä¸åŸ¹å…»å…´è¶£ç›´åˆ°å®ƒå¯ä»¥è‡ªå·±å‘展下去,这为我们展示了对Kropokin的“共åŒç†è§£åŽŸåˆ™â€çš„æ•é”æŠŠæ¡ï¼Œå¯¹Linuxè¿™ç§ç±»ä¼¼ç»æµŽå¦çš„观点让我们看到这ç§ç†è§£æ˜¯æ€Žæ ·åº”用的。
  我们å¯ä»¥æŠŠLinus的方法视为创建一个高效的关于“egobooâ€(è€Œä¸æ˜¯é’±)çš„å¸‚åœºï¼Œæ¥æŠŠè‡ªç§çš„黑客个体尽å¯èƒ½ç´§å¯†çš„è”系起æ¥ï¼Œè¾¾æˆåªèƒ½é€šè¿‡é«˜åº¦å作æ‰èƒ½å¾—到的困难的结果,在fetchmailé¡¹ç›®ä¸æˆ‘展示了(在较å°è§„模上)è¿™ç§æ¨¡å¼å¯ä»¥å¤åˆ¶ï¼Œå¾—到良好的结果,也许我比他更有æ„è¯†ä¸€ç‚¹ã€æ›´åŠ ç³»ç»Ÿä¸€ç‚¹ã€‚
  许多人(å°¤å…¶æ˜¯å“ªäº›ç”±äºŽæ”¿æ²»åŽŸå› ä¸ä¿¡ä»»è‡ªç”±å¸‚场的人)会盼望自我导å‘çš„è‡ªæˆ‘ä¸»ä¹‰è€…çš„æ–‡åŒ–ç ´ç¢Žã€æŠ¥åºŸã€ç§˜å¯†å’Œæ•Œå¯¹ï¼Œä½†è¿™ç§ç›¼æœ›å¾ˆæ˜Žæ˜¾åœ°è¢«Linuxçš„æ–‡æ¡£çš„å¤šæ ·æ€§ã€è´¨é‡å’Œæ·±åº¦æ‰“ç ´äº†ï¼Œç¨‹åºå‘˜è®¨åŽŒå†™æ–‡æ¡£ä¼¼ä¹Žå·²æ˜¯åœ£è®ï¼Œä½†Linux的黑客们怎么产生了这么多?显然Linuxçš„egoboo自由市场比有大é‡èµ„金的商业软件产å“的文档部在产生有å“å¾·çš„ã€ä»–人导å‘的行为方é¢å·¥ä½œçš„æ›´å¥½ã€‚
  Fetchmailå’ŒLinuxå†…æ ¸é¡¹ç›®éƒ½è¡¨æ˜Žï¼Œé€šè¿‡æ°å½“的表彰许多其他黑客,一个强大的开å‘者ï¼å调者å¯ä»¥ç”¨Internet得到许多ååŒå¼€å‘äººå‘˜è€Œä¸æ˜¯è®©é¡¹ç›®åˆ†å´©ç¦»æžä¸ºä¸€ç‰‡æ··ä¹±ï¼Œæ‰€ä»¥å…³äºŽBrooks定律我得到了下é¢çš„æƒ³æ³•:
  19. 如果开å‘å调人员有至少和Internetä¸€æ ·å¥½çš„åª’ä»‹ï¼Œè€Œä¸”çŸ¥é“æ€Žæ ·ä¸é€šè¿‡å¼ºè¿«æ¥é¢†å¯¼ï¼Œè®¸å¤šå¤´è„‘å°†ä¸å¯é¿å…地比一个好。
  我认为自由软件的将æ¥å°†å±žäºŽé‚£äº›çŸ¥é“æ€Žæ ·çŽ©Linus的游æˆçš„äººï¼ŒæŠŠå¤§æ•™å ‚æŠ›ä¹‹è„‘åŽæ‹¥æŠ±å¸‚é›†çš„äººï¼Œè¿™å¹¶ä¸æ˜¯è¯´ä¸ªäººçš„è§‚ç‚¹ä¸Žæ‰æ°”ä¸å†é‡è¦ï¼Œè€Œæ˜¯ï¼Œæˆ‘è®¤ä¸ºè‡ªç”±è½¯ä»¶çš„å‰æ²¿å°†å±žäºŽä»Žä¸ªäººè§‚ç‚¹å’Œæ‰æ°”出å‘的人,然åŽé€šè¿‡å…±åŒå…´è¶£è‡ªæ„¿ç¤¾å›¢çš„é«˜æ•ˆå»ºé€ æ¥æ‰©å±•。
  å¯èƒ½ä¸åªæ˜¯è‡ªç”±è½¯ä»¶çš„å°†æ¥ï¼Œåœ¨è§£å†³é—®é¢˜æ–¹é¢ï¼Œæ²¡æœ‰ä»»ä½•商业性开å‘者å¯ä»¥ä¸ŽLinux社团的头脑库相匹敌,很少有人能负担起雇佣200多个为fetchmail出过力的人!
ã€€ã€€ä¹Ÿè®¸æœ€ç»ˆè‡ªç”±è½¯ä»¶æ–‡åŒ–å°†èƒœåˆ©ï¼Œä¸æ˜¯å› 为å作在é“德上是æ£ç¡®çš„æˆ–软件“囤积居奇â€åœ¨é“德上是错的(å‡è®¾ä½ 相信åŽè€…,Linus和我都ä¸)ï¼Œè€Œä»…ä»…æ˜¯å› ä¸ºå•†ä¸šä¸–ç•Œåœ¨è¿›åŒ–çš„å†›å¤‡ç«žèµ›ä¸ä¸èƒ½æˆ˜èƒœè‡ªç”±è½¯ä»¶ç¤¾å›¢ï¼Œå› 为åŽè€…å¯ä»¥æŠŠæ›´å
¤§æ›´å¥½çš„å¼€å‘èµ„æºæ”¾åœ¨è§£å†³é—®é¢˜ä¸Šã€‚
**** 网å‹å†™ç»™ä½œè€…的感想: ****
ä½ å¥½ï¼ŒEric:
æˆ‘åˆšè¯»äº†ä½ çš„å¤§æ•™å ‚ï¼å¸‚é›†çš„æ–‡ç« ï¼Œå› ä¸ºä½ çš„ä¸»é¡µæŒ‡å‡ºä½ è¿˜è¦ç»§ç»å…³äºŽè¿™ä¸ªé—®é¢˜çš„æ€è€ƒï¼Œæˆ‘æä¾›ä¸€äº›ä¸ªäººçš„观察。
首先介ç»ä¸€äº›èƒŒæ™¯ï¼šå½“1990年出现BSD Netï¼2的时候,Brad Grantham和我把它移æ¤åˆ°äº†Macâ…¡å¹³å°ä¸Šï¼Œå®ƒåœ¨å‡ 个月之åŽä»¥Mac BSDå‘布(å½“ç„¶æ˜¯ä»¥å¸‚é›†é£Žæ ¼)ï¼ŒåŽæ¥æˆä¸ºNet BSDï¼Mac。
我作为一个市集å调人å¦åˆ°äº†ä¸€äº›ä¸œè¥¿ï¼š
1. 人们很快地自愿æä¾›å¸®åŠ©ï¼Œä½†æ˜¯å¸¸å¸¸å¾ˆæ…¢ï¼Œæˆ‘ä»¬æ”¶åˆ°ä¸Šç™¾å°ä¿¡è¯´ï¼šâ€œæˆ‘很想帮助,请告诉我需è¦ä»€ä¹ˆ?†这些人没æä¾›ä»€ä¹ˆå¸®åŠ©ï¼Œä¸ç®¡ä»–们有多么积æžï¼ŒçœŸæ£æœ‰å¸®åŠ©çš„äººé‚£äº›ç»™æˆ‘ä»¬çš„ç¬¬ä¸€å°ä¿¡ä¾¿è¯´ï¼šâ€œå˜¿ï¼Œæˆ‘修改了这个,这儿有一个补ä¸ã€‚â€æœ€åŽæˆ‘们忽略了所有第一ç§ç±»åž‹çš„邮件(åªæ˜¯æŠŠä»–们引å‘工作列表),培养与第二ç§äººçš„å…³ç³»ï¼Œè¿™ç§æƒ…况所有å调人都应知é“,æ¥å…‹æœçœ‹åˆ°è¿™ä¹ˆå¤šâ€œå¿—æ„¿è€…â€æ—¶çš„盲目高兴。
(注æ„ï¼šä»–ä»¬çš„åŠ¨æœºæ˜¯å¥½çš„ï¼Œä»–ä»¬åªæ˜¯æ²¡æœ‰è®¤è¯†åˆ°ä»–们æ£åœ¨å¿—æ„¿åšä»€ä¹ˆ)。
2. ä½ å·²ç»æåˆ°äº†è¿™ä¸€ç‚¹ï¼Œä½†æˆ‘è®¤ä¸ºå®ƒæ˜¯æžç«¯é‡è¦çš„ï¼šç”šè‡³åœ¨ä½ å®£å¸ƒäº§å“以å‰ä½ 必须有一个å¯å·¥ä½œçš„系统:例如,我们一直ç‰åˆ°æœ‰äº†ä¸€ä¸ªå¯å¼•å¯¼çš„å†…æ ¸å’Œä¸€ä¸ªå•ç”¨æˆ·æ ¹shellä¹‹åŽæ‰æŠŠå®ƒè´´åˆ°Usenet,曾有过(æ®æˆ‘所知)四个ä¸åŒçš„Mac Linux项目,æ¯ä¸€ä¸ªéƒ½åœ¨Linuxæ–°é—»ç»„ä¸æœ‰ä¸€å¤§æ‰¹æ‹¥æŠ¤è€…,都创建了邮件列表,æ¯ä¸ªäººéƒ½å¾ˆçƒæƒ…,写了FAQ,还有许多诸如MacOSçš„å›¾æ ‡åº”æ˜¯ä»€ä¹ˆæ ·çš„è®¨è®ºã€‚æ‰€æœ‰è¿™äº›é¡¹ç›®æ²¡æœ‰å‘å¸ƒä¸€è¡Œä»£ç æˆ–è€…ä¸€ä¸ªå†…æ ¸ã€æˆ‘挑选了MkLinux(Appleå¼€å‘çš„)作为一个å¯å·¥ä½œçš„Mac版Linux(在一个项目ä¸ï¼ŒMacLinuxå‡è®¾è¿è½¬åœ¨68K Macä¸Šï¼Œè€Œé‚®ä»¶åˆ—è¡¨ä¸æ‰€æœ‰çš„è®¨è®ºéƒ½æ˜¯å…³äºŽæ€Žæ ·æŠŠå®ƒç§»æ¤åˆ°Power Mac上。68K版本甚至ä¸èƒ½è¿œç¨‹å·¥ä½œ!),这些项目å¸å¼•了上述的第一ç§â€œå¸®åŠ©è€…â€ï¼Œçƒæƒ…é«˜æ¶¨ä½†æ˜¯å®žé™…ä¸Šå´æ²¡åšä»€ä¹ˆäº‹ï¼Œæ€æŽ‰ä¸€ä¸ªé¡¹ç›®æœ€å¿«çš„æ–¹æ³•æ˜¯åœ¨ä½ ä»€ä¹ˆéƒ½è¿˜æ²¡æœ‰ä¹‹å‰å°±å®£å¸ƒå®ƒï¼Œæˆ‘å·²ç»è§çš„太多了,尤其是在
Linux世界里。
我知é“这两点看起æ¥ç›¸å½“悲观,但我知é“当我们想到“啊,我们åšäº†è¿™ä¹ˆå¤šäº‹äº†ï¼Œè‚¯å®šæžå®šäº†ä¸å°‘问题了å§ï¼â€çš„æ—¶å€™ï¼Œæˆ‘ä»¬å¤ªå®¹æ˜“å¤±åŽ»ç†æ™ºã€‚而那实际上åªä¸è¿‡æ˜¯ä¸€äº›å–„良的动机罢了(è°è¯´è¿‡ï¼šâ€œä¸è¦æŠŠåŠ¨æœºå’Œè¡ŒåŠ¨æ··æ·†åœ¨ä¸€èµ·?†本·弗兰克林?)å调人需è¦è§£æ•£æ‰€æœ‰é‚£äº›è¯¸å¦‚å›¾æ ‡åº”è¯¥æ˜¯ä»€ä¹ˆæ ·çš„ã€FAQ用HTMLæ ¼å¼è¿˜æ˜¯SGML模å¼çš„çƒæƒ…讨论,而把注æ„力放在å–得产å“的一个å¯å·¥ä½œçš„版本,一旦得到了,人们就真æ£å¼€å§‹å¸®åŠ©äº†ã€‚
(从æ£é¢æ¥çœ‹ï¼ŒMacBSDæžå¤§åœ°å¾—益于从它的开å‘é£Žæ ¼ï¼Œæˆ‘ä»¬å¾—åˆ°äº†ä»£ç ã€è®¾å¤‡é©±åŠ¨ç¨‹åºã€é’±å’Œä¸€äº›æèµ 和借到的测试和开å‘的硬件设备)。
æˆ‘æœŸæœ›çœ‹åˆ°å¯¹æˆ‘ä¸Šè¿°è§‚ç‚¹çš„ä»»ä½•è¯„è®ºå’Œä½ å…³äºŽè¿™ä¸ªä¸»é¢˜å†™çš„ä»»ä½•ä¸œè¥¿ã€‚
Lawrrance