From 29a68ee73ec6a5510cbf9d803cbf6190b615e276 Mon Sep 17 00:00:00 2001 From: TripleX <zhongyu@18mail.cn> Date: Fri, 22 Jun 2007 01:20:36 +0800 Subject: [PATCH] Chinese translation of Documentation/stable_api_nonsense.txt This is a Chinese translated version of Documentation/stable_api_nonsense.txt. From: TripleX <zhongyu@18mail.cn> Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com> Signed-off-by: Li Yang <leoli@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- Documentation/zh_CN/stable_api_nonsense.txt | 157 ++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 Documentation/zh_CN/stable_api_nonsense.txt diff --git a/Documentation/zh_CN/stable_api_nonsense.txt b/Documentation/zh_CN/stable_api_nonsense.txt new file mode 100644 index 0000000000000..c26a27d1ee7de --- /dev/null +++ b/Documentation/zh_CN/stable_api_nonsense.txt @@ -0,0 +1,157 @@ +Chinese translated version of Documentation/stable_api_nonsense.txt + +If you have any comment or update to the content, please contact the +original document maintainer directly. However, if you have problem +communicating in English you can also ask the Chinese maintainer for help. +Contact the Chinese maintainer, if this translation is outdated or there +is problem with translation. + +Maintainer: Greg Kroah-Hartman <greg@kroah.com> +Chinese maintainer: TripleX Chung <zhongyu@18mail.cn> +--------------------------------------------------------------------- +Documentation/stable_api_nonsense.txt çš„ä¸æ–‡ç¿»è¯‘ + +如果想评论或更新本文的内容,请直接è”ç³»åŽŸæ–‡æ¡£çš„ç»´æŠ¤è€…ã€‚å¦‚æžœä½ ä½¿ç”¨è‹±æ–‡ +交æµæœ‰å›°éš¾çš„è¯ï¼Œä¹Ÿå¯ä»¥å‘ä¸æ–‡ç‰ˆç»´æŠ¤è€…求助。如果本翻译更新ä¸åŠæ—¶æˆ–者翻 +译å˜åœ¨é—®é¢˜ï¼Œè¯·è”ç³»ä¸æ–‡ç‰ˆç»´æŠ¤è€…。 + +英文版维护者: Greg Kroah-Hartman <greg@kroah.com> +ä¸æ–‡ç‰ˆç»´æŠ¤è€…: 钟宇 TripleX Chung <zhongyu@18mail.cn> +ä¸æ–‡ç‰ˆç¿»è¯‘者: 钟宇 TripleX Chung <zhongyu@18mail.cn> +ä¸æ–‡ç‰ˆæ ¡è¯‘者: æŽé˜³ Li Yang <leoli@freescale.com> +以下为æ£æ–‡ +--------------------------------------------------------------------- + +写作本文档的目的,是为了解释为什么Linuxæ—¢æ²¡æœ‰äºŒè¿›åˆ¶å†…æ ¸æŽ¥å£ï¼Œä¹Ÿæ²¡æœ‰ç¨³å®š +çš„å†…æ ¸æŽ¥å£ã€‚è¿™é‡Œæ‰€è¯´çš„å†…æ ¸æŽ¥å£ï¼Œæ˜¯æŒ‡å†…æ ¸é‡Œçš„æŽ¥å£ï¼Œè€Œä¸æ˜¯å†…æ ¸å’Œç”¨æˆ·ç©ºé—´ +的接å£ã€‚å†…æ ¸åˆ°ç”¨æˆ·ç©ºé—´çš„æŽ¥å£ï¼Œæ˜¯æ供给应用程åºä½¿ç”¨çš„系统调用,系统调用 +在历å²ä¸Šå‡ 乎没有过å˜åŒ–,将æ¥ä¹Ÿä¸ä¼šæœ‰å˜åŒ–。我有一些è€åº”用程åºæ˜¯åœ¨0.9版本 +æˆ–è€…æ›´æ—©ç‰ˆæœ¬çš„å†…æ ¸ä¸Šç¼–è¯‘çš„ï¼Œåœ¨ä½¿ç”¨2.6ç‰ˆæœ¬å†…æ ¸çš„Linuxå‘布上ä¾ç„¶ç”¨å¾—很好 +。用户和应用程åºä½œè€…å¯ä»¥å°†è¿™ä¸ªæŽ¥å£çœ‹æˆæ˜¯ç¨³å®šçš„。 + + +æ‰§è¡Œçº²è¦ +-------- + +ä½ ä¹Ÿè®¸ä»¥ä¸ºè‡ªå·±æƒ³è¦ç¨³å®šçš„å†…æ ¸æŽ¥å£ï¼Œä½†æ˜¯ä½ ä¸æ¸…æ¥šä½ è¦çš„实际上ä¸æ˜¯å®ƒã€‚ä½ éœ€ +è¦çš„其实是稳定的驱动程åºï¼Œè€Œä½ åªæœ‰å°†é©±åŠ¨ç¨‹åºæ”¾åˆ°å…¬ç‰ˆå†…æ ¸çš„æºä»£ç æ ‘é‡Œï¼Œ +æ‰æœ‰å¯èƒ½è¾¾åˆ°è¿™ä¸ªç›®çš„ã€‚è€Œä¸”è¿™æ ·åšè¿˜æœ‰å¾ˆå¤šå…¶å®ƒå¥½å¤„,æ£æ˜¯å› 为这些好处使得 +Linux能æˆä¸ºå¼ºå£®ï¼Œç¨³å®šï¼Œæˆç†Ÿçš„æ“ä½œç³»ç»Ÿï¼Œè¿™ä¹Ÿæ˜¯ä½ æœ€å¼€å§‹é€‰æ‹©Linuxçš„åŽŸå› ã€‚ + + +入门 +----- + +åªæœ‰é‚£äº›å†™é©±åŠ¨ç¨‹åºçš„“怪人â€æ‰ä¼šæ‹…å¿ƒå†…æ ¸æŽ¥å£çš„改å˜ï¼Œå¯¹å¹¿å¤§ç”¨æˆ·æ¥è¯´ï¼Œæ—¢ +看ä¸åˆ°å†…æ ¸æŽ¥å£ï¼Œä¹Ÿä¸éœ€è¦åŽ»å…³å¿ƒå®ƒã€‚ + +首先,我ä¸æ‰“算讨论关于任何éžGPL许å¯çš„å†…æ ¸é©±åŠ¨çš„æ³•å¾‹é—®é¢˜ï¼Œè¿™äº›éžGPLè®¸å¯ +的驱动程åºåŒ…括ä¸å…¬å¼€æºä»£ç ,éšè—æºä»£ç ,二进制或者是用æºä»£ç 包装,或者 +是其它任何形å¼çš„ä¸èƒ½ä»¥GPL许å¯å…¬å¼€æºä»£ç 的驱动程åºã€‚如果有法律问题,请咨 +询律师,我åªæ˜¯ä¸€ä¸ªç¨‹åºå‘˜ï¼Œæ‰€ä»¥æˆ‘åªæ‰“算探讨技术问题(ä¸æ˜¯å°çœ‹æ³•å¾‹é—®é¢˜ï¼Œ +法律问题很实际,并且需è¦ä¸€ç›´å…³æ³¨ï¼‰ã€‚ + +既然åªè°ˆæŠ€æœ¯é—®é¢˜ï¼Œæˆ‘们就有了下é¢ä¸¤ä¸ªä¸»é¢˜ï¼šäºŒè¿›åˆ¶å†…æ ¸æŽ¥å£å’Œç¨³å®šçš„å†…æ ¸æº +代ç 接å£ã€‚这两个问题是互相关è”的,让我们先解决掉二进制接å£çš„问题。 + + +äºŒè¿›åˆ¶å†…æ ¸æŽ¥å£ +-------------- +å‡å¦‚æˆ‘ä»¬æœ‰ä¸€ä¸ªç¨³å®šçš„å†…æ ¸æºä»£ç 接å£ï¼Œé‚£ä¹ˆè‡ªç„¶è€Œç„¶çš„,我们就拥有了稳定的 +二进制接å£ï¼Œæ˜¯è¿™æ ·çš„å—?错。让我们看看关于Linuxå†…æ ¸çš„å‡ ç‚¹äº‹å®žï¼š + - å–决于所用的C编译器的版本,ä¸åŒçš„å†…æ ¸æ•°æ®ç»“构里的结构体的对é½æ–¹ +å¼ä¼šæœ‰å·®åˆ«ï¼Œä»£ç ä¸ä¸åŒå‡½æ•°çš„表现形å¼ä¹Ÿä¸ä¸€æ ·ï¼ˆå‡½æ•°æ˜¯ä¸æ˜¯è¢«inlineç¼–è¯‘å– +决于编译器行为)。ä¸åŒçš„函数的表现形å¼å¹¶ä¸é‡è¦ï¼Œä½†æ˜¯æ•°æ®ç»“æž„å†…éƒ¨çš„å¯¹é½ +æ–¹å¼å¾ˆå…³é”®ã€‚ + - å–å†³äºŽå†…æ ¸çš„é…置选项,ä¸åŒçš„é€‰é¡¹ä¼šè®©å†…æ ¸çš„å¾ˆå¤šä¸œè¥¿å‘生改å˜ï¼š + - åŒä¸€ä¸ªç»“构体å¯èƒ½åŒ…å«ä¸åŒçš„æˆå‘˜å˜é‡ + - 有的函数å¯èƒ½æ ¹æœ¬ä¸ä¼šè¢«å®žçŽ°ï¼ˆæ¯”如编译的时候没有选择SMPæ”¯æŒ +,一些é”函数就会被定义æˆç©ºå‡½æ•°ï¼‰ã€‚ + - å†…æ ¸ä½¿ç”¨çš„å†…å˜ä¼šä»¥ä¸åŒçš„æ–¹å¼å¯¹é½ï¼Œè¿™å–决于ä¸åŒçš„å†…æ ¸é…置选 +项。 + - Linuxå¯ä»¥åœ¨å¾ˆå¤šçš„ä¸åŒä½“系结构的处ç†å™¨ä¸Šè¿è¡Œã€‚在æŸä¸ªä½“系结构上编 +译好的二进制驱动程åºï¼Œä¸å¯èƒ½åœ¨å¦å¤–一个体系结构上æ£ç¡®çš„è¿è¡Œã€‚ + +å¯¹äºŽä¸€ä¸ªç‰¹å®šçš„å†…æ ¸ï¼Œæ»¡è¶³è¿™äº›æ¡ä»¶å¹¶ä¸éš¾ï¼Œä½¿ç”¨åŒä¸€ä¸ªC编译器和åŒæ ·çš„å†…æ ¸é… +置选项æ¥ç¼–译驱动程åºæ¨¡å—å°±å¯ä»¥äº†ã€‚这对于给一个特定Linuxå‘布的特定版本æ +供驱动程åºï¼Œæ˜¯å®Œå…¨å¯ä»¥æ»¡è¶³éœ€æ±‚çš„ã€‚ä½†æ˜¯å¦‚æžœä½ è¦ç»™ä¸åŒå‘布的ä¸åŒç‰ˆæœ¬éƒ½å‘ +布一个驱动程åºï¼Œå°±éœ€è¦åœ¨æ¯ä¸ªå‘布上用ä¸åŒçš„å†…æ ¸è®¾ç½®å‚æ•°éƒ½ç¼–è¯‘ä¸€æ¬¡å†…æ ¸ï¼Œ +è¿™ç®€ç›´è·Ÿå™©æ¢¦ä¸€æ ·ã€‚è€Œä¸”è¿˜è¦æ³¨æ„到,æ¯ä¸ªLinuxå‘布还æä¾›ä¸åŒçš„Linuxå†…æ ¸ï¼Œ +è¿™äº›å†…æ ¸éƒ½é’ˆå¯¹ä¸åŒçš„硬件类型进行了优化(有很多ç§ä¸åŒçš„处ç†å™¨ï¼Œè¿˜æœ‰ä¸åŒ +çš„å†…æ ¸è®¾ç½®é€‰é¡¹ï¼‰ã€‚æ‰€ä»¥æ¯å‘布一次驱动程åºï¼Œéƒ½éœ€è¦æ供很多ä¸åŒç‰ˆæœ¬çš„å†…æ ¸ +模å—。 + +ç›¸ä¿¡æˆ‘ï¼Œå¦‚æžœä½ çœŸçš„è¦é‡‡å–è¿™ç§å‘布方å¼ï¼Œä¸€å®šä¼šæ…¢æ…¢ç–¯æŽ‰ï¼Œæˆ‘很久以å‰å°±æœ‰è¿‡ +深刻的教è®... + + +ç¨³å®šçš„å†…æ ¸æºä»£ç æŽ¥å£ +-------------------- + +如果有人ä¸å°†ä»–çš„å†…æ ¸é©±åŠ¨ç¨‹åºï¼Œæ”¾å…¥å…¬ç‰ˆå†…æ ¸çš„æºä»£ç æ ‘ï¼Œè€Œåˆæƒ³è®©é©±åŠ¨ç¨‹åº +一直ä¿æŒåœ¨æœ€æ–°çš„å†…æ ¸ä¸å¯ç”¨ï¼Œé‚£ä¹ˆè¿™ä¸ªè¯é¢˜å°†ä¼šå˜å¾—没完没了。 + å†…æ ¸å¼€å‘是æŒç»è€Œä¸”快节å¥çš„,从æ¥éƒ½ä¸ä¼šæ…¢ä¸‹æ¥ã€‚å†…æ ¸å¼€å‘人员在当å‰æŽ¥å£ä¸ +找到bug,或者找到更好的实现方å¼ã€‚一旦å‘现这些,他们就很快会去修改当å‰çš„ +接å£ã€‚修改接å£æ„味ç€ï¼Œå‡½æ•°åå¯èƒ½ä¼šæ”¹å˜ï¼Œç»“构体å¯èƒ½è¢«æ‰©å……æˆ–è€…åˆ å‡ï¼Œå‡½æ•° +çš„å‚数也å¯èƒ½å‘生改å˜ã€‚一旦接å£è¢«ä¿®æ”¹ï¼Œå†…æ ¸ä¸ä½¿ç”¨è¿™äº›æŽ¥å£çš„地方需è¦åŒæ—¶ +ä¿®æ£ï¼Œè¿™æ ·æ‰èƒ½ä¿è¯æ‰€æœ‰çš„东西继ç»å·¥ä½œã€‚ + +举一个例åï¼Œå†…æ ¸çš„USB驱动程åºæŽ¥å£åœ¨USBå系统的整个生命周期ä¸ï¼Œè‡³å°‘ç»åŽ† +了三次é‡å†™ã€‚这些é‡å†™è§£å†³ä»¥ä¸‹é—®é¢˜ï¼š + - 把数æ®æµä»ŽåŒæ¥æ¨¡å¼æ”¹æˆéžåŒæ¥æ¨¡å¼ï¼Œè¿™ä¸ªæ”¹åŠ¨å‡å°‘了一些驱动程åºçš„ +å¤æ‚度,æ高了所有USB驱动程åºçš„åžåçŽ‡ï¼Œè¿™æ ·å‡ ä¹Žæ‰€æœ‰çš„USB设备都能以最大 +速率工作了。 + - 修改了USBæ ¸å¿ƒä»£ç ä¸ä¸ºUSB驱动分é…æ•°æ®åŒ…内å˜çš„æ–¹å¼ï¼Œæ‰€æœ‰çš„驱动都 +需è¦æ供更多的å‚æ•°ç»™USBæ ¸å¿ƒï¼Œä»¥ä¿®æ£äº†å¾ˆå¤šå·²ç»è¢«è®°å½•åœ¨æ¡ˆçš„æ»é”。 + +这和一些å°é—æºä»£ç çš„æ“作系统形æˆé²œæ˜Žçš„对比,在那些æ“作系统上,ä¸å¾—ä¸é¢ +外的维护旧的USB接å£ã€‚这导致了一个å¯èƒ½æ€§ï¼Œæ–°çš„å¼€å‘者ä¾ç„¶ä¼šä¸å°å¿ƒä½¿ç”¨æ—§çš„ +接å£ï¼Œä»¥ä¸æ°å½“çš„æ–¹å¼ç¼–写代ç ,进而影å“到æ“作系统的稳定性。 + 在上é¢çš„例åä¸ï¼Œæ‰€æœ‰çš„å¼€å‘者都åŒæ„这些é‡è¦çš„æ”¹åŠ¨ï¼Œåœ¨è¿™æ ·çš„æƒ…å†µä¸‹ä¿®æ”¹ä»£ +价很低。如果Linuxä¿æŒä¸€ä¸ªç¨³å®šçš„å†…æ ¸æºä»£ç 接å£ï¼Œé‚£ä¹ˆå°±å¾—åˆ›å»ºä¸€ä¸ªæ–°çš„æŽ¥å£ +;旧的,有问题的接å£å¿…须一直维护,给Linux USBå¼€å‘者带æ¥é¢å¤–的工作。既然 +所有的Linux USB驱动的作者都是利用自己的时间工作,那么è¦æ±‚他们去åšæ¯«æ— æ„ +义的å…è´¹é¢å¤–工作,是ä¸å¯èƒ½çš„。 + 安全问题对Linuxæ¥è¯´å分é‡è¦ã€‚一个安全问题被å‘现,就会在çŸæ—¶é—´å†…得到修 +æ£ã€‚在很多情况下,这将导致Linuxå†…æ ¸ä¸çš„一些接å£è¢«é‡å†™ï¼Œä»¥ä»Žæ ¹æœ¬ä¸Šé¿å…安 +全问题。一旦接å£è¢«é‡å†™ï¼Œæ‰€æœ‰ä½¿ç”¨è¿™äº›æŽ¥å£çš„驱动程åºï¼Œå¿…é¡»åŒæ—¶å¾—到修æ£ï¼Œ +以确定安全问题已ç»å¾—到修å¤å¹¶ä¸”ä¸å¯èƒ½åœ¨æœªæ¥è¿˜æœ‰åŒæ ·çš„å®‰å…¨é—®é¢˜ã€‚å¦‚æžœå†…æ ¸ +内部接å£ä¸å…许改å˜ï¼Œé‚£ä¹ˆå°±ä¸å¯èƒ½ä¿®å¤è¿™æ ·çš„安全问题,也ä¸å¯èƒ½ç¡®è®¤è¿™æ ·çš„ +安全问题以åŽä¸ä¼šå‘生。 +å¼€å‘者一直在清ç†å†…æ ¸æŽ¥å£ã€‚如果一个接å£æ²¡æœ‰äººåœ¨ä½¿ç”¨äº†ï¼Œå®ƒå°±ä¼šè¢«åˆ 除。这 +æ ·å¯ä»¥ç¡®ä¿å†…æ ¸å°½å¯èƒ½çš„å°ï¼Œè€Œä¸”所有潜在的接å£éƒ½ä¼šå¾—到尽å¯èƒ½å®Œæ•´çš„测试 +(没有人使用的接å£æ˜¯ä¸å¯èƒ½å¾—到良好的测试的)。 + + +è¦åšä»€ä¹ˆ +------- + +å¦‚æžœä½ å†™äº†ä¸€ä¸ªLinuxå†…æ ¸é©±åŠ¨ï¼Œä½†æ˜¯å®ƒè¿˜ä¸åœ¨Linuxæºä»£ç æ ‘é‡Œï¼Œä½œä¸ºä¸€ä¸ªå¼€å‘ +è€…ï¼Œä½ åº”è¯¥æ€Žä¹ˆåšï¼Ÿä¸ºæ¯ä¸ªå‘布的æ¯ä¸ªç‰ˆæœ¬æ供一个二进制驱动,那简直是一个 +噩梦,è¦è·Ÿä¸Šæ°¸è¿œå¤„于å˜åŒ–之ä¸çš„å†…æ ¸æŽ¥å£ï¼Œä¹Ÿæ˜¯ä¸€ä»¶è¾›è‹¦æ´»ã€‚ +很简å•ï¼Œè®©ä½ çš„é©±åŠ¨è¿›å…¥å†…æ ¸æºä»£ç æ ‘ï¼ˆè¦è®°å¾—我们在谈论的是以GPL许å¯å‘è¡Œ +çš„é©±åŠ¨ï¼Œå¦‚æžœä½ çš„ä»£ç ä¸ç¬¦åˆGPL,那么ç¥ä½ 好è¿ï¼Œä½ åªèƒ½è‡ªå·±è§£å†³è¿™ä¸ªé—®é¢˜äº†ï¼Œ +ä½ è¿™ä¸ªå¸è¡€é¬¼<把Andrewå’ŒLinus对å¸è¡€é¬¼çš„定义链接到这里>ï¼‰ã€‚å½“ä½ çš„ä»£ç åŠ å…¥ +å…¬ç‰ˆå†…æ ¸æºä»£ç æ ‘ä¹‹åŽï¼Œå¦‚æžœä¸€ä¸ªå†…æ ¸æŽ¥å£æ”¹å˜ï¼Œä½ 的驱动会直接被修改接å£çš„ +那个人修改。ä¿è¯ä½ 的驱动永远都å¯ä»¥ç¼–è¯‘é€šè¿‡ï¼Œå¹¶ä¸”ä¸€ç›´å·¥ä½œï¼Œä½ å‡ ä¹Žä¸éœ€è¦ +åšä»€ä¹ˆäº‹æƒ…。 + +æŠŠé©±åŠ¨æ”¾åˆ°å†…æ ¸æºä»£ç æ ‘é‡Œä¼šæœ‰å¾ˆå¤šçš„å¥½å¤„ï¼š + - 驱动的质é‡ä¼šæå‡ï¼Œè€Œç»´æŠ¤æˆæœ¬ï¼ˆå¯¹åŽŸå§‹ä½œè€…æ¥è¯´ï¼‰ä¼šä¸‹é™ã€‚ + - å…¶ä»–äººä¼šç»™é©±åŠ¨æ·»åŠ æ–°ç‰¹æ€§ã€‚ + - 其他人会找到驱动ä¸çš„bug并修å¤ã€‚ + - 其他人会在驱动ä¸æ‰¾åˆ°æ€§èƒ½ä¼˜åŒ–的机会。 + - 当外部的接å£çš„改å˜éœ€è¦ä¿®æ”¹é©±åŠ¨ç¨‹åºçš„æ—¶å€™ï¼Œå…¶ä»–äººä¼šä¿®æ”¹é©±åŠ¨ç¨‹åº +。 + - ä¸éœ€è¦è”系任何å‘行商,这个驱动会自动的éšç€æ‰€æœ‰çš„Linuxå‘å¸ƒä¸€èµ·å‘ +布。 + +和别的æ“作系统相比,Linux为更多ä¸åŒçš„设备æ供现æˆçš„é©±åŠ¨ï¼Œè€Œä¸”èƒ½åœ¨æ›´å¤šä¸ +åŒä½“系结构的处ç†å™¨ä¸Šæ”¯æŒè¿™äº›è®¾å¤‡ã€‚这个ç»è¿‡è€ƒéªŒçš„å¼€å‘模å¼ï¼Œå¿…然是错ä¸äº† +çš„ :) + +------------- +æ„Ÿè°¢ Randy Dunlap, Andrew Morton, David Brownell, Hanna Linder, +Robert Love, and Nishanth Aravamudan 对于本文档早期版本的评审和建议。 + +英文版维护者: Greg Kroah-Hartman <greg@kroah.com> -- GitLab