From: Hu Haowen <src.res@email.cn> Date: Thu, 29 Jul 2021 15:56:26 +0000 (+0800) Subject: docs/zh_TW: add translations for zh_TW/process X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=390f915a12a668c2add6a37bbf4dc30bc6a0e4d4;p=linux.git docs/zh_TW: add translations for zh_TW/process Create new translations for zh_TW/process and link them to index. Signed-off-by: Hu Haowen <src.res@email.cn> Reviewed-by: Pan Yunwang <panyunwang849@gmail.com> Link: https://lore.kernel.org/r/20210729155627.41744-2-src.res@email.cn Signed-off-by: Jonathan Corbet <corbet@lwn.net> --- diff --git a/Documentation/translations/zh_TW/index.rst b/Documentation/translations/zh_TW/index.rst index cab58e4288255..76981b2111f61 100644 --- a/Documentation/translations/zh_TW/index.rst +++ b/Documentation/translations/zh_TW/index.rst @@ -22,9 +22,7 @@ ä¸é¢çææªä»ç´¹äºLinuxå §æ ¸åå§ç¢¼ç許å¯èï¼GPLv2ï¼ãå¦ä½å¨åå§ç¢¼æ¨¹ä¸æ£ç¢ºæ¨è¨ å®åæä»¶ç許å¯èã以åæå宿´è¨±å¯èææ¬çé£çµã -TODOList: - -* Documentation/translations/zh_TW/process/license-rules.rst +Documentation/translations/zh_TW/process/license-rules.rst ç¨æ¶ææª -------- @@ -67,9 +65,13 @@ TODOlist: éç¼äººå¡ååºè²¢ç»ãèä»»ä½å¤§å社å䏿¨£ï¼ç¥éå¦ä½å®æä»»åå°ä½¿å¾æ´æ¹åä½µçéç¨ è®å¾æ´å 容æã +.. toctree:: + :maxdepth: 2 + + process/index + TODOList: -* process/index * dev-tools/index * doc-guide/index * kernel-hacking/index diff --git a/Documentation/translations/zh_TW/process/1.Intro.rst b/Documentation/translations/zh_TW/process/1.Intro.rst new file mode 100644 index 0000000000000..ca2b931be6c5d --- /dev/null +++ b/Documentation/translations/zh_TW/process/1.Intro.rst @@ -0,0 +1,199 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/1.Intro.rst <development_process_intro>` + +:Translator: + + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + +:æ ¡è¯: + + 峿³æ Wu XiangCheng <bobwxc@email.cn> + è¡çæ Hu Haowen <src.res@email.cn> + +.. _tw_development_process_intro: + +å¼è¨ +==== + +å §å®¹æè¦ +-------- + +æ¬ç¯çå ¶é¤é¨åæ¶µèäºå §æ ¸éç¼çéç¨ï¼ä»¥åéç¼äººå¡åå ¶å±ä¸»å¨éæ¹é¢å¯è½éå°ç +å種åé¡ãæå¾å¤åå ä½¿å §æ ¸ä»£ç¢¼æè¢«å併尿£å¼çï¼ã主ç·ãï¼å §æ ¸ä¸ï¼å æ¬å°ç¨æ¶ +çèªåå¯ç¨æ§ãå¤ç¨®å½¢å¼çç¤¾åæ¯æä»¥åå½±é¿å §æ ¸éç¼æ¹åçè½åãæä¾çµ¦Linuxå §æ ¸ +çä»£ç¢¼å¿ é å¨èGPLå ¼å®¹ç許å¯èä¸å¯ç¨ã + +:ref:`tw_development_process` ä»ç´¹äºéç¼éç¨ãå §æ ¸ç¼å¸å¨æååä½µçªå£çæ©å¶ã +æ¶µèäºè£ä¸éç¼ã審æ¥åå併卿ä¸çååéæ®µãéæä¸äºéæ¼å·¥å ·åéµä»¶å表çè¨è«ï¼ +é¼åµå¸æéå§å §æ ¸éç¼çéç¼äººå¡è·è¹¤ä¸¦ä¿®å¾©ç¼ºé·ä»¥ä½ç²åæ¥ç·´ç¿ã + + +:ref:`tw_development_early_stage` å æ¬é ç®çæ©æè¦åï¼é黿¯åå¿«è®éç¼ç¤¾å +åèé²ä¾ã + +:ref:`tw_development_coding` æ¯éæ¼ç·¨ç¨éç¨çï¼ä»ç´¹äºå ¶ä»éç¼äººå¡éå°çå¹¾å +é·é±ã乿¶µèäºå°è£ä¸çä¸äºè¦æ±ï¼ä¸¦ä¸ä»ç´¹äºä¸äºå·¥å ·ï¼éäºå·¥å ·æå©æ¼ç¢ºä¿å §æ ¸ +è£ä¸æ¯æ£ç¢ºçã + +:ref:`tw_development_posting` æè¿°ç¼å¸è£ä¸ä»¥ä¾è©å¯©çéç¨ãç²äºè®éç¼ç¤¾åè½ +èªçå°å¾ ï¼è£ä¸å¿ é 被æ£ç¢ºæ ¼å¼ååæè¿°ï¼ä¸¦ä¸å¿ é ç¼éå°æ£ç¢ºçå°æ¹ãéµå¾ªæ¬ç¯ä¸ç +å»ºè°æå©æ¼ç¢ºä¿æ¨çå·¥ä½è½è¢«è¼å¥½å°æ¥ç´ã + +:ref:`tw_development_followthrough` ä»ç´¹äºç¼å¸è£ä¸ä¹å¾ç¼ççäºæ ï¼å·¥ä½å¨éæ +éé é æ²æå®æãè審é±è ä¸èµ·å·¥ä½æ¯éç¼éç¨ä¸çä¸åéè¦é¨åï¼æ¬ç¯æä¾äºä¸äº +éæ¼å¦ä½å¨éåéè¦é段é¿å åé¡çæç¤ºãç¶è£ä¸è¢«åä½µå°ä¸»ç·ä¸æï¼éç¼äººå¡è¦æ³¨æ +ä¸è¦åå®ä»»åå·²ç¶å®æã + +:ref:`tw_development_advancedtopics` ä»ç´¹äºå ©åãé«ç´ã主é¡ï¼ä½¿ç¨Git管çè£ä¸ +忥çå ¶ä»äººç¼å¸çè£ä¸ã + +:ref:`tw_development_conclusion` 總çµäºæéå §æ ¸éç¼çæ´å¤ä¿¡æ¯ï¼é帶æç¸éè³æº +é£çµã + +éåææªæ¯éæ¼ä»éº¼ç +-------------------- + +Linuxå §æ ¸æè¶ é800è¬è¡ä»£ç¢¼ï¼æ¯åçæ¬çè²¢ç»è è¶ é1000äººï¼æ¯ç¾åæå¤§ãææ´»èºç +å è²»è»é«é ç®ä¹ä¸ãå¾1991å¹´éå§ï¼éåå §æ ¸å·²ç¶ç¼å±æç²ä¸åæå¥½ç使¥ç³»çµ±çµä»¶ï¼ +éè¡å¨è¢çæ¸ä½é³æ¨ææ¾å¨ãæ¡ä¸åé»è ¦ãç¾åæå¤§çè¶ ç´è¨ç®æ©ä»¥åææé¡åç系統ä¸ã +宿¯ä¸ç¨®é©ç¨æ¼å¹¾ä¹ä»»ä½æ æ³çå¥å£¯ã髿å坿´å±çè§£æ±ºæ¹æ¡ã + +é¨èLinuxçç¼å±ï¼å¸æåèå ¶éç¼çéç¼äººå¡ï¼åå ¬å¸ï¼çæ¸éä¹å¨å¢å ã硬é«ä¾æå +å¸æç¢ºä¿Linuxè½å¤ å¾å¥½å°æ¯æä»åçç¢åï¼ä½¿éäºç¢åå°Linuxç¨æ¶å ·æå¸å¼åãåµå ¥ +å¼ç³»çµ±ä¾æå使ç¨Linuxä½ç²éæç¢åççµä»¶ï¼å¸æLinuxè½å¤ åå¯è½å°åä»»æé çä»»åã +åé·ååå ¶ä»åºæ¼Linuxçè»é«ä¾æåå實éå¿Linuxå §æ ¸çåè½ãæ§è½åå¯é æ§ãæçµ +ç¨æ¶ä¹å¸¸å¸¸å¸æä¿®æ¹Linuxï¼ä½¿ä¹è½æ´å¥½å°æ»¿è¶³ä»åçéæ±ã + +Linuxæå¼äººæ³¨ç®çç¹æ§ä¹ä¸æ¯éäºéç¼äººå¡å¯ä»¥è¨ªåå®ï¼ä»»ä½å ·åå¿ è¦æè½ç人é½å¯ä»¥ +æ¹é²Linux並影é¿å ¶éç¼æ¹åãå°æç¢åä¸è½æä¾éç¨®éæ¾æ§ï¼éæ¯èªç±è»é«çä¸åç¹é»ã +妿æä»éº¼ä¸åç話ï¼é£å°±æ¯å §æ ¸æ¯å¤§å¤æ¸å ¶ä»èªç±è»é«é ç®æ´éæ¾ãä¸åå ¸åçä¸å +æå §æ ¸éç¼å¨æå¯ä»¥æ¶å1000å¤åéç¼äººå¡ï¼ä»åç²100å¤åä¸åçå ¬å¸ï¼æè æ ¹æ¬ä¸ +é¸å±¬å ¬å¸ï¼å·¥ä½ã + +èå §æ ¸éç¼ç¤¾ååä½ä¸¦ä¸æ¯ç¹å¥å°é£ãä½åç®¡å¦æ¤ï¼ä»æè¨±å¤æ½å¨çè²¢ç»è å¨å試å +å §æ ¸å·¥ä½æéå°äºå°é£ãå §æ ¸ç¤¾åå·²ç¶ç¼å±åºèªå·±ç¨ç¹çæä½æ¹å¼ï¼ä½¿å ¶è½å¤ 卿¯å¤© +é½è¦æ´æ¹æ¸åè¡ä»£ç¢¼çç°å¢ä¸é å©éè¡ï¼ä¸¦çæé«è³ªéçç¢åï¼ãå æ¤ï¼Linuxå §æ ¸éç¼ +éç¨èå°æçéç¼æ¨¡å¼æå¾å¤§çä¸åä¹å°±ä¸è¶³ç²å¥äºã + +å°æ¼æ°éç¼äººå¡ä¾èªªï¼å §æ ¸çéç¼éç¨å¯è½æè®äººæå°å¥æªåææ¼ï¼ä½éè徿å åç +çç±åå 實çç¶é©ãä¸åä¸äºè§£å §æ ¸ç¤¾å工使¹å¼çéç¼äººå¡ï¼æè æ´ç³çæ¯ï¼ä»å +è©¦åææ£æè¦é¿ä¹ï¼æå¾å°ä»¤äººæ²®åªçé«é©ãéç¼ç¤¾åå¨å¹«å©é£äºè©¦åå¸ç¿ç人çåæï¼ +æ²ææé幫å©é£äºä¸é¡æå¾è½æä¸éå¿éç¼éç¨ç人ã + +叿é±è®æ¬æç人è½å¤ é¿å é種令人沮åªçç¶æ·ãéäºææå¾é·ï¼ä½é±è®å®åææåç +åªåæå¨çæéå §å¾å°åå ±ãéç¼ç¤¾å總æ¯éè¦è½è®å §æ ¸è®æ´å¥½çéç¼äººå¡ï¼ä¸é¢ç +æåæè©²å¹«å©æ¨æç²æ¨å·¥ä½ç人å¡å å ¥æåç社åã + +è´è¬ +---- + +æ¬ææªç±Jonathan Corbet <corbet@lwn.net> æ°å¯«ã以ä¸äººå¡ç建è°ä½¿ä¹æ´ç²å®åï¼ +Johannes Berg, James Berry, Alex Chiang, Roland Dreier, Randy Dunlap, +Jake Edge, Jiri Kosina, Matt Mackall, Arthur Marsh, Amanda McPherson, +Andrew Morton, Andrew Price, Tsugikazu Shibata å Jochen Voà ã + +éé å·¥ä½å¾å°äºLinuxåºéæçæ¯æï¼ç¹å¥æè¬Amanda McPhersonï¼ä»çå°äºéé å·¥ä½ +çå¹å¼ä¸¦å°å ¶è®æç¾å¯¦ã + +代碼é²å ¥ä¸»ç·çéè¦æ§ +-------------------- + +æäºå ¬å¸åéç¼äººå¡å¶ç¾ææ³ï¼ç²ä»éº¼ä»åè¦è²»å¿å¸ç¿å¦ä½èå §æ ¸ç¤¾ååä½ï¼ä¸¦å°ä»£ç¢¼ +æ¾å ¥ä¸»ç·å §æ ¸ï¼ã主ç·ãæ¯ç±Linus Torvaldsç¶è·çå §æ ¸ï¼Linuxç¼è¡åå°å ¶ç¨ä½åºç¤ï¼ã +å¨çæå §ï¼è²¢ç»ä»£ç¢¼çèµ·ä¾åæ¯ä¸ç¨®å¯ä»¥é¿å çéé·ï¼ç¶è·ç¨ç«ä»£ç¢¼ä¸¦ç´æ¥æ¯æç¨æ¶ +似乿´å®¹æãäºå¯¦ä¸ï¼ä¿æä»£ç¢¼ç¨ç«ï¼ã樹å¤ãï¼æ¯å¨ç¶æ¿ä¸æ¯é¯èª¤çã + +ç²äºèªªææ¨¹å¤ä»£ç¢¼ææ¬ï¼ä¸é¢çµ¦åºå §æ ¸éç¼éç¨çä¸äºç¸éæ¹é¢ï¼æ¬æç¨å¾å°æ´è©³ç´°å° +è¨è«å ¶ä¸ç大é¨åå §å®¹ãè«èæ ®ï¼ + +- ææLinuxç¨æ¶é½å¯ä»¥ä½¿ç¨åä½µå°ä¸»ç·å §æ ¸ä¸ç代碼ãå®å°èªååºç¾å¨ææåç¨å®ç + ç¼è¡çä¸ãç¡éé© åç¨åºç£ç¢ãé¡å¤ä¸è¼ï¼ä¹ä¸éè¦ç²å¤åç¼è¡ççå¤åçæ¬æä¾ + æ¯æï¼éä¸åå°æ¹ä¾¿ææéç¼äººå¡åç¨æ¶ãä½µå ¥ä¸»ç·è§£æ±ºäºå¤§éçåç¼åæ¯æåé¡ã + +- ç¶å §æ ¸éç¼äººå¡åªåç¶è·ä¸åç©©å®çç¨æ¶ç©ºéæ¥å£æï¼å §æ ¸å §é¨APIèæ¼ä¸æ·è®åä¹ä¸ã + ä¸ç¶æç©©å®çå §é¨æ¥å£æ¯ä¸åæ éçè¨è¨æ±ºçï¼å®å 許å¨ä»»ä½æåé²è¡åºæ¬çæ¹é²ï¼ + 並ç¢åºæ´é«è³ªéç代碼ãä½è©²çç¥å°è´çµææ¯ï¼è¥è¦ä½¿ç¨æ°çå §æ ¸ï¼ä»»ä½æ¨¹å¤ä»£ç¢¼é½ + éè¦æçºçç¶è·ãç¶è·æ¨¹å¤ä»£ç¢¼æéè¦å¤§éç工使è½ä½¿ä»£ç¢¼ä¿ææ£å¸¸éè¡ã + + ç¸åï¼ä½æ¼ä¸»ç·ä¸ç代碼ä¸éè¦é樣åï¼å ç²åºæ¬è¦åè¦æ±é²è¡APIæ´æ¹çä»»ä½éç¼ + 人å¡ä¹å¿ é ä¿®å¾©ç±æ¼è©²æ´æ¹èç ´å£çä»»ä½ä»£ç¢¼ãå æ¤ï¼åä½µå°ä¸»ç·ä¸ç代碼大大éä½ + äºç¶è·ææ¬ã + +- 餿¤ä¹å¤ï¼å §æ ¸ä¸ç代碼é常æè¢«å ¶ä»éç¼äººå¡æ¹é²ãæ¨ææ¬çç¨æ¶ç¤¾åå客æ¶å°æ¨ + ç¢åçæ¹é²å¯è½æä»¤äººé©åã + +- å §æ ¸ä»£ç¢¼å¨åä½µå°ä¸»ç·ä¹ååä¹å¾é½è¦ç¶é審æ¥ãç¡è«åå§éç¼äººå¡çæè½æå¤å¼·ï¼ + éå審æ¥éç¨ç¸½æ¯è½æ¾å°æ¹é²ä»£ç¢¼çæ¹æ³ã審æ¥ç¶å¸¸ç¼ç¾å´éçé¯èª¤åå®å ¨åé¡ã + å°æ¼å¨å°éç°å¢ä¸éç¼çä»£ç¢¼å°¤å ¶å¦æ¤ï¼é種代碼å¾å¤é¨éç¼äººå¡ç審æ¥ä¸ç²çåªæ·ºã + 樹å¤ä»£ç¢¼æ¯ä½è³ªé代碼ã + +- åèéç¼éç¨æ¯æ¨å½±é¿å §æ ¸éç¼æ¹åçæ¹å¼ãæè§è çæ±æ¨æè¢«è½å°ï¼ä½æ¯æ´»èºç + éç¼äººå¡ææ´å¼·çè²é³ââ並ä¸è½å¤ 實ç¾ä½¿å §æ ¸æ´å¥½å°æ»¿è¶³å ¶éæ±çæ´æ¹ã + +- ç¶å®ç¨ç¶è·ä»£ç¢¼æï¼ç¸½æ¯åå¨ç¬¬ä¸æ¹ç²é¡ä¼¼åè½æä¾ä¸å實ç¾çå¯è½æ§ã妿ç¼ç + éç¨®æ æ³ï¼å併代碼å°è®å¾æ´å å°é£ââçè³æç²ä¸å¯è½ãä¹å¾ï¼æ¨å°é¢è¨ä»¥ä¸ä»¤äºº + ä¸å¿«ç鏿ï¼ï¼1ï¼ç¡éæå°ç¶è·æ¨¹å¤ç鿍æºç¹æ§ï¼æï¼2ï¼æ¾æ£ä»£ç¢¼ä¸¦å°ç¨æ¶é·ç§» + å°æ¨¹å §çæ¬ã + +- 代碼çè²¢ç»æ¯ä½¿æ´åæµç¨å·¥ä½çæ ¹æ¬ãééè²¢ç»ä»£ç¢¼ï¼æ¨å¯ä»¥åå §æ ¸æ·»å æ°åè½ï¼ä¸¦ + æä¾å ¶ä»å §æ ¸éç¼äººå¡ä½¿ç¨çåè½å示ä¾ã妿æ¨å·²ç¶ç²Linuxéç¼äºä»£ç¢¼ï¼æè æ£å¨ + èæ ®é樣åï¼ï¼é£éº¼æ¨é¡¯ç¶å°éåå¹³å°çæçºæåæèè¶£ï¼è²¢ç»ä»£ç¢¼æ¯ç¢ºä¿æåç + æå¥½æ¹æ³ä¹ä¸ã + +ä¸è¿°ææçç±é½é©ç¨æ¼ä»»ä½æ¨¹å¤å §æ ¸ä»£ç¢¼ï¼å æ¬ä»¥å°æçãå äºé²ä½å½¢å¼åç¼ç代碼ã +ç¶èï¼å¨èæ ®ä»»ä½é¡åçç´äºé²ä½å §æ ¸ä»£ç¢¼åå¸ä¹åï¼ééè¦èæ ®å ¶ä»å ç´ ãå æ¬ï¼ + +- åç¹å°æå §æ ¸æ¨¡å¡åç¼çæ³å¾åé¡å ¶å¯¦è¼ç²æ¨¡ç³ï¼ç¸ç¶å¤çå §æ ¸çæ¬ææè èªç²ï¼ + 大夿¸å äºé²ä½çæ¨¡å¡æ¯å §æ ¸çæ´¾çç¢åï¼å æ¤ï¼å®åçåç¼éåäºGNUéç¨å ¬å ± + 許å¯èï¼ä¸é¢å°è©³ç´°ä»ç´¹ï¼ãæ¬æä½è 䏿¯å¾å¸«ï¼æ¬ææªä¸çä»»ä½å §å®¹é½ä¸å¯è½è¢« + è¦ç²æ³å¾å»ºè°ãå°éåå§ç¢¼æ¨¡å¡çç實æ³å¾å°ä½åªè½ç±æ³é¢æ±ºå®ãä½ä¸ç®¡ææ¨£ï¼å°æ¾ + éäºæ¨¡å¡çä¸ç¢ºå®æ§ä»ç¶åå¨ã + +- äºé²ä½æ¨¡å¡å¤§å¤§å¢å äºèª¿è©¦å §æ ¸åé¡çé£åº¦ï¼ä»¥è³æ¼å¤§å¤æ¸å §æ ¸éç¼äººå¡çè³é½ä¸æ + å試ãå æ¤ï¼åªåç¼äºé²ä½æ¨¡å¡å°ä½¿æ¨çç¨æ¶æ´é£å¾ç¤¾åç²å¾æ¯æã + +- å°æ¼å äºé²ä½ç模å¡çç¼è¡è ä¾èªªï¼æ¯æä¹æ´å å°é£ï¼ä»åå¿ é ç²ä»åå¸ææ¯æç + æ¯åç¼è¡ç忝åå §æ ¸çæ¬æä¾ä¸åçæ¬çæ¨¡å¡ãç²äºæä¾è¼ç²å ¨é¢çè¦èç¯åï¼ + å¯è½éè¦ä¸å模å¡çå¹¾ååæ§å»ºï¼ä¸¦ä¸æ¯æ¬¡åç´å §æ ¸æï¼æ¨çç¨æ¶é½å¿ é å®ç¨åç´ + éäºæ¨¡å¡ã + +- ä¸é¢æå°çéæ¼ä»£ç¢¼è©å¯©çææåé¡é½æ´å å卿¼å°éåå§ç¢¼ä¸ãç±æ¼è©²ä»£ç¢¼æ ¹æ¬ + ä¸å¯å¾ï¼å æ¤ç¤¾åç¡æ³å°å ¶é²è¡å¯©æ¥ï¼æ¯«ç¡çåï¼å®å°åå¨å´éåé¡ã + +å°¤å ¶æ¯åµå ¥å¼ç³»çµ±ç製é åï¼å¯è½æå¾åæ¼å¿½è¦æ¬ç¯ä¸æèªªç大é¨åå §å®¹ï¼å ç²ä»å +ç¸ä¿¡èªå·±æ£å¨åç¨ä¸ç¨®ä½¿ç¨åçµå §æ ¸çæ¬çç¨ç«ç¢åï¼å¨ç¼å¸å¾ä¸éè¦åé²è¡éç¼ã +éåè«é»å¿½ç¥äºå»£æ³ç代碼審æ¥çå¹å¼ä»¥åå è¨±ç¨æ¶åç¢åæ·»å åè½çå¹å¼ãä½éäº +ç¢åç忥壽彿éï¼ä¹å¾å¿ é ç¼å¸æ°çæ¬çç¢åãå¨éä¸é»ä¸ï¼ä»£ç¢¼å¨ä¸»ç·ä¸ä¸¦å¾å° +è¯å¥½ç¶è·ç便åå°è½å¤ æ´å¥½å°å ä½ï¼ä»¥ä½¿æ°ç¢åå¿«éä¸å¸ã + +è¨±å¯ +---- + +ä»£ç¢¼æ¯æ ¹æä¸äºè¨±å¯èæä¾çµ¦Linuxå §æ ¸çï¼ä½æ¯ææä»£ç¢¼é½å¿ é èGNUéç¨å ¬å ±è¨±å¯ +èï¼GPLV2ï¼ççæ¬2å ¼å®¹ï¼è©²çæ¬æ¯è¦èæ´åå §æ ¸åç¼ç許å¯èãå¨å¯¦è¸ä¸ï¼éæå³ +èææä»£ç¢¼è²¢ç»é½ç±GPLv2ï¼å¯é¸å°ï¼èªè¨å è¨±å¨æ´é«çæ¬çGPLä¸åç¼ï¼æ3åå¥BSD +許å¯ï¼New BSD Licenseï¼è¯è 注ï¼è¦èãä»»ä½ä¸å å«å¨å ¼å®¹è¨±å¯èä¸çè²¢ç»é½ä¸æ +被æ¥åå°å §æ ¸ä¸ã + +è²¢ç»çµ¦å §æ ¸ç代碼ä¸éè¦ï¼æè«æ±ï¼çæ¬åé ãåä½µå°ä¸»ç·å §æ ¸ä¸çææä»£ç¢¼é½ä¿ç +å ¶åå§æææ¬ï¼å æ¤ï¼å §æ ¸ç¾å¨æææ¸ååææè ã + +éç¨®æææ¬çµæ§ä¹æç¤ºèï¼ä»»ä½æ¹è®å §æ ¸è¨±å¯çå試é½è¨»å®æå¤±æãå¾å°æå¯¦éæ æ³ +å¯ä»¥ç²å¾ææçæ¬ææè çåæï¼æè å¾å §æ ¸ä¸åªé¤ä»åç代碼ï¼ãå æ¤ï¼å°¤å ¶æ¯å¨ +å¯é è¦çå°ä¾ï¼è¨±å¯èä¸å¤§å¯è½é·ç§»å°GPLççæ¬3ã + +ææè²¢ç»çµ¦å §æ ¸ç代碼é½å¿ é æ¯åæ³çå è²»è»é«ãå æ¤ï¼ä¸æ¥åå¿åï¼æååï¼è²¢ç» +è çä»£ç¢¼ãææè²¢ç»è é½éè¦å¨ä»åç代碼ä¸ãsign offï¼ç°½ç¼ï¼ãï¼è²æä»£ç¢¼å¯ä»¥ +å¨GPLä¸èå §æ ¸ä¸èµ·åç¼ãç¡æ³æä¾æªè¢«å ¶ææè 許å¯ç²å è²»è»é«çä»£ç¢¼ï¼æå¯è½ç² +å §æ ¸é æçæ¬ç¸éåé¡ç代碼ï¼ä¾å¦ï¼ç±ç¼ºä¹é©ç¶ä¿è·çååå·¥ç¨å·¥ä½æ´¾ççä»£ç¢¼ï¼ +ä¸è½è¢«æ¥åã + +æéçæ¬åé¡çæåå¨Linuxéç¼éµä»¶å表ä¸å¾å¸¸è¦ã鿍£çåé¡é常æå¾å°ä¸å°çæ¡ï¼ +ä½è«è¨ä½ï¼åçéäºåé¡çäººä¸æ¯å¾å¸«ï¼ä¸è½æä¾æ³å¾è«®è©¢ãå¦ææ¨æéæ¼Linuxåå§ç¢¼ +çæ³å¾åé¡ï¼æ²æä»éº¼å¯ä»¥ä»£æ¿è«®è©¢äºè§£éä¸é åçå¾å¸«ãä¾è³´å¾æè¡éµä»¶å表ä¸ç²å¾ +ççæ¡æ¯ä¸ä»¶åéªçäºæ ã + + diff --git a/Documentation/translations/zh_TW/process/2.Process.rst b/Documentation/translations/zh_TW/process/2.Process.rst new file mode 100644 index 0000000000000..b01cdd3a39aea --- /dev/null +++ b/Documentation/translations/zh_TW/process/2.Process.rst @@ -0,0 +1,369 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/2.Process.rst <development_process>` + +:Translator: + + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + +:æ ¡è¯: + + 峿³æ Wu XiangCheng <bobwxc@email.cn> + è¡çæ Hu Haowen <src.res@email.cn> + +.. _tw_development_process: + +éç¼æµç¨å¦ä½é²è¡ +================ + +90å¹´ä»£æ©æçLinuxå §æ ¸éç¼æ¯ä¸ä»¶ç¸ç¶é¬æ£çäºæ ï¼æ¶åçç¨æ¶åéç¼äººå¡ç¸å°è¼å°ã +ç±æ¼æææ¸ä»¥ç¾è¬è¨çç¨æ¶ç¾£ï¼ä¸æ¯å¹´æå¤§ç´2000åéç¼äººå¡åèé²ä¾ï¼å §æ ¸å æ¤å¿ é +ç¼å±åºè¨±å¤æ¢å®æµç¨ä¾ä¿èéç¼çé å©é²è¡ãè¦åèå°æµç¨ä¸ä¾ï¼éè¦å°æ¤æµç¨çé²è¡ +æ¹å¼æä¸å紮實ççè§£ã + +總覽 +---- + +å §æ ¸éç¼äººå¡ä½¿ç¨ä¸å鬿£çåºæ¼æéçç¼å¸éç¨ï¼æ¯å ©å°ä¸åæç¼å¸ä¸æ¬¡æ°çä¸»è¦ +å §æ ¸çæ¬ãæè¿çç¼å¸æ·å²è¨éå¦ä¸ï¼ + + ====== ================= + 5.0 2019å¹´3æ3æ¥ + 5.1 2019å¹´5æ5æ¥ + 5.2 2019å¹´7æ7æ¥ + 5.3 2019å¹´9æ15æ¥ + 5.4 2019å¹´11æ24æ¥ + 5.5 2020å¹´1æ6æ¥ + ====== ================= + +æ¯å5.xçæ¬é½æ¯ä¸å主è¦çå §æ ¸çæ¬ï¼å ·ææ°ç¹æ§ãå §é¨APIæ´æ¹ççãä¸åå ¸åç5.x +çæ¬å å«å¤§ç´13000åè®æ´éï¼è®æ´äºå¹¾åè¬è¡ä»£ç¢¼ãå æ¤ï¼5.xæ¯Linuxå §æ ¸éç¼çå +沿ï¼å §æ ¸ä½¿ç¨æ»¾åéç¼æ¨¡åï¼ä¸æ·éæé大è®åã + +å°æ¼æ¯åçæ¬çè£ä¸åä½µï¼éµå¾ªä¸åç¸å°ç°¡å®çè¦åã卿¯åéç¼å¨æçéé ï¼ãåä½µ +çªå£ã被æéãéæï¼è¢«èªç²è¶³å¤ ç©©å®ï¼ä¸¦ä¸è¢«éç¼ç¤¾åæ¥åï¼ç代碼被åä½µå°ä¸»ç·å § +æ ¸ä¸ãå¨é段æéå §ï¼æ°éç¼å¨æç大é¨åè®æ´ï¼ä»¥åææä¸»è¦è®æ´ï¼å°ä»¥æ¥è¿æ¯å¤© +1000æ¬¡è®æ´ï¼ãè£ä¸ãæãè®æ´éãï¼çé度åä½µã + +ï¼é 便說ä¸å¥ï¼å¼å¾æ³¨æçæ¯ï¼åä½µçªå£æééæçæ´æ¹ä¸¦ä¸æ¯æç©ºç¢ççï¼å®åæ¯ç¶ +æåæ¶éãæ¸¬è©¦ååç´çãç¨å¾å°è©³ç´°æè¿°è©²éç¨ç工使¹å¼ãï¼ + +åä½µçªå£æçºå¤§ç´å ©å¨ãå¨é段æéçµææï¼LinusTorvaldså°è²æçªå£å·²ééï¼ä¸¦ +éæ¾ç¬¬ä¸åãrcãå §æ ¸ãä¾å¦ï¼å°æ¼ç®æ¨ç²5.6çå §æ ¸ï¼å¨åä½µçªå£çµææç¼ççéæ¾ +å°è¢«ç¨±ç²5.6-rc1ã-rc1 çæ¬æ¯ä¸åä¿¡èï¼è¡¨ç¤ºåä½µæ°ç¹æ§çæéå·²ç¶éå»ï¼ç©©å®ä¸ä¸ +åå §æ ¸çæéå·²ç¶å°ä¾ã + +卿¥ä¸ä¾ç6å°10å¨å §ï¼åªæä¿®å¾©åé¡çè£ä¸ææè©²æäº¤çµ¦ä¸»ç·ãæææå 許æ´å¤§ç +æ´æ¹ï¼ä½éç¨®æ æ³å¾å°ç¼çï¼è©¦åå¨åä½µçªå£å¤åä½µæ°åè½çéç¼äººå¡å¾å¾åä¸å° +åå¥½çæ¥å¾ ãä¸è¬ä¾èªªï¼å¦ææ¨é¯éäºçµ¦å®ç¹æ§çåä½µçªå£ï¼æå¥½çåæ³æ¯çå¾ ä¸ä¸ +åéç¼å¨æãï¼å¶ç¾æå°æªæ¯æç¡¬é«çé© åç¨åºé²è¡ä¾å¤ï¼å¦æå®å䏿¹è®å·²æä»£ç¢¼ï¼ +å䏿å°è´åæ¸ï¼æè©²å¯ä»¥é¨æè¢«å®å ¨å°å å ¥ï¼ã + +é¨è修復ç¨åºé²å ¥ä¸»ç·ï¼è£ä¸é度å°é¨èæéçæ¨ç§»èè®æ ¢ãLinuså¤§ç´æ¯å¨ç¼å¸ä¸æ¬¡ +æ°ç-rcå §æ ¸ï¼å¨å §æ ¸è¢«èªç²è¶³å¤ ç©©å®ä¸¦æçµç¼å¸åï¼ä¸è¬æéå°-rc6å°-rc9ä¹éã +ç¶å¾ï¼æ´åéç¨åéæ°éå§äºã + +ä¾å¦ï¼é裡æ¯5.4çéç¼å¨æé²è¡æ æ³ï¼2019å¹´ï¼: + + ============== ============================== + 乿 15 5.3 ç©©å®çç¼å¸ + 乿 30 5.4-rc1 åä½µçªå£éé + åæ 6 5.4-rc2 + åæ 13 5.4-rc3 + åæ 20 5.4-rc4 + åæ 27 5.4-rc5 + å䏿 3 5.4-rc6 + å䏿 10 5.4-rc7 + å䏿 17 5.4-rc8 + å䏿 24 5.4 ç©©å®çç¼å¸ + ============== ============================== + +éç¼äººå¡å¦ä½æ±ºå®ä½æçµæéç¼å¨æä¸¦åµå»ºç©©å®çæ¬ï¼æéè¦çææ¨æ¯ä»¥åçæ¬ç +忏å表ã䏿¡è¿åºç¾ä»»ä½é¯èª¤ï¼ä½æ¯é£äºç ´å£äºä»¥åè½å·¥ä½ç系統çé¯èª¤è¢«èªç²æ¯ +ç¹å¥å´éçãå æ¤ï¼å°è´åæ¸çè£ä¸æ¯ä¸åæ¡è¿çï¼å¾å¯è½å¨ç©©å®æå §åªé¤ã + +éç¼äººå¡çç®æ¨æ¯å¨ç©©å®ç¼å¸ä¹å修復ææå·²ç¥ç忏ãå¨ç¾å¯¦ä¸çä¸ï¼é種å®ç¾æ¯ +å¾é£å¯¦ç¾çï¼å¨éç¨®è¦æ¨¡çé ç®ä¸ï¼è®æ¸å¤ªå¤äºãéè¦èªªæçæ¯ï¼å»¶é²æçµçæ¬åªæ +使åé¡è®å¾æ´ç³ï¼çå¾ ä¸ä¸ååä½µçªå£çæ´æ¹å°è®å¤ï¼å°è´ä¸æ¬¡åºç¾æ´å¤ç忏é¯èª¤ã +å æ¤ï¼å¤§å¤æ¸5.xå §æ ¸é½æä¸äºå·²ç¥ç忏é¯èª¤ï¼ä¸éï¼å¸ææ²æä¸åæ¯å´éçã + +䏿¦ä¸åç©©å®ççæ¬ç¼å¸ï¼å®çæçºç¶è·å·¥ä½å°±è¢«ç§»äº¤çµ¦ãç©©å®åéãï¼ç®åç± +Greg Kroah-Hartmané å°ãç©©å®åéå°ä½¿ç¨5.x.yç·¨èæ¹æ¡ä¸å®æå°ç¼å¸ç©©å®çæ¬ç +æ´æ°ãè¦åå ¥æ´æ°çæ¬ï¼è£ä¸å¿ é ï¼1ï¼ä¿®å¾©ä¸åéè¦ç缺é·ï¼ä¸ï¼2ï¼å·²ç¶åä½µå° +ä¸ä¸åéç¼çæ¬ä¸»ç·ä¸ãå §æ ¸é常æå¨å ¶åå§çæ¬å¾çä¸å以ä¸çéç¼å¨æå §æ¶å° +ç©©å®çæ´æ°ãä¾å¦ï¼5.2å §æ ¸çæ·å²å¦ä¸ï¼2019å¹´ï¼ï¼ + + ============== =============================== + 䏿 7 5.2 ç©©å®çç¼å¸ + 䏿 13 5.2.1 + 䏿 21 5.2.2 + 䏿 26 5.2.3 + 䏿 28 5.2.4 + 䏿 31 5.2.5 + ... ... + åæ 11 5.2.21 + ============== =============================== + +5.2.21æ¯5.2çæ¬çæçµç©©å®æ´æ°ã + +æäºå §æ ¸è¢«æå®ç²ãé·æãå §æ ¸ï¼å®åå°å¾å°æ´é·æéçæ¯æã卿¬æä¸ï¼ç¶åçé·æ +å §æ ¸åå ¶ç¶è·è æ¯ï¼ + + ====== ================================ ================ + 3.16 Ben Hutchings ï¼é·æç©©å®å §æ ¸ï¼ + 4.4 Greg Kroah-Hartman & Sasha Levin ï¼é·æç©©å®å §æ ¸ï¼ + 4.9 Greg Kroah-Hartman & Sasha Levin + 4.14 Greg Kroah-Hartman & Sasha Levin + 4.19 Greg Kroah-Hartman & Sasha Levin + 5.4 Greg Kroah-Hartman & Sasha Levin + ====== ================================ ================ + +é·ææ¯æå §æ ¸ç鏿ç´ç²¹æ¯ç¶è·äººå¡æ¯å¦æéæ±åæéä¾ç¶è·è©²çæ¬çåé¡ã +ç®åéæ²æç²å³å°ç¼å¸çä»»ä½ç¹å®çæ¬æä¾é·ææ¯æçå·²ç¥è¨åã + +è£ä¸ççå½å¨æ +-------------- + +è£ä¸ä¸æç´æ¥å¾éç¼äººå¡çéµç¤é²å ¥ä¸»ç·å §æ ¸ãç¸åï¼æä¸åç¨å¾®è¤éï¼å¦ææäºé +æ£å¼ï¼çéç¨ï¼æ¨å¨ç¢ºä¿å°æ¯åè£ä¸é²è¡è³ªé審æ¥ï¼ä¸¦ç¢ºä¿æ¯åè£ä¸å¯¦ç¾äºä¸åå¨ä¸»ç· +ä¸éè¦çæ´æ¹ãå°æ¼å°ç修復ï¼éåéç¨å¯è½æå¾å¿«å®æï¼ï¼èå°æ¼è¼å¤§ææçè°ç +è®æ´ï¼å¯è½ææçºæ¸å¹´ã許å¤éç¼äººå¡çæ²®åªä¾èªæ¼å°éåéç¨ç¼ºä¹çè§£æè 試åç¹éå®ã + +ç²äºæ¸å°éç¨®æ«æï¼æ¬æå°æè¿°è£ä¸å¦ä½é²å ¥å §æ ¸ãä¸é¢çä»ç´¹ä»¥ä¸ç¨®è¼ç²çæ³åç +æ¹å¼æè¿°äºéåéç¨ãæ´è©³ç´°çéç¨å°å¨å¾é¢çç« ç¯ä¸ä»ç´¹ã + +è£ä¸é常è¦ç¶æ·ä»¥ä¸éæ®µï¼ + +- è¨è¨ãéå°±æ¯è£ä¸ççæ£éæ±ââ以忻¿è¶³éäºéæ±çæ¹å¼ââæå¨ãè¨è¨å·¥ä½é常 + æ¯å¨ä¸æ¶å社åçæ æ³ä¸å®æçï¼ä½æ¯å¦æå¯è½çè©±ï¼æå¥½æ¯å¨å ¬éçæ æ³ä¸å®æ + éé å·¥ä½ï¼é樣å¯ä»¥ç¯çå¾å¤ç¨å¾åéæ°è¨è¨çæéã + +- æ©æè©å¯©ãè£ä¸è¢«ç¼å¸å°ç¸éçéµä»¶å表ä¸ï¼å表ä¸çéç¼äººå¡æå復ä»åå¯è½æ + çä»»ä½è©è«ã妿ä¸åé å©ç話ï¼éåéç¨æè©²æç¼ç¾è£ä¸çä»»ä½ä¸»è¦åé¡ã + +- æ´å»£æ³çè©å¯©ãç¶è£ä¸æ¥è¿æºå好ç´å ¥ä¸»ç·æï¼å®æè©²è¢«ç¸éçå系統ç¶è·äººå¡ + æ¥åââå管é種æ¥å並ä¸è½ä¿èè£ä¸æä¸ç´å»¶ä¼¸å°ä¸»ç·ãè£ä¸å°åºç¾å¨ç¶è·äººå¡ç + å系統樹ä¸ï¼ä¸¦é²å ¥ -next 樹ï¼å¦ä¸æè¿°ï¼ãç¶æµç¨é²è¡æï¼æ¤æ¥é©å°æå°è£ä¸ + é²è¡æ´å»£æ³ç審æ¥ï¼ä¸¦ç¼ç¾ç±æ¼å°æ¤è£ä¸èå ¶ä»äººæåçå·¥ä½åä½µèå°è´çä»»ä½ + åé¡ã + +- è«æ³¨æï¼å¤§å¤æ¸ç¶è·äººå¡ä¹ææ¥å¸¸å·¥ä½ï¼å æ¤åä½µè£ä¸å¯è½ä¸æ¯ä»åçæåªå å·¥ä½ã + 妿æ¨çè£ä¸å¾å°äºéè¦æ´æ¹çåé¥ï¼é£éº¼æ¨æè©²é²è¡éäºæ´æ¹ï¼æè è§£éç²ä½ + ä¸æè©²é²è¡éäºæ´æ¹ã妿æ¨çè£ä¸æ²æè©å¯©æè¦ï¼ä¹æ²æè¢«å ¶ç¸æçå系統æ + é© åç¨åºç¶è·è æ¥åï¼é£éº¼æ¨æè©²å æä¸æå°å°è£ä¸æ´æ°å°ç¶åå §æ ¸ä½¿å ¶å¯è¢«æ£å¸¸ + æç¨ï¼ä¸¦ä¸æ·å°ç¼éå®ä»¥ä¾å¯©æ¥ååä½µã + +- åä½µå°ä¸»ç·ãæçµï¼ä¸åæåçè£ä¸å°è¢«åä½µå°ç±LinusTorvalds管çç主ç·åå²åº« + ä¸ãæ¤æå¯è½æåºç¾æ´å¤çè©è«å/æåé¡ï¼å°éç¼äººå¡ä¾èªªæå°éäºåé¡ä¸¦è§£æ±º + åºç¾çä»»ä½åé¡ä»å¾éè¦ã + +- ç©©å®çç¼å¸ã大éç¨æ¶å¯è½åæ¤è£ä¸å½±é¿ï¼å æ¤å¯è½å次åºç¾æ°çåé¡ã + +- é·æç¶è·ãéç¶éç¼äººå¡å¨å併代碼å¾å¯è½æå¿è¨ä»£ç¢¼ï¼ä½é種è¡ç²å¾å¾æçµ¦éç¼ + 社åçä¸ä¸è¯å°è±¡ãå併代碼æ¶é¤äºä¸äºç¶è·è² æï¼å ç²å ¶ä»äººå°ä¿®å¾©ç±APIæ´æ¹ + å¼èµ·çåé¡ã使¯ï¼å¦æä»£ç¢¼è¦é·æä¿æå¯ç¨ï¼åå§éç¼äººå¡æè©²ç¹¼çºç²ä»£ç¢¼è² 責ã + +å §æ ¸éç¼äººå¡ï¼æä»åçå±ä¸»ï¼ç¯çæå¤§é¯èª¤ä¹ä¸æ¯è©¦åå°æµç¨ç°¡åç²ä¸åãåä½µå° +主ç·ãæ¥é©ãéç¨®æ¹æ³ç¸½æ¯æè®ææç¸éäººå¡æå°æ²®åªã + +è£ä¸å¦ä½é²å ¥å §æ ¸ +---------------- + +åªæä¸å人å¯ä»¥å°è£ä¸åä½µå°ä¸»ç·å §æ ¸åå²åº«ä¸ï¼LinusTorvaldsã使¯ï¼å¨é²å ¥ +2.6.38å §æ ¸ç9500å¤åè£ä¸ä¸ï¼åªæ112åï¼å¤§ç´1.3%ï¼æ¯ç±Linusèªå·±ç´æ¥é¸æçã +å §æ ¸é ç®å·²ç¶ç¼å±å°ä¸åæ²æä¸åéç¼äººå¡å¯ä»¥å¨æ²ææ¯æçæ æ³ä¸æª¢æ¥å鏿æ¯å +è£ä¸çè¦æ¨¡ãå §æ ¸éç¼äººå¡èçé種å¢é·çæ¹å¼æ¯ä½¿ç¨åç¹ä¿¡ä»»éæ§å»ºçå©ç系統ã + +å §æ ¸ä»£ç¢¼åº«å¨é輯ä¸è¢«åè§£ç²ä¸çµå系統ï¼ç¶²çµ¡ãç¹å®é«ç³»çµæ§æ¯æãå §å管çãè¦ +é »è¨åçã大夿¸åç³»çµ±é½æä¸åæå®çç¶è·äººå¡ï¼å ¶ç¸½é«è² 責該å系統ä¸ç代碼ã +éäºå系統ç¶è·è ï¼é¬æ£å°ï¼æ¯ä»åæç®¡ççå §æ ¸é¨åçãå®éå¡ãï¼ä»åï¼éå¸¸ï¼ +ææ¥åä¸åè£ä¸ä»¥å å«å°ä¸»ç·å §æ ¸ä¸ã + +å系統ç¶è·äººå¡æ¯å人é½ç®¡çèèªå·±çæ¬çå §æ ¸åå§ç¢¼æ¨¹ï¼é常ï¼ä¸¦é總æ¯ï¼ä½¿ç¨Gitã +Gitçå·¥å ·ï¼ä»¥åQuiltæMercurialçç¸éå·¥å ·ï¼å 許ç¶è·äººå¡è·è¹¤è£ä¸å表ï¼å æ¬ä½è +ä¿¡æ¯åå ¶ä»å æ¸æãå¨ä»»ä½çµ¦å®çæéï¼ç¶è·äººå¡é½å¯ä»¥ç¢ºå®ä»æå¥¹çåå²åº«ä¸çåª +äºè£ä¸å¨ä¸»ç·ä¸æ¾ä¸å°ã + +ç¶åä½µçªå£æéæï¼é ç´ç¶è·äººå¡å°è¦æ±Linuså¾åå²åº«ä¸ãæåºãä»åç²å併鏿 +çè£ä¸ã妿Linusåæï¼è£ä¸æµå°æµåä»çåå²åº«ï¼æç²ä¸»ç·å §æ ¸çä¸é¨åã +Linuså°æå䏿¥æ¶å°çç¹å®è£ä¸çéæ³¨ç¨åº¦åä¸ç¸åãå¾æé¡¯ï¼ææä»çèµ·ä¾å¾ +éæ³¨ã使¯ä¸è¬ä¾èªªï¼Linusç¸ä¿¡å系統ç¶è·äººå¡ä¸æå䏿¸¸ç¼éå£è£ä¸ã + +å系統ç¶è·äººå¡åéä¾ä¹å¯ä»¥å¾å ¶ä»ç¶è·äººå¡é£è£¡ç²åè£ä¸ãä¾å¦ï¼ç¶²çµ¡æ¨¹æ¯ç±é¦å +å¨å°ç¨æ¼ç¶²çµ¡è¨åé© åç¨åºãç¡ç·ç¶²çµ¡ççæ¨¹ä¸ç©ç´¯çè£ä¸æ§å»ºçãæ¤åå²éå¯ä»¥ +ä»»æé·ï¼ä½å¾å°è¶ éå ©åæä¸åé£çµãç±æ¼éä¸çæ¯åç¶è·è é½ä¿¡ä»»é£äºç®¡çè¼ä½ +ç´å¥æ¨¹çç¶è·è ï¼æä»¥éåéç¨ç¨±ç²ãä¿¡ä»»éãã + +顯ç¶ï¼å¨é樣ç系統ä¸ï¼ç²åå §æ ¸è£ä¸åæ±ºæ¼æ¾å°æ£ç¢ºçç¶è·è ãç´æ¥åLinusç¼é +è£ä¸é叏䏿¯æ£ç¢ºçæ¹æ³ã + +Next 樹 +------- + +å系統樹éå¼å°è£ä¸æµå°å §æ ¸ï¼ä½å®ä¹æåºäºä¸åæè¶£çåé¡ï¼å¦ææäººæ³æ¥çç² +ä¸ä¸ååä½µçªå£æºåçææè£ä¸æéº¼è¾¦ï¼éç¼äººå¡å°æèè¶£çæ¯ï¼éæä»éº¼å ¶ä»ç +æ´æ¹æå¾ 解決ï¼ä»¥äºè§£æ¯å¦åå¨éè¦æå¿çè¡çªï¼ä¾å¦ï¼æ´æ¹æ ¸å¿å §æ ¸å½æ¸ååç +ä¿®è£ç¨åºå°è使ç¨è©²å½æ¸èå½¢å¼çä»»ä½å ¶ä»ä¿®è£ç¨åºè¡çªã審æ¥äººå¡å測試人å¡å¸æ +卿æéäºè®æ´å°é主ç·å §æ ¸ä¹åï¼è½å¤ 訪åå®åçéæå½¢å¼çè®æ´ãæ¨å¯ä»¥å¾ææ +ç¸éçåç³»çµ±æ¨¹ä¸æåæ´æ¹ï¼ä½éå°æ¯ä¸é è¤éä¸å®¹æåºé¯çå·¥ä½ã + +è§£æ±ºæ¹æ¡ä»¥-next樹çå½¢å¼åºç¾ï¼å¨é裡å系統樹被æ¶é以便¸¬è©¦å審æ¥ãéäºæ¨¹ä¸ +ç±Andrew Mortonç¶è·çè¼èçä¸åï¼è¢«ç¨±ç²ã-mmãï¼ç¨æ¼å §å管çï¼åµå»ºæç²æ¤ï¼ã +-mm 樹éæäºä¸é·ä¸²å系統樹ä¸çè£ä¸ï¼å®éå å«ä¸äºæ¨å¨å¹«å©èª¿è©¦çè£ä¸ã + +餿¤ä¹å¤ï¼-mm éå å«å¤§éç±Andrewç´æ¥é¸æçè£ä¸ãéäºè£ä¸å¯è½å·²ç¶ç¼å¸å¨éµä»¶ +å表ä¸ï¼æè å®åå¯è½æç¨æ¼å §æ ¸ä¸æªæå®å系統樹çé¨åãåæï¼-mm ä½ç²æå¾ +ææ®µçå系統樹ï¼å¦ææ²æå ¶ä»æé¡¯çè·¯å¾å¯ä»¥è®è£ä¸é²å ¥ä¸»ç·ï¼é£éº¼å®å¾å¯è½æ +çµé¸æ-mm 樹ãç´¯ç©å¨-mm ä¸çå種è£ä¸æçµå°è¢«è½ç¼å°é©ç¶çåç³»çµ±æ¨¹ï¼æè ç´æ¥ +ç¼éå°Linusãå¨å ¸åçéç¼å¨æä¸ï¼å¤§ç´5-10%çè£ä¸éé-mm é²å ¥ä¸»ç·ã + +ç¶å-mm è£ä¸å¯å¨ãmmotmãï¼-mm of the momentï¼ç®é䏿¾å°ï¼ + + https://www.ozlabs.org/~akpm/mmotm/ + +ç¶èï¼ä½¿ç¨MMOTM樹å¯è½æåå令人é ç¼ï¼å®çè³å¯è½ç¡æ³ç·¨è¯ã + +ä¸ä¸å卿è£ä¸åä½µçä¸»è¦æ¨¹æ¯linux-nextï¼ç±Stephen Rothwell ç¶è·ãæ ¹æè¨è¨ +linux-next æ¯ä¸ä¸ååä½µçªå£ééå¾ä¸»ç·çå¿«ç §ãlinux-next樹å¨Linux-kernel å +Linux-next éµä»¶å表ä¸ç¼å¸ï¼å¯å¾ä»¥ä¸ä½ç½®ä¸è¼ï¼ + + https://www.kernel.org/pub/linux/kernel/next/ + +Linux-next å·²ç¶æç²å §æ ¸éç¼éç¨ä¸ä¸å¯æç¼ºçä¸é¨åï¼å¨ä¸å給å®çåä½µçªå£ä¸åä½µ +çææè£ä¸é½æè©²å¨åä½µçªå£æéä¹åç䏿®µæéå §æ¾å°é²å ¥Linux-next çæ¹æ³ã + +Staging 樹 +---------- + +å §æ ¸åå§ç¢¼æ¨¹å å«drivers/staging/ç®éï¼å ¶ä¸æè¨±å¤é© åç¨åºææä»¶ç³»çµ±çåç®é +æ£å¨è¢«æ·»å å°å §æ ¸æ¨¹ä¸ãå®åå¨ä»ç¶éè¦æ´å¤çä¿®æ£çæåå¯ä»¥ä¿çå¨driver/staging/ +ç®éä¸ï¼ä¸æ¦å®æï¼å°±å¯ä»¥å°å®åç§»å°å §æ ¸ä¸ã鿝ä¸ç¨®è·è¹¤ä¸ç¬¦åLinuxå §æ ¸ç·¨ç¢¼æ +è³ªéæ¨æºçé© åç¨åºçæ¹æ³ï¼äººåå¯è½å¸æä½¿ç¨å®å並è·è¹¤éç¼ã + +Greg Kroah Hartman ç®åè² è²¬ç¶è·staging 樹ãä»éè¦ä¿®æ£çé© åç¨åºå°ç¼é給ä»ï¼ +æ¯åé© åç¨åºå¨drivers/staging/ä¸é½æèªå·±çåç®éãé¤äºé© åç¨åºæºæä»¶ä¹å¤ï¼ +ç®éä¸éæè©²æä¸åTODOæä»¶ãTODOæä»¶ååºäºé© åç¨åºéè¦æ¥åçæ«åçå·¥ä½ï¼ +以åé© åç¨åºçä»»ä½è£ä¸é½æè©²æéç人å¡å表ãç¶åçè¦åè¦æ±ï¼stagingçé© å +ç¨åºå¿ é è³å°æ£ç¢ºç·¨è¯ã + +Staging æ¯ä¸ç¨®è®æ°çé© åç¨åºé²å ¥ä¸»ç·çç¸å°å®¹æçæ¹æ³ï¼å®åæå¹¸éå°å¼èµ·å ¶ä» +éç¼äººå¡ç注æï¼ä¸¦è¿ éæ¹é²ãç¶èï¼é²å ¥staging䏦䏿¯æ äºççµå°¾ï¼stagingä¸ +æ²æçå°å¸¸è¦é²å±ç代碼æçµå°è¢«åªé¤ãç¶é·åä¹å¾åæ¼ç¸å°ä¸é¡æä½¿ç¨stagingé© å +ç¨åºãå æ¤ï¼å¨æç²ä¸ååé©ç主ç·é© åçè·¯ä¸ï¼staging å æ¯ä¸åä¸è½ç«ã + +å·¥å · +---- + +å¾ä¸é¢çææ¬å¯ä»¥çåºï¼å §æ ¸éç¼éç¨å¨å¾å¤§ç¨åº¦ä¸ä¾è³´æ¼å¨ä¸åæ¹åä¸èéè£ä¸ç +è½åãå¦ææ²æé©ç¶å¼·å¤§çå·¥å ·ï¼æ´å系統å°ç¡æ³å¨ä»»ä½å°æ¹æ£å¸¸å·¥ä½ãéæ¼å¦ä½ä½¿ç¨ +éäºå·¥å ·çæç¨é é è¶ åºäºæ¬ææªçç¯åï¼ä½éæ¯ç¨ä¸é»ç¯å¹ ä»ç´¹ä¸äºééµé»ã + +å°ç®åç²æ¢ï¼å §æ ¸ç¤¾å使ç¨ç主è¦åå§ç¢¼ç®¡ç系統æ¯gitãGitæ¯å¨èªç±è»é«ç¤¾åä¸éç¼ +ç許å¤åå¸å¼çæ¬æ§å¶ç³»çµ±ä¹ä¸ãå®é常é©åå §æ ¸éç¼ï¼å ç²å®å¨èç大ååå²åº«å +大éè£ä¸ææ§è½é常好ãå®ä¹ä»¥é£ä»¥å¸ç¿å使ç¨èè稱ï¼å管é¨èæéçæ¨ç§»å®è®å¾ +æ´å¥½äºãå°æ¼å §æ ¸éç¼äººå¡ä¾èªªï¼å°Gitçæç¨®çæå¹¾ä¹æ¯ä¸ç¨®è¦æ±ï¼å³ä½¿ä»åä¸å°å® +ç¨æ¼èªå·±çå·¥ä½ï¼ä»åä¹éè¦Gitä¾è·ä¸å ¶ä»éç¼äººå¡ï¼ä»¥å主ç·ï¼æ£å¨åçäºæ ã + +ç¾å¨å¹¾ä¹ææçLinuxç¼è¡ç齿å äºGitãGit主é 使¼ï¼ + + https://git-scm.com/ + +æ¤é é¢å å«äºææªåæç¨çé£çµã + +å¨ä¸ä½¿ç¨gitçå §æ ¸éç¼äººå¡ä¸ï¼ææµè¡ç鏿幾ä¹è¯å®æ¯Mercurialï¼ + + http://www.seleric.com/mercurial/ + +MercurialèGitå ±äº«è¨±å¤ç¹æ§ï¼ä½å®æä¾äºä¸åçé¢ï¼è¨±å¤äººè¦ºå¾å®æ´ææ¼ä½¿ç¨ã + +å¦ä¸åå¼å¾äºè§£çå·¥å ·æ¯Quilt: + + https://savannah.nongnu.org/projects/quilt + +Quilt æ¯ä¸åè£ä¸ç®¡ç系統ï¼è䏿¯åå§ç¢¼ç®¡ç系統ãå®ä¸æé¨èæéçæ¨ç§»è·è¹¤æ·å²ï¼ +ç¸åï¼å®é¢åæ ¹æä¸æ·ç¼å±ç代碼庫è·è¹¤ä¸çµç¹å®çæ´æ¹ãä¸äºä¸»è¦çå系統ç¶è·äººå¡ +使ç¨Quiltä¾ç®¡çæç®å䏿¸¸ç§»åçè£ä¸ãå°æ¼æäºæ¨¹ç管çï¼ä¾å¦-mmï¼ï¼quilt æ¯ +æå¥½çå·¥å ·ã + +éµä»¶å表 +-------- + +大éçLinuxå §æ ¸éç¼å·¥ä½æ¯éééµä»¶åè¡¨å®æçã妿ä¸å å ¥è³å°ä¸åæååè¡¨ï¼ +å°±å¾é£æç²ç¤¾åä¸çä¸åãå ¨åè½ãæå¡ã使¯ï¼Linuxéµä»¶å表å°éç¼äººå¡ä¾èªªä¹æ¯ +ä¸åæ½å¨çå±éªï¼ä»åå¯è½æè¢«ä¸å é»åéµä»¶æ·¹æ²ãéåLinuxå表ä¸ä½¿ç¨çç´å®ï¼ +æè å ©è å ¼èæä¹ã + +大夿¸å §æ ¸éµä»¶å表é½å¨vger.kernel.orgä¸éè¡ï¼ä¸»åè¡¨ä½æ¼ï¼ + + http://vger.kernel.org/vger-lists.html + +ä¸éï¼ä¹æä¸äºå表è¨ç®¡å¨å¥èï¼å ¶ä¸ä¸äºåè¡¨ä½æ¼ +redhat.com/mailman/listinfoã + +ç¶ç¶ï¼å §æ ¸éç¼çæ ¸å¿éµä»¶å表æ¯linux-kernelãéåå表æ¯ä¸å令人çççå°æ¹ï¼ +æ¯å¤©çä¿¡æ¯éå¯ä»¥éå°500æ¢ï¼åªé³å¾é«ï¼è«è©±æè¡æ§å¾å¼·ï¼ä¸åèè 並ä¸ç¸½æ¯è¡¨ç¾åº +é«åº¦ç禮è²ã使¯ï¼æ²æå ¶ä»å°æ¹å¯ä»¥è®å §æ ¸éç¼ç¤¾åä½ç²ä¸åæ´é«èéå¨ä¸èµ·ï¼ +ä¸ä½¿ç¨æ¤å表çéç¼äººå¡å°é¯ééè¦ä¿¡æ¯ã + +以ä¸ä¸äºæç¤ºå¯ä»¥å¹«å©å¨linux-kernelçåï¼ + +- å°éµä»¶è½ç§»å°å®ç¨çæä»¶å¤¾ï¼è䏿¯ä¸»éµç®±æä»¶å¤¾ãæåå¿ é è½å¤ æçºå°å¿½ç¥æ´ªæµã + +- ä¸è¦è©¦åè·ä¸æ¯ä¸æ¬¡è«è©±ââæ²äººæé樣ãéè¦çæ¯è¦ç¯©é¸æèè¶£ç主é¡ï¼ä½è«æ³¨æ + é·æéçå°è©±å¯è½æåé¢åä¾ç主é¡ï¼åç®¡æªæ¹è®é»åéµä»¶ç主é¡ï¼ååèç人ã + +- ä¸è¦å復æäºç人ã妿æäººè©¦åæ¿èµ·æ¤æï¼è«å¿½ç¥ä»åã + +- ç¶å復Linuxå §æ ¸é»åéµä»¶ï¼æå ¶ä»å表ä¸çé»åéµä»¶ï¼æï¼è«ç²ææç¸é人å¡ä¿ç + Cc: æéé ãå¦ææ²æç¢ºå¯¦ççç±ï¼å¦æç¢ºçè«æ±ï¼ï¼å䏿åªé¤æ¶ä»¶äººãä¸å®è¦ + 確ä¿ä½ è¦å復çäººå¨æéå表ä¸ãéåæ £ä¾ä¹ä½¿ä½ ä¸å¿ å¨åè¦éµä»¶ææç¢ºè¦æ±è¢«æéã + +- 卿åºåé¡ä¹åï¼æç´¢åè¡¨åæªï¼åæ´å網絡ï¼ãæäºéç¼äººå¡å¯è½æå°é£äºé¡¯ç¶ + æ²æå®æå®¶åºä½æ¥ç人æå°ä¸èç ©ã + +- é¿å é é¨åå¾©ï¼æä½ ççæ¡æ¾å¨ä½ è¦å復ç弿ä¸é¢çåæ³ï¼ãéæè®ä½ çåçæ´é£ + çè§£ï¼å°è±¡ä¹å¾å·®ã + +- 卿£ç¢ºçéµä»¶å表ç¼åãlinux-kernel å¯è½æ¯éç¨çè¨è«å ´æï¼ä½å®ä¸æ¯å°æ¾ææ + å系統éç¼äººå¡çæä½³å ´æã + +æå¾ä¸é»ââæ¾å°æ£ç¢ºçéµä»¶å表ââæ¯éç¼äººå¡å¸¸åºé¯çå°æ¹ãå¨linux-kernelä¸ +æåºè網絡ç¸éçåé¡ç人幾ä¹è¯å®ææ¶å°ä¸å禮è²ç建è°ï¼è½å°netdevåè¡¨ä¸æåºï¼ +å ç²éæ¯å¤§å¤æ¸ç¶²çµ¡éç¼äººå¡ç¶å¸¸åºç¾çå表ãéæå ¶ä»å表å¯ç¨æ¼scsiãvideo4linuxã +ideãfilesystemçåç³»çµ±ãæ¥æ¾éµä»¶å表çæä½³ä½ç½®æ¯èå §æ ¸åå§ç¢¼ä¸èµ·æå ç +MAINTAINERSæä»¶ã + +éå§å §æ ¸éç¼ +------------ + +éæ¼å¦ä½éå§å §æ ¸éç¼éç¨çåé¡å¾å¸¸è¦ââå人åå ¬å¸çç¶ã忍£å¸¸è¦çæ¯å¤±èª¤ï¼é +使å¾éä¿çéå§æ¯æ¬æçæ´å°é£ã + +å ¬å¸é叏叿èè«ç¥åçéç¼äººå¡ä¾ååéç¼åéã實éä¸ï¼éæ¯ä¸ç¨®ææçæè¡ã +ä½å®ä¹å¾å¾æ¯æè²´çï¼èä¸å°å¢å æç¶é©çå §æ ¸éç¼äººå¡çæ¸éæ²æå¤å¤§å¹«å©ãè +æ ®å°æéæå ¥ï¼å¯ä»¥è®å §é¨éç¼äººå¡å å¿«Linuxå §æ ¸çéç¼é度ãå©ç¨é段æéå¯ä»¥ +è®å±ä¸»ææä¸æ¹æ¢äºè§£å §æ ¸åäºè§£å ¬å¸çéç¼äººå¡ï¼éå¯ä»¥å¹«å©å¹è¨å ¶ä»äººãå¾ä¸æ +ä¾çï¼ééå¸¸æ¯æ´æå©å¯åçæ¹æ³ã + +å¯ä»¥çè§£çæ¯ï¼å®åéç¼äººå¡å¾å¾å°èµ·æ¥æå°è«ç¶ãå¾ä¸å大åé ç®éå§å¯è½æå¾ +å人ï¼äººåå¾å¾æ³å ç¨ä¸äºè¼å°çæ±è¥¿ä¾è©¦è©¦æ°´ãç±æ¤ï¼ä¸äºéç¼äººå¡éå§åµå»ºä¿®è£ +æ¼å¯«é¯èª¤æè¼å¾®ç·¨ç¢¼é¢¨æ ¼åé¡çè£ä¸ãä¸å¹¸çæ¯ï¼é樣çè£ä¸æç¢çä¸å®ç¨åº¦çåªé³ï¼ +éæåæ£æ´åéç¼ç¤¾åçæ³¨æåï¼å æ¤ï¼å®åè¶ä¾è¶è¢«äººä¸çéã叿å社åä»ç´¹ +èªå·±çæ°éç¼äººå¡å°ç¡æ³éééäºæ¹å¼ç²å¾ä»åæå¾ çåé¿ã + +Andrew Morton ç²ææ±è² çå §æ ¸éç¼äººå¡æä¾äºå¦ä¸å»ºè° + +:: + + ææå §æ ¸éç¼è ç第ä¸åé ç®è¯å®æè©²æ¯ã確ä¿å §æ ¸å¨æ¨å¯ä»¥æä½çææ + æ©å¨ä¸å§çµå®ç¾éè¡ããéå¸¸çæ¹æ³æ¯åå ¶ä»äººä¸èµ·è§£æ±ºåé¡ï¼éå¯è½é + è¦å æï¼ï¼ï¼ä½å°±æ¯å¦æ¤ââéæ¯å §æ ¸éç¼çä¸é¨åã + +(http://lwn.net/articles/283982/) + +卿²ææé¡¯åé¡éè¦è§£æ±ºçæ æ³ä¸ï¼é常建è°éç¼äººå¡æ¥çç¶åç忏åéæ¾ç¼ºé· +å表ãå¾ä¾é½ä¸ç¼ºå°éè¦è§£æ±ºçåé¡ï¼éé解決éäºåé¡ï¼éç¼äººå¡å°å¾è©²éç¨ç²å¾ +ç¶é©ï¼åæèéç¼ç¤¾åçå ¶ä»æå¡å»ºç«ç¸äºå°éã + diff --git a/Documentation/translations/zh_TW/process/3.Early-stage.rst b/Documentation/translations/zh_TW/process/3.Early-stage.rst new file mode 100644 index 0000000000000..ab2a45fd65a42 --- /dev/null +++ b/Documentation/translations/zh_TW/process/3.Early-stage.rst @@ -0,0 +1,172 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/3.Early-stage.rst <development_early_stage>` + +:Translator: + + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + +:æ ¡è¯: + + 峿³æ Wu XiangCheng <bobwxc@email.cn> + è¡çæ Hu Haowen <src.res@email.cn> + +.. _tw_development_early_stage: + +æ©æè¦å +======== + +ç¶èæ ®ä¸åLinuxå §æ ¸éç¼é ç®æï¼å¾å¯è½æç´æ¥è·³é²å»éå§ç·¨ç¢¼ãç¶èï¼èä»»ä½éè¦ +çé ç®ä¸æ¨£ï¼è¨±å¤æåçåºç¤æå¥½æ¯å¨ç¬¬ä¸è¡ä»£ç¢¼ç·¨å¯«ä¹åå°±æä¸ã卿©æè¨åå +æºéä¸è±è²»ä¸äºæéå¯ä»¥å¨ä¹å¾ç¯çæ´å¤çæéã + +ææ¸ åé¡ +-------- + +èä»»ä½å·¥ç¨é ç®ä¸æ¨£ï¼æåçå §æ ¸æ¹å徿¸ æ°æè¿°è¦è§£æ±ºçåé¡éå§ãå¨æäºæ æ³ +ä¸ï¼é忥é©å¾å®¹æï¼ä¾å¦ç¶æåç¹å®ç¡¬é«éè¦é© åç¨åºæãä¸éï¼å¨å ¶ä»æ æ³ä¸ï¼ +å¾å®¹æå°å¯¦éåé¡è建è°çè§£æ±ºæ¹æ¡æ··å¨ä¸èµ·ï¼éå¯è½æå°è´éº»ç ©ã + +èåä¾åï¼å¹¾å¹´åï¼Linuxé³é »çéç¼äººå¡å°æ±ä¸ç¨®æ¹æ³ä¾éè¡æç¨ç¨å¼ï¼è䏿å +系統延é²é大èå°è´éåºæå ¶ä»åé¡ãä»åå¾å°çè§£æ±ºæ¹æ¡æ¯ä¸å飿¥å°Linuxå®å ¨ +模å¡ï¼LSMï¼æ¡æ¶ä¸çå §æ ¸æ¨¡å¡ï¼é忍¡å¡å¯ä»¥é ç½®ç²å 許ç¹å®çæç¨ç¨å¼è¨ªå實æ +調度ç¨åºãé忍¡å¡è¢«å¯¦ç¾ä¸¦ç¼å°linux-kerneléµä»¶å表ï¼å¨é£è£¡å®ç«å³éå°äºéº»ç ©ã + +å°æ¼é³é »éç¼äººå¡ä¾èªªï¼éåå®å ¨æ¨¡å¡è¶³ä»¥è§£æ±ºä»åç¶åçåé¡ã使¯ï¼å°æ¼æ´å»£æ³ç +å §æ ¸ç¤¾åä¾èªªï¼é被è¦ç²å°LSMæ¡æ¶çæ¿«ç¨ï¼LSMæ¡æ¶ä¸¦ä¸æç®æäºä»å忬ä¸å ·åç +é²ç¨ç¹æ¬ï¼ï¼ä¸¦å°ç³»çµ±ç©©å®æ§é æé¢¨éªãä»åé¦é¸çè§£æ±ºæ¹æ¡å æ¬çæçéérlimit +æ©å¶é²è¡å¯¦æèª¿åº¦è¨ªåï¼ä»¥åé·æçæ¸å°å»¶é²çå·¥ä½ã + +ç¶èï¼é³é »ç¤¾åç¡æ³è¶ è¶ä»å實æ½çç¹å®è§£æ±ºæ¹æ¡ä¾çåé¡ï¼ä»åä¸é¡ææ¥åæ¿ä»£æ¹æ¡ã +ç±æ¤ç¢ççåæ§ä½¿éäºéç¼äººå¡å°æ´åå §æ ¸éç¼éç¨æå°å¤±æï¼å ¶ä¸ä¸åéç¼äººå¡è¿å +å°audioå表並ç¼å¸äºä»¥ä¸å §å®¹ï¼ + + æå¾å¤é常好çLinuxå §æ ¸éç¼äººå¡ï¼ä½ä»åå¾å¾æè¢«ä¸ç¾£å²æ ¢çå»çæå£åã + 試ååéäºäººå³éç¨æ¶éæ±æ¯æµªè²»æéãä»å太ãè°æãäºï¼æ ¹æ¬è½ä¸å°å°æ¸ + 人ç話ã + +ï¼http://lwn.net/articles/131776/ï¼ + +å¯¦éæ æ³å»æ¯ä¸åçï¼èç¹å®æ¨¡å¡ç¸æ¯ï¼å §æ ¸éç¼äººå¡æ´éå¿ç³»çµ±ç©©å®æ§ãé·æç¶è· +以忾å°åé¡çæ£ç¢ºè§£æ±ºæ¹æ¡ãéåæ äºçå¯ææ¯æé黿¾å¨åé¡ä¸ââè䏿¯å ·é«ç +è§£æ±ºæ¹æ¡ä¸ââ並å¨éå§ç·¨å¯«ä»£ç¢¼ä¹åèéç¼ç¤¾åè¨è«éååé¡ã + +å æ¤ï¼å¨èæ ®ä¸åå §æ ¸éç¼é ç®æï¼æåæè©²å¾å°ä¸çµç°¡çåé¡ççæ¡ï¼ + + - éè¦è§£æ±ºçåé¡ç©¶ç«æ¯ä»éº¼ï¼ + + - 忤åé¡å½±é¿çç¨æ¶æåªäºï¼è§£æ±ºæ¹æ¡æè©²è§£æ±ºåªäºä½¿ç¨æ¡ä¾ï¼ + + - å §æ ¸ç¾å¨ç²ä½æ²è½è§£æ±ºéååé¡ï¼ + +åªæéæ¨£ï¼æè½éå§èæ ®å¯è½çè§£æ±ºæ¹æ¡ã + + +æ©æè¨è« +-------- + +å¨è¨åå §æ ¸éç¼é ç®æï¼å¨éå§å¯¦æ½ä¹åè社åé²è¡è¨è«æ¯å¾ææç¾©çãæ©ææºéå¯ä»¥ +ééå¤ç¨®æ¹å¼ç¯çæéåéº»ç ©ï¼ + + - å¾å¯è½å顿¯ç±å §æ ¸ä»¥æ¨ä¸çè§£çæ¹å¼è§£æ±ºçãLinuxå §æ ¸å¾å¤§ï¼å ·æè¨±å¤ä¸æé¡¯ + çç¹æ§ååè½ã䏦䏿¯ææçå §æ ¸åè½é½å人åæå¸æç飿¨£æææªè¨éï¼èä¸å¾ + 容æéºæ¼ä¸äºæ±è¥¿ãæä½è ç¼å¸äºä¸å宿´çé© åç¨åºï¼éè¤äºä¸åå ¶ä¸ + ç¥éçç¾æé© åç¨åºãéæ°ç¼æç¾æè¼ªåç代碼ä¸å 浪費ï¼èä¸ä¸æè¢«æ¥åå°ä¸»ç· + å §æ ¸ä¸ã + + - 建è°çè§£æ±ºæ¹æ¡ä¸å¯è½æä¸äºè¦ç´ ä¸é©åä½µå ¥ä¸»ç·ãå¨ç·¨å¯«ä»£ç¢¼ä¹åï¼æå¥½å äºè§£ + 鿍£çåé¡ã + + - å ¶ä»éç¼äººå¡å®å ¨æå¯è½èæ ®ééååé¡ï¼ä»åå¯è½ææ´å¥½çè§£æ±ºæ¹æ¡çæ³æ³ï¼ä¸¦ä¸ + å¯è½é¡æå¹«å©åµå»ºéåè§£æ±ºæ¹æ¡ã + +å¨å §æ ¸éç¼ç¤¾åçå¤å¹´ç¶é©çµ¦äºæåä¸åæç¢ºçæè¨ï¼ééè¨è¨åéç¼çå §æ ¸ä»£ç¢¼ç¸½æ¯ +æä¸äºåé¡ï¼éäºåé¡åªæå¨ä»£ç¢¼ç¼å¸å°ç¤¾å䏿ææè¢«ç¼ç¾ãææéäºåé¡å¾å´éï¼ +éè¦æ¸æææ¸å¹´çåªåæè½ä½¿ä»£ç¢¼éå°å §æ ¸ç¤¾åçæ¨æºãä¾å¦ï¼ + + - è¨è¨ä¸¦å¯¦ç¾äºå®èçå¨ç³»çµ±çDeviceScape網絡棧ãåªæä½¿å ¶é©åæ¼å¤èçå¨ç³»çµ±ï¼ + æè½å°å ¶åä½µå°ä¸»ç·ä¸ãå¨ä»£ç¢¼ä¸ä¿®æ¹éççæ¯ä¸é å°é£çä»»åï¼å æ¤ï¼é段代碼 + ï¼ç¾å¨ç¨±ç²mac80211ï¼çå併被æ¨é²äºä¸å¹´å¤ã + + - Reiser4æä»¶ç³»çµ±å å«è¨±å¤åè½ï¼æ ¸å¿å §æ ¸éç¼äººå¡èªç²éäºåè½æè©²å¨èæ¬æä»¶ + 系統層ä¸å¯¦ç¾ãå®éå æ¬ä¸äºç¹æ§ï¼éäºç¹æ§å¨ä¸å°ç³»çµ±æ´é²æ¼ç¨æ¶å¼èµ·çæ»éç + æ æ³ä¸æ¯ä¸å®¹æå¯¦ç¾çãéäºåé¡éé²ç¼ç¾ââ以åæçµèçå ¶ä¸ä¸äºåé¡ââå·²ç¶ + å°è´Reiser4置身主ç·å §æ ¸ä¹å¤ã + + - Apparmorå®å ¨æ¨¡å¡ä»¥è¢«èªç²ä¸å®å ¨åä¸å¯é çæ¹å¼ä½¿ç¨å §é¨èæ¬æä»¶ç³»çµ±æ¸æçµæ§ã + é種æå¿ï¼å æ¬å ¶ä»ï¼ä½¿Apparmorå¤å¹´ä¾ç¡æ³é²å ¥ä¸»ç·ã + +å¨éäºæ æ³ä¸ï¼èå §æ ¸éç¼äººå¡çæ©æè¨è«ï¼å¯ä»¥é¿å 大éççè¦åé¡å¤çå·¥ä½ã + +æ¾èª°äº¤æµï¼ +---------- + +ç¶éç¼äººå¡æ±ºå®å ¬éä»åçè¨åæï¼ä¸ä¸åå顿¯ï¼æåå¾åªè£¡éå§ï¼çæ¡æ¯æ¾å°æ£ç¢º +çéµä»¶åè¡¨åæ£ç¢ºçç¶è·è ãå°æ¼éµä»¶åè¡¨ï¼æå¥½çæ¹æ³æ¯å¨ç¶è·è (MAINTAINERS)æä»¶ +䏿¥æ¾è¦ç¼å¸çç¸éä½ç½®ã妿æä¸ååé©çå系統å表ï¼é£éº¼å ¶ä¸ç¼å¸é常æ¯å¨ +linux-kernelä¸ç¼å¸æ´å¯åï¼æ¨æ´æå¯è½æ¥è§¸å°å¨ç¸éå系統ä¸å ·æå°æ¥ç¥èçéç¼ +人å¡ï¼ä¸¦ä¸ç°å¢å¯è½å ·æ¯ææ§ã + +æ¾å°ç¶è·äººå¡å¯è½ææé»å°é£ã忍£ï¼ç¶è·è æä»¶æ¯éå§çå°æ¹ã使¯ï¼è©²æä»¶å¾å¾ä¸ +æ¯ææ°çï¼ä¸¦ä¸ä¸¦éææå系統é½å¨é£è£¡é¡¯ç¤ºã實éä¸ï¼ç¶è·è æä»¶ä¸ååºç人å¡å¯è½ +䏿¯ç¶å實éæä»»è©²è§è²ç人å¡ãå æ¤ï¼ç¶å°è¯ç¹«èª°æçåæï¼ä¸åæç¨çæå·§æ¯ä½¿ç¨ +gitï¼å°¤å ¶æ¯ãgit-logãï¼æ¥çæèè¶£çå系統ä¸ç¶åæ´»åçç¨æ¶ãçç誰å¨å¯«è£ä¸ã +誰æå¨éäºè£ä¸ä¸å ä¸Signed-off-byè¡ç°½åï¼å¦æï¼ãéäºäººå°æ¯å¹«å©æ°éç¼é ç®ç +æä½³äººé¸ã + +æ¾å°åé©çç¶è·è æææ¯éå¸¸å ·æææ°æ§çï¼ä»¥è³æ¼å §æ ¸éç¼äººå¡æ·»å äºä¸åè ³æ¬ä¾ +ç°¡åéåéç¨ï¼ + +:: + + .../scripts/get_maintainer.pl + +ç¶çµ¦å®ã-fãé¸é æï¼æ¤è ³æ¬å°è¿åæå®æä»¶æç®éçç¶åç¶è·è ã妿å¨å½ä»¤è¡ä¸ +給åºäºä¸åè£ä¸ï¼å®å°ååºå¯è½æ¥æ¶è£ä¸å¯æ¬çç¶è·äººå¡ãæè¨±å¤é¸é å¯ä»¥èª¿ç¯ +get_maintainer.plæç´¢ç¶è·è çå´æ ¼ç¨åº¦ï¼è«å°å¿ä½¿ç¨æ´æ¿é²çé¸é ï¼å ç²æçµçµæ +å¯è½æå æ¬å°æ¨æ£å¨ä¿®æ¹çä»£ç¢¼æ²æçæ£èè¶£çéç¼äººå¡ã + +妿ææå ¶ä»æ¹æ³é½å¤±æäºï¼é£éº¼èAndrew Mortonäº¤æµæ¯è·è¹¤ç¹å®ä»£ç¢¼æ®µç¶è·äººå¡ +çä¸ç¨®æææ¹æ³ã + +使éµå¯ï¼ +---------- + +妿å¯è½ç話ï¼å¨æ©æé段ç¼å¸ä½ çè¨ååªææ´æå¹«å©ãæè¿°æ£å¨è§£æ±ºçåé¡ä»¥åå·²ç¶ +å¶å®çéæ¼å¦ä½å¯¦æ½çä»»ä½è¨åãæ¨å¯ä»¥æä¾çä»»ä½ä¿¡æ¯é½å¯ä»¥å¹«å©éç¼ç¤¾åç²é ç® +æä¾æç¨çè¼¸å ¥ã + +å¨éåéæ®µå¯è½ç¼ççä¸ä»¶ä»¤äººæ²®åªçäºæ 䏿¯å¾å°åå°æè¦ï¼èæ¯å¾å°ææ ¹æ¬æ²æ +åé¥ã令人å·å¿çäºå¯¦æ¯ï¼ï¼1ï¼å §æ ¸éç¼äººå¡å¾å¾å¾å¿ï¼ï¼2ï¼ä¸ç¼ºå°æå®åè¨åä½ +代碼ï¼çè³ä»£ç¢¼è¨æ³ï¼å¾å°çäººå»æ¯æä»åï¼ï¼3ï¼æ²æäººæç¾©åå¯©æ¥æè©è«å¥äººç¼è¡¨ +çæ³æ³ã餿¤ä¹å¤ï¼é«å±¤ç´çè¨è¨å¸¸å¸¸é±èèä¸äºåé¡ï¼éäºåé¡åªæå¨æäººçæ£å試 +實ç¾éäºè¨è¨æææè¢«ç¼ç¾ï¼å æ¤ï¼å §æ ¸éç¼äººå¡å¯§é¡çå°ä»£ç¢¼ã + +妿ç¼å¸è«æ±è©è«ï¼RFCï¼ä¸¦æ²å¾å°ä»éº¼æç¨çè©è«ï¼ä¸è¦ä»¥ç²éæå³èç¡äººå°æ¤é ç® +æèè¶£ï¼åæä½ ä¹ä¸è½åè¨ä½ çæ³æ³æ²æåé¡ãå¨éç¨®æ æ³ä¸ï¼æå¥½çåæ³æ¯ç¹¼çºé² +è¡ï¼æä½ çé²å±é¨æéç¥ç¤¾åã + +ç²å¾å®æ¹èªå¯ +----------------------- + +妿æ¨ç工使¯å¨å ¬å¸ç°å¢ä¸å®æçï¼å°±å大夿¸Linuxå §æ ¸å·¥ä½ä¸æ¨£ï¼é¡¯ç¶ï¼å¨æ¨å° +å ¬å¸çè¨åæä»£ç¢¼ç¼å¸å°å ¬å ±éµä»¶å表ä¹åï¼å¿ é ç²å¾æé©ç¶æ¬å©ç¶çç許å¯ãç¼å¸ +ä¸ç¢ºå®æ¯å¦å ¼å®¹GPLçä»£ç¢¼å°¤å ¶æå¸¶ä¾åé¡ï¼å ¬å¸ç管ç層忳å¾äººå¡è¶æ©è½å¤ å°±ç¼å¸ +å §æ ¸éç¼é ç®éæä¸è´ï¼å°åèçæ¯å人é½è¶å¥½ã + +ä¸äºè®è å¯è½æèªç²ä»åçæ ¸å¿å·¥ä½æ¯ç²äºæ¯æéæ²ææ£å¼æ¿èªåå¨çç¢åãå°å±ä¸» +çè¨åå ¬å¸å¨å ¬å ±éµä»¶å表ä¸å¯è½ä¸æ¯ä¸åå¯è¡ç鏿ãå¨éç¨®æ æ³ä¸ï¼æå¿ è¦èæ ® +ä¿å¯æ¯å¦ççæ¯å¿ è¦çï¼é常ä¸éè¦æéç¼è¨åéå¨éå §ã + +çç¢ºï¼æäºæ æ³ä¸ä¸å®¶å ¬å¸å¨éç¼éç¨çæ©æç¡æ³åæ³å°æ«é²å ¶è¨åãææç¶é©è±å¯ +çå §æ ¸éç¼äººå¡çå ¬å¸å¯è½é¸æä»¥éç°çæ¹å¼é²è¡éç¼ï¼åææ¯ä»å以å¾è½å¤ é¿å +å´éçéæåé¡ãå°æ¼æ²æéç¨®å §é¨å°æ¥ç¥èçå ¬å¸ï¼æå¥½ç鏿å¾å¾æ¯èè«å¤é¨ +éç¼è æ ¹æä¿å¯åè°å¯©æ¥è¨åãLinuxåºéæéè¡äºä¸åNDAç¨åºï¼æ¨å¨å¹«å©è§£æ±ºé種 +æ æ³ï¼æ´å¤ä¿¡æ¯åè¦ï¼ + + http://www.linuxfoundation.org/nda/ + +é種審æ¥é常足以é¿å 以å¾åºç¾å´éåé¡ï¼èç¡éå ¬éæ«é²é ç®ã + diff --git a/Documentation/translations/zh_TW/process/4.Coding.rst b/Documentation/translations/zh_TW/process/4.Coding.rst new file mode 100644 index 0000000000000..ccc3946227a04 --- /dev/null +++ b/Documentation/translations/zh_TW/process/4.Coding.rst @@ -0,0 +1,297 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/4.Coding.rst <development_coding>` + +:Translator: + + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + +:æ ¡è¯: + + 峿³æ Wu XiangCheng <bobwxc@email.cn> + è¡çæ Hu Haowen <src.res@email.cn> + +.. _tw_development_coding: + +使代碼æ£ç¢º +====================== + +éç¶ä¸åå 實çãé¢å社åçè¨è¨éç¨æå¾å¤å¼å¾èªªéçï¼ä½æ¯ä»»ä½å §æ ¸éç¼é ç®å·¥ä½ +çèæé½åæ å¨ä»£ç¢¼ä¸ã宿¯å°ç±å ¶ä»éç¼äººå¡æª¢æ¥ä½µåä¸¦ï¼æä¸åä½µï¼å°ä¸»ç·æ¨¹ä¸ +ç代碼ãæä»¥é段代碼çè³ªéæ±ºå®äºé ç®çæçµæåã + +æ¬ç¯å°æª¢æ¥ç·¨ç¢¼éç¨ãæåå°å¾å §æ ¸éç¼äººå¡å¸¸ç¯ç幾種é¯èª¤éå§ãç¶å¾éé»å°è½ç§» +å°æ£ç¢ºçåæ³åç¸éæç¨çå·¥å ·ä¸ã + +é·é± +---- + +ä»£ç¢¼é¢¨æ ¼ +******** + +å §æ ¸é·æä»¥ä¾é½æå ¶æ¨æºçä»£ç¢¼é¢¨æ ¼ï¼å¦ +:ref:`Documentation/translations/zh_TW/process/coding-style.rst <tw_codingstyle>` +ä¸æè¿°ãå¨å¤æ¸æåï¼è©²ææªä¸æè¿°çæºåè³å¤è¢«èªç²æ¯å»ºè°æ§çãå æ¤ï¼å §æ ¸ä¸åå¨ +大éä¸ç¬¦åä»£ç¢¼é¢¨æ ¼æºåç代碼ãé種代碼çåå¨æçµ¦å §æ ¸éç¼äººå¡å¸¶ä¾å ©æ¹é¢çå±å®³ã + +é¦å ï¼ç¸ä¿¡å §æ ¸ä»£ç¢¼æ¨æºä¸¦ä¸éè¦ï¼ä¹ä¸å¼·å¶å·è¡ãä½äºå¯¦ä¸ï¼å¦ææ²ææç §æ¨æº +編寫代碼ï¼é£éº¼æ°ä»£ç¢¼å°å¾é£å å ¥å°å §æ ¸ä¸ï¼è¨±å¤éç¼äººå¡çè³æå¨å¯©æ¥ä»£ç¢¼ä¹åè¦æ± +å°ä»£ç¢¼é²è¡éæ°æ ¼å¼åãä¸ååå §æ ¸é麼大ç代碼庫éè¦ä¸äºçµ±ä¸æ ¼å¼ç代碼ï¼ä»¥ä½¿ +éç¼äººå¡è½å¤ å¿«éçè§£å ¶ä¸çä»»ä½é¨åãæä»¥åä¹ç¶ä¸èµ·å¥æªæ ¼å¼ç代碼çæé¨°äºã + +å §æ ¸çä»£ç¢¼é¢¨æ ¼å¶ç¾æèå±ä¸»çå¼·å¶é¢¨æ ¼ç¼çè¡çªãå¨éç¨®æ æ³ä¸ï¼å¿ é å¨ä»£ç¢¼åä½µ +ä¹åéµå¾å §æ ¸ä»£ç¢¼é¢¨æ ¼ãå°ä»£ç¢¼æ¾å ¥å §æ ¸æå³è以å¤ç¨®æ¹å¼æ¾æ£ä¸å®ç¨åº¦çæ§å¶æ¬ââ +å æ¬æ§å¶ä»£ç¢¼æ¨£å¼ã + +å¦ä¸åå±å®³æ¯èªç²å·²ç¶å¨å §æ ¸ä¸ç代碼迫åéè¦ä¿®å¾©ä»£ç¢¼æ¨£å¼ãéç¼è å¯è½æéå§ç·¨å¯« +éæ°æ ¼å¼åè£ä¸ï¼ä½ç²çæéç¼éç¨çä¸ç¨®æ¹å¼ï¼æè ä½ç²å°å ¶ååå¯«å ¥å §æ ¸è®æ´æ¥èª +çä¸ç¨®æ¹å¼ï¼æè å ©è å ¼èæä¹ã使¯ç´ä»£ç¢¼é¢¨æ ¼ç修復被éç¼ç¤¾åè¦ç²åªé³ï¼å®åå¾ +å¾åå°å·éãå æ¤ï¼æå¥½é¿å 編寫é種é¡åçè£ä¸ãå¨ç±æ¼å ¶ä»åå èç䏿®µä»£ç¢¼ç +åæé å¸¶ä¿®å¾©å ¶æ¨£å¼æ¯å¾èªç¶çï¼ä½æ¯ä¸æè©²å ç²äºæ´æ¹ä»£ç¢¼æ¨£å¼èæ´æ¹ä¹ã + +ä»£ç¢¼é¢¨æ ¼ææªä¹ä¸æè©²è¢«è¦ç²çµå°ä¸å¯éåçè¦åã妿æä¸åè¶³å¤ ççç±åå°é種 +樣å¼ï¼ä¾å¦ç²äº80åéå¶æåè¡æå°è´å¯è®æ§å¤§å¤§éä½ï¼ï¼é£éº¼å°±é樣åå§ã + +æ³¨ææ¨éå¯ä»¥ä½¿ç¨ ``clang-format`` å·¥å ·ä¾å¹«å©æ¨èçéäºè¦åï¼å¿«éèªåéæ°æ ¼å¼ +åé¨å代碼ï¼å審é±å®æ´çæä»¶ä»¥ç¼ç¾ä»£ç¢¼æ¨£å¼é¯èª¤ãæ¼å¯«é¯èª¤åå¯è½çæ¹é²ãå®é +å¯ä»¥æ¹ä¾¿å°æåº ``#includes`` ãå°é½è®é/å®ãéæææ¬åå ¶ä»é¡ä¼¼ä»»åãæé詳細 +ä¿¡æ¯ï¼è«åé±ææª :ref:`Documentation/process/clang-format.rst <clangformat>` + +æ½è±¡å±¤ +****** + +è¨ç®æ©ç§å¸æææå¸ç以鿴»æ§åä¿¡æ¯é±èçå義廣æ³ä½¿ç¨æ½è±¡å±¤ãç¶ç¶ï¼å §æ ¸å»£æ³ +å°ä½¿ç¨äºæ½è±¡ï¼ä»»ä½æ¶åæ¸ç¾è¬è¡ä»£ç¢¼çé ç®é½å¿ é åå°éä¸é»ä»¥åçºä¸ä¾ãä½ç¶é© +表æï¼é度æéæ©çæ½è±¡å¯è½åéæ©çåªå䏿¨£æå®³ãæ½è±¡æç¨å¨é©ç¶å±¤ç´ï¼ +ä¸è¦é度ã + +ç°¡å®é»ï¼å èæ ®ä¸åèª¿ç¨æå§çµåªæä¸å忏ä¸ç¸½ç²é¶ç彿¸ãæåå¯ä»¥ä¿çéååæ¸ï¼ +以å¨éè¦ä½¿ç¨å®ææä¾çé¡å¤éæ´»æ§ãä¸éï¼å¨é£æå¯¦ç¾äºéåé¡å¤åæ¸çä»£ç¢¼å¾æ +å¯è½ä»¥æç¨®å¾æªè¢«æ³¨æå°ç微妿¹å¼è¢«ç ´å£ââå ç²å®å¾æªè¢«ä½¿ç¨éãæè ç¶éè¦é¡å¤ +çéæ´»æ§æï¼å®ä¸¦æªä»¥ç¬¦åç¨å¼è¨è¨å¸«ç¶åææçæ¹å¼ä¾å¯¦ç¾ãå §æ ¸éç¼äººå¡é常ææäº¤ +è£ä¸ä¾åªé¤æªä½¿ç¨ç忏ï¼ä¸è¬ä¾èªªï¼ä¸éå§å°±ä¸æè©²æ·»å éäºåæ¸ã + +é±è硬é«è¨ªåçæ½è±¡å±¤ââé常ç²äºå 許大éçé© åç¨åºå ¼å®¹å¤å使¥ç³»çµ±ââå°¤å ¶ä¸å +æ¡è¿ã鿍£ç層使代碼è®å¾æ¨¡ç³ï¼å¯è½æé ææ§è½æå¤±ï¼å®åä¸å±¬æ¼Linuxå §æ ¸ã + +å¦ä¸æ¹é¢ï¼å¦ææ¨ç¼ç¾èªå·±å¾å¦ä¸åå §æ ¸å系統è¤è£½äºå¤§éç代碼ï¼é£éº¼æ¯æå +äºè§£ä¸ä¸ï¼æ¯å¦éè¦å°éäºä»£ç¢¼ä¸çé¨åæåå°å®ç¨ç庫ä¸ï¼æè 卿´é«çå±¤æ¬¡ä¸ +實ç¾éäºåè½ã卿´åå §æ ¸ä¸è¤è£½ç¸åçä»£ç¢¼æ²æå¹å¼ã + +#ifdef åé èç +*************** + +Cé èçå¨ä¼¼ä¹çµ¦ä¸äºCç¨å¼è¨è¨å¸«å¸¶ä¾äºå¼·å¤§çèªæï¼ä»åèªç²å®æ¯ä¸ç¨®å°å¤§ééæ´»æ§å å ¥ +åå§ç¢¼ä¸çæ¹æ³ã使¯é èçå¨ä¸æ¯Cï¼å¤§é使ç¨å®æå°è´ä»£ç¢¼å°å ¶ä»äººä¾èªªæ´é£é±è®ï¼ +å°ç·¨è¯å¨ä¾èªªæ´é£æª¢æ¥æ£ç¢ºæ§ã使ç¨äºå¤§éé èçå¨å¹¾ä¹ç¸½æ¯ä»£ç¢¼éè¦ä¸äº +æ¸ çå·¥ä½çæ¨èªã + +使ç¨#ifdefçæ¢ä»¶ç·¨è¯å¯¦é䏿¯ä¸å強大çåè½ï¼å®å¨å §æ ¸ä¸ä½¿ç¨ã使¯å¾å°æäººå¸æ +çå°ä»£ç¢¼è¢«éªæ»¿#ifdefå¡ãä¸è¬è¦å®ï¼ifdefçä½¿ç¨æåå¯è½éå¶å¨é æä»¶ä¸ãæ¢ä»¶ +ç·¨è¯ä»£ç¢¼å¯ä»¥éå¶å½æ¸ï¼å¦æä»£ç¢¼ä¸åå¨ï¼éäºå½æ¸å°±ç´æ¥è®æç©ºçãç¶å¾ç·¨è¯å¨å° +ææå°åªåå°ç©ºå½æ¸ç調ç¨ã使å¾ä»£ç¢¼æ´å æ¸ æ°ï¼æ´å®¹æçè§£ã + +Cé èçå¨å®åå¨è¨±å¤å±éªæ§ï¼å æ¬å¯è½å°å ·æå¯ä½ç¨ä¸æ²æé¡åå®å ¨ç表éå¼é²è¡å¤ +éè©ä¼°ã妿æ¨è©¦åå®ç¾©å®ï¼è«èæ ®åµå»ºä¸åå §è¯å½æ¸æ¿ä»£ãçµæç¸åç代碼ï¼å §è¯ +彿¸æ´å®¹æé±è®ï¼ä¸æå¤æ¬¡è¨ç®å ¶åæ¸ï¼ä¸¦ä¸å 許編è¯å¨å°åæ¸åè¿åå¼å·è¡é¡å檢æ¥ã + +å §è¯å½æ¸ +******** + +ä¸éï¼å §è¯å½æ¸æ¬èº«ä¹åå¨é¢¨éªãç¨å¼è¨è¨å¸«å¯ä»¥å¾å¿æ¼é¿å 彿¸èª¿ç¨åç¨å §è¯å½æ¸å¡«å æº +æä»¶æåºæçæçãç¶èï¼éäºåè½å¯¦é䏿é使§è½ãå ç²å®åçä»£ç¢¼å¨æ¯å調ç¨ç« +é»é½è¢«è¤è£½ä¸éï¼æä»¥æçµæå¢å ç·¨è¯å §æ ¸ç大å°ãæ¤å¤ï¼éä¹å°èçå¨çå §åç·©å +é æå£åï¼å¾è大大éä½å·è¡é度ãéå¸¸å §è¯å½æ¸æè©²é常å°ï¼èä¸ç¸å°è¼å°ãç¢ç« +彿¸èª¿ç¨çææ¬ä¸¦ä¸é«ï¼å¤§éåµå»ºå §è¯å½æ¸æ¯éæ©åªåçå ¸åä¾åã + +ä¸è¬ä¾èªªï¼å §æ ¸ç¨å¼è¨è¨å¸«æèªå風éªå¿½ç¥ç·©åææã卿¸æçµæ§èª²ç¨éé ä¸çç¶å ¸ +æé/ç©ºéæ¬è¡¡é常ä¸é©ç¨æ¼ç¶ä»£ç¡¬é«ã空é *å°±æ¯* æéï¼å ç²ä¸å大çç¨åºæ¯ä¸å +æ´ç·æ¹çç¨åºéè¡å¾æ ¢ã + +è¼æ°çç·¨è¯å¨è¶ä¾è¶æ¿é²å°æ±ºå®ä¸å給å®å½æ¸æ¯å¦æè©²å §è¯ãå æ¤ï¼é¨ææ¾ç½®ä½¿ç¨ +ãinlineãééµåå¯è½ä¸å å æ¯é度çï¼ä¹å¯è½æ¯ç¡ç¨çã + +é +** + +2006å¹´5æï¼ãdeviceescapeãç¶²çµ¡å æ£§å¨åå¼å¾æä¸ä»¥GPLç¼å¸ï¼ä¸¦è¢«ç´å ¥ä¸»ç·å §æ ¸ã +鿝ä¸ååæ¡è¿çæ¶æ¯ï¼Linuxä¸å°ç¡ç·ç¶²çµ¡çæ¯æå å ¶é被èªç²æ¯ä¸åæ ¼çï¼è +Deviceescapeå æ£§æ¿è«¾ä¿®å¾©éç¨®æ æ³ãç¶èç´å°2007å¹´6æï¼2.6.22ï¼ï¼é段代碼æç +æ£é²å ¥ä¸»ç·ãç¼çäºä»éº¼ï¼ + +éæ®µä»£ç¢¼åºç¾äºè¨±å¤ééé è»ç跡象ãä½ä¸åå¤§éº»ç ©æ¯ï¼å®ä¸¦ä¸æ¯ç²å¤èçå¨ç³»çµ±è +è¨è¨ãå¨åä½µéåç¶²çµ¡å æ£§ï¼ç¾å¨ç¨±ç²mac80211ï¼ä¹åï¼éè¦å°å ¶é²è¡ä¸åéæ¹æ¡ç +æ¹é ã + +æ¾ç¶ï¼Linuxå §æ ¸ä»£ç¢¼å¯ä»¥å¨ä¸èæ ®å¤èçå¨ç³»çµ±æå¸¶ä¾çä¸¦ç¼æ§åé¡çæ æ³ä¸é²è¡ +éç¼ãç¶èç¾å¨ï¼éåææªå°±æ¯å¨éæ ¸çè¨æ¬é»è ¦ä¸å¯«çãå³ä½¿å¨å®èçå¨ç³»çµ±ä¸ï¼ +ç²æé«é¿æè½åæåçå·¥ä½ä¹ææé«å §æ ¸å §çä¸¦ç¼æ§æ°´å¹³ãç·¨å¯«å §æ ¸ä»£ç¢¼èä¸èæ ®é +çæ¥åæ©å·²é å»ã + +å¯ä»¥ç±å¤åç·ç¨ä¸¦ç¼è¨ªåçä»»ä½è³æºï¼æ¸æçµæ§ã硬é«å¯åå¨çï¼å¿ é ç±éä¿è·ãæ° +ç代碼æè©²è¬¹è¨éä¸è¦æ±ï¼äºå¾ä¿®æ¹éæ¯ä¸é ç¸ç¶å°é£çä»»åãå §æ ¸éç¼äººå¡æè©²è± +æéå åäºè§£å¯ç¨çéåèªï¼ä»¥ä¾¿ç²å·¥ä½é¸ææ£ç¢ºçå·¥å ·ãå°ä¸¦ç¼æ§ç¼ºä¹é注ç代碼 +å¾é£é²å ¥ä¸»ç·ã + +忏 +**** + +æå¾ä¸åå¼å¾ä¸æçå±éªæ¯åæ¸ï¼å®å¯è½æå¼èµ·å°è´ç¾æç¨æ¶çæäºæ±è¥¿ä¸æ·çæ¹è® +ï¼éä¹å¯è½æå¸¶ä¾å¾å¤§çæ¹é²ï¼ãé種è®å被稱ç²ã忏ãï¼åæ¸å·²ç¶æç²ä¸»ç·å §æ ¸ +æä¸åæ¡è¿çåé¡ãé¤äºå°æ¸ä¾å¤æ æ³ï¼å¦æåæ¸ä¸è½åæä¿®æ£ï¼æå°è´åæ¸çä¿®æ¹ +å°è¢«åæ¶ãæå¥½é¦å é¿å 忏ç¼çã + +人å常常çè«ï¼å¦æåæ¸å¸¶ä¾çåè½é è¶ éç¢ççåé¡ï¼é£éº¼åæ¸æ¯å¦ç²å¯æ¥åçã +妿å®ç ´å£äºä¸å系統å»ç²ååç³»çµ±å¸¶ä¾æ°çåè½ï¼ç²ä½ä¸æ¹æ¹æ 度å¢ï¼2007å¹´7æï¼ +Linuså°éååé¡çµ¦åºäºæä½³çæ¡: + +:: + + æä»¥æå䏿ééå¼å ¥æ°åé¡ä¾ä¿®å¾©é¯èª¤ãé種æ¹å¼æ¯é ä¸ä½çï¼æ²äººç¥é + æ¯å¦ççæé²å±ãæ¯åé²å ©æ¥ãå¾é䏿¥ï¼éæ¯åé²ä¸æ¥ãå¾éå ©æ¥ï¼ + +ï¼http://lwn.net/articles/243460/ï¼ + +ç¹å¥ä¸åæ¡è¿çä¸ç¨®åæ¸é¡åæ¯ç¨æ¶ç©ºéABIçä»»ä½è®åã䏿¦æ¥å£è¢«å°åºå°ç¨æ¶ç©ºéï¼ +å°±å¿ é ç¡éæå°æ¯æå®ãéä¸äºå¯¦ä½¿å¾ç¨æ¶ç©ºéæ¥å£çåµå»ºç¹å¥å ·æææ°æ§ï¼å ç²å®å +ä¸è½ä»¥ä¸å ¼å®¹çæ¹å¼é²è¡æ´æ¹ï¼æä»¥å¿ é 䏿¬¡å°±å°ãå æ¤ï¼ç¨æ¶ç©ºéæ¥å£ç¸½æ¯éè¦å¤§é +çæèãæ¸ æ°çææªå廣æ³ç審æ¥ã + + +代碼檢æ¥å·¥å · +------------ + +è³å°ç®åï¼ç·¨å¯«ç¡é¯èª¤ä»£ç¢¼ä»ç¶æ¯æåä¸å¾å°äººè½éå°ççæ³çæ ãä¸éï¼æå叿å +çæ¯ï¼å¨ä»£ç¢¼é²å ¥ä¸»ç·å §æ ¸ä¹åï¼åå¯è½å¤å°æç²ä¸¦ä¿®å¾©éäºé¯èª¤ãç²æ¤ï¼å §æ ¸éç¼äºº +å¡å·²ç¶æä¾äºä¸ç³»å令人å°è±¡æ·±å»çå·¥å ·ï¼å¯ä»¥èªåæç²åç¨®åæ¨£çé±èåé¡ãè¨ç®æ© +ç¼ç¾çä»»ä½åé¡é½æ¯ä¸å以å¾ä¸æå°æ¾ç¨æ¶çåé¡ï¼å æ¤ï¼åªè¦æå¯è½ï¼å°±æè©²ä½¿ç¨ +èªååå·¥å ·ã + +ç¬¬ä¸æ¥æ¯æ³¨æç·¨è¯å¨ç¢ççè¦åãç¶åçæ¬çGCCå¯ä»¥æª¢æ¸¬ï¼ä¸¦è¦åï¼å¤§éæ½å¨é¯èª¤ã +é常ï¼éäºè¦å齿åçæ£çåé¡ãæäº¤ä»¥ä¾å¯©é±ç代碼ä¸è¬ä¸æç¢çä»»ä½ç·¨è¯å¨è¦åã +卿¶é¤è¦åæï¼æ³¨æäºè§£çæ£çåå ï¼ä¸¦åéé¿å å ã修復ã使è¦åæ¶å¤±èä¸è§£æ±ºå ¶åå ã + +è«æ³¨æï¼ä¸¦éææç·¨è¯å¨è¦åé½é»èªåç¨ã使ç¨ãmake KCFLAGS=-Wãæ§å»ºå §æ ¸ä»¥ +ç²å¾å®æ´éåã + +å §æ ¸æä¾äºå¹¾åé ç½®é¸é ï¼å¯ä»¥æé調試åè½ï¼å¤§å¤æ¸é ç½®é¸é 使¼ãkernel hackingã +åèå®ä¸ãå°æ¼ä»»ä½ç¨æ¼éç¼ææ¸¬è©¦ç®ççå §æ ¸ï¼é½æè©²åç¨å ¶ä¸å¹¾åé¸é ãç¹å¥æ¯ï¼ +æ¨æè©²æéï¼ + + - FRAME_WARN ç²å大æ¼çµ¦å®æ¸éçå æ£§å¹çè¦åã + éäºè¦åçæç輸åºå¯è½æ¯è¼åé·ï¼ä½æ¨ä¸å¿ æå¿ä¾èªå §æ ¸å ¶ä»é¨åçè¦åã + + - DEBUG_OBJECTS å°æ·»å 代碼以è·è¹¤å §æ ¸åµå»ºçå種å°è±¡ççå½å¨æï¼ä¸¦å¨åºç¾åé¡ + æç¼åºè¦åãå¦æä½ è¦æ·»å åµå»ºï¼åå°åºï¼éæ¼å ¶èªå·±çè¤éå°è±¡çå系統ï¼è« + èæ ®æéå°è±¡èª¿è©¦åºç¤çµæ§çæ¯æã + + - DEBUG_SLAB å¯ä»¥ç¼ç¾åç¨®å §ååé å使ç¨é¯èª¤ï¼å®æè©²ç¨æ¼å¤§å¤æ¸éç¼å §æ ¸ã + + - DEBUG_SPINLOCK, DEBUG_ATOMIC_SLEEP å DEBUG_MUTEXES æç¼ç¾è¨±å¤å¸¸è¦ç + éé¯èª¤ã + +éæå¾å¤å ¶ä»èª¿è©¦é¸é ï¼å ¶ä¸ä¸äºå°å¨ä¸é¢è¨è«ãå ¶ä¸ä¸äºæé¡¯èçæ§è½å½±é¿ï¼ä¸æ +ä¸ç´ä½¿ç¨ãå¨å¸ç¿å¯ç¨é¸é ä¸è±è²»ä¸äºæéï¼å¯è½æå¨çæå §å¾å°è¨±å¤åå ±ã + +å ¶ä¸ä¸åè¼éçèª¿è©¦å·¥å ·æ¯é檢æ¥å¨æãlockdepããè©²å·¥å ·å°è·è¹¤ç³»çµ±ä¸æ¯åé +ï¼spinlockæmutexï¼çç²ååéæ¾ãç²åéçç¸å°é åºãç¶å䏿·ç°å¢ççãç¶å¾ï¼ +å®å¯ä»¥ç¢ºä¿ç¸½æ¯ä»¥ç¸åçé åºç²åéï¼ç¸åç䏿·åè¨é©ç¨æ¼æææ æ³ççãæå¥è©± +說ï¼lockdepå¯ä»¥æ¾å°è¨±å¤å°è´ç³»çµ±æ»éçå ´æ¯ãå¨é¨ç½²ç系統ä¸ï¼é種åé¡å¯è½æ +å¾çè¦ï¼å°æ¼éç¼äººå¡åç¨æ¶èè¨ï¼ï¼LockDepå 許æå以èªåæ¹å¼ç¼ç¾åé¡ãå ·æ +ä»»ä½é¡åçéæ®ééçä»£ç¢¼å¨æäº¤åä½µåæå¨åç¨lockdepçæ æ³ä¸éè¡æ¸¬è©¦ã + +ä½ç²ä¸åå¤å¥®çå §æ ¸ç¨å¼è¨è¨å¸«ï¼æ¯«ç¡çåï¼æ¨å°æª¢æ¥ä»»ä½å¯è½å¤±æçæä½ï¼å¦å §ååé ï¼ +çè¿åçæ ãç¶èï¼äºå¯¦ä¸ï¼æçµçæ é復ç¾è·¯å¾å¯è½å®å ¨æ²æç¶éæ¸¬è©¦ãæªæ¸¬è©¦ç +代碼å¾å¾æåºåé¡ï¼å¦æææéäºé¯èª¤èçè·¯å¾é½è¢«å·è¡äºå¹¾æ¬¡ï¼é£éº¼æ¨å¯è½å°ä»£ç¢¼ +æ´æä¿¡å¿ã + +å §æ ¸æä¾äºä¸åå¯ä»¥åå°éä¸é»çé¯èª¤æ³¨å ¥æ¡æ¶ï¼ç¹å¥æ¯å¨æ¶åå §ååé çæ æ³ä¸ã +åç¨æ éæ³¨å ¥å¾ï¼å §ååé çå¯é 置失æçç¾åæ¯ï¼éäºå¤±æå¯ä»¥éå®å¨ç¹å®ç代碼 +ç¯åå §ãå¨åç¨äºæ éæ³¨å ¥çæ æ³ä¸éè¡ï¼ç¨å¼è¨è¨å¸«å¯ä»¥çå°ç¶æ æ³æ¡åæä»£ç¢¼å¦ä½é¿ +æãæéå¦ä½ä½¿ç¨æ¤å·¥å ·ç詳細信æ¯ï¼è«åé± +Documentation/fault-injection/fault-injection.rstã + +ãsparseãéæ åæå·¥å ·å¯ä»¥ç¼ç¾å ¶ä»é¡åçé¯èª¤ãsparseå¯ä»¥è¦åç¨å¼è¨è¨å¸«ç¨æ¶ç©ºé +åå §æ ¸ç©ºéå°åä¹éçæ··æ·ã大端åºèå°ç«¯åºçæ··æ·ãå¨éè¦ä¸çµä½æ¨èªçå°æ¹å³é +æ´æ¸å¼ççãsparseå¿ é å®ç¨å®è£(妿æ¨çåç¼ä¼ºæå¨æ²æå°å ¶æå ï¼ +å¯ä»¥å¨ https://sparse.wiki.kernel.org/index.php/Main_page æ¾å°ï¼, +ç¶å¾å¯ä»¥ééå¨makeå½ä»¤ä¸æ·»å ãC=1ãå¨ä»£ç¢¼ä¸éè¡å®ã + +ãCoccinelleãå·¥å · :ref:`http://coccinelle.lip6.fr/ <devtools_coccinelle>` +è½å¤ ç¼ç¾å種æ½å¨ç編碼åé¡ï¼å®éå¯ä»¥ç²éäºå顿åºä¿®è¤æ¹æ¡ãå¨ +scripts/coccinelleç®éä¸å·²ç¶æå äºç¸ç¶å¤çå §æ ¸ãèªç¾©è£ä¸ãï¼éè¡ +ãmake coccicheckãå°éè¡éäºèªç¾©è£ä¸ä¸¦å ±åç¼ç¾çä»»ä½åé¡ãæé詳細信æ¯ï¼è«åé± +:ref:`Documentation/dev-tools/coccinelle.rst <devtools_coccinelle>` + + +å ¶ä»é¡åçå¯ç§»æ¤æ§é¯èª¤æå¥½ééç²å ¶ä»é«ç³»çµæ§ç·¨è¯ä»£ç¢¼ä¾ç¼ç¾ãå¦ææ²æS/390系統 +æBlackfinéç¼æ¿ï¼æ¨ä»ç¶å¯ä»¥å·è¡ç·¨è¯æ¥é©ãå¯ä»¥å¨ä»¥ä¸ä½ç½®æ¾å°ä¸å¤§å ç¨æ¼x86系統ç +交åç·¨è¯å¨ï¼ + + https://www.kernel.org/pub/tools/crosstool/ + +è±ä¸äºæéå®è£å使ç¨éäºç·¨è¯å¨å°æå©æ¼é¿å 以å¾çå°·å°¬ã + +ææª +---- + +ææªé常æ¯å §æ ¸éç¼è¦åæ´ç²ä¾å¤ãå³ä¾¿å¦æ¤ï¼è¶³å¤ çææªå°æå©æ¼ç°¡åå°æ°ä»£ç¢¼åä½µ +å°å §æ ¸ä¸çéç¨ï¼ä½¿å ¶ä»éç¼äººå¡ççæ´»æ´è¼é¬ï¼ä¸¦å°æ¨çç¨æ¶ææå¹«å©ãå¨è¨±å¤æ æ³ +ä¸ï¼æ·»å ææªå·²åºæ¬ä¸æ¯å¼·å¶æ§çã + +ä»»ä½è£ä¸ç第ä¸åææªæ¯å ¶éè¯çè®æ´æ¥èªãæ¥èªæ¢ç®æè©²æè¿°æ£å¨è§£æ±ºçåé¡ã解決 +æ¹æ¡çå½¢å¼ãèçè£ä¸ç人å¡ãå°æ§è½çä»»ä½ç¸éå½±é¿ï¼ä»¥åçè§£è£ä¸å¯è½éè¦çä»»ä½ +å ¶ä»å §å®¹ã確ä¿è®æ´æ¥èªèªªæäº*ç²ä»éº¼*è£ä¸å¼å¾æç¨ï¼å¤§ééç¼è æªè½æä¾éäºä¿¡æ¯ã + +任使·»å æ°ç¨æ¶ç©ºéæ¥å£ç代碼ââå æ¬æ°çsysfsæ/procæä»¶ââé½æè©²å å«è©²æ¥å£ +çææªï¼è©²ææªä½¿ç¨æ¶ç©ºééç¼äººå¡è½å¤ ç¥éä»åå¨ä½¿ç¨ä»éº¼ãè«åé± +Documentation/ABI/READMEï¼äºè§£å¦ä½æ¤ææªæ ¼å¼ä»¥åéè¦æä¾åªäºä¿¡æ¯ã + +ææª :ref:`Documentation/admin-guide/kernel-parameters.rst <kernelparameters>` +æè¿°äºå §æ ¸çææå¼å°æé忏ã任使·»å æ°åæ¸çè£ä¸é½æè©²åè©²ææªæ·»å é©ç¶ç +æ¢ç®ã + +任使°çé ç½®é¸é é½å¿ é éæå¹«å©ææ¬ï¼å¹«å©ææ¬éæ¸ æ¥å°è§£ééäºé¸é 以åç¨æ¶å¯è½ +å¸æä½æä½¿ç¨å®åã + +許å¤å系統çå §é¨APIä¿¡æ¯ééå°éæ ¼å¼åçæ³¨éé²è¡è¨éï¼éäºæ³¨éå¯ä»¥éé +ãkernel-docãè ³æ¬ä»¥å¤ç¨®æ¹å¼æååæ ¼å¼åã妿æ¨å¨å ·ækerneldoc注éçåç³»çµ±ä¸ +å·¥ä½ï¼åæè©²ç¶è·å®åï¼ä¸¦æ ¹æéè¦ç²å¤é¨å¯ç¨çåè½æ·»å å®åãå³ä½¿å¨æ²æå¦æ¤è¨é +çé åä¸ï¼ç²å°ä¾æ·»å kerneldoc注é乿²æå£èï¼å¯¦éä¸ï¼éå°æ¼åéå§éç¼å §æ ¸ç人 +ä¾èªªæ¯ä¸åæç¨çæ´»åãéäºæ³¨éçæ ¼å¼ä»¥åå¦ä½åµå»ºkerneldoc模æ¿çä¸äºä¿¡æ¯å¯ä»¥å¨ +:ref:`Documentation/doc-guide/ <doc_guide>` 䏿¾å°ã + +ä»»ä½é±è®å¤§éç¾æå §æ ¸ä»£ç¢¼çäººé½ææ³¨æå°ï¼æ³¨éç缺失å¾å¾æ¯æå¼å¾æ³¨æçãåæï¼ +å°æ°ä»£ç¢¼çè¦æ±æ¯é廿´é«ï¼åä½µæªæ³¨éçä»£ç¢¼å°æ´å å°é£ãéå°±æ¯èªªï¼äººå䏦䏿æ +詳細注éç代碼ã代碼æ¬èº«æè©²æ¯èªè§£éçï¼æ³¨éé¡éäºæ´å¾®å¦çæ¹é¢ã + +æäºäºæ æè©²ç¸½æ¯è¢«æ³¨éã使ç¨å §åå±éæï¼æéä¸ä¸è¡æåï¼è§£éç²ä»éº¼éè¦è¨ç½®å §å +å±éãæ¸æçµæ§çéè¦åé常éè¦å¨æåå°æ¹è§£éãä¸è¬ä¾èªªï¼ä¸»è¦æ¸æçµæ§éè¦å ¨é¢ +çææªãæè©²æåºä»£ç¢¼ä¸åç«çä½ä¹é䏿顝çä¾è³´æ§ãä»»ä½å¯è½èªä½¿ä»£ç¢¼ç®¡ç人é²è¡ +é¯èª¤çãæ¸ çãçäºæ é½éè¦ä¸å注éä¾èªªæç²ä»éº¼è¦é樣åãççã + + +å §é¨APIæ´æ¹ +----------- + +å §æ ¸æä¾çµ¦ç¨æ¶ç©ºéçäºé²ä½æ¥å£ä¸è½è¢«ç ´å£ï¼é¤éé¼ä¸å¾å·²ãèå §æ ¸çå §é¨ç·¨ç¨æ¥å£ +æ¯é«åº¦æµåçï¼ç¶éè¦æå¯ä»¥æ´æ¹ãå¦æä½ ç¼ç¾èªå·±ä¸å¾ä¸èçä¸åå §æ ¸APIï¼æè å +å å ç²å®ä¸æ»¿è¶³ä½ çéæ±å°è´ç¡æ³ä½¿ç¨ç¹å®çåè½ï¼éå¯è½æ¯APIéè¦æ¹è®çä¸åæ¨èªã +ä½ç²å §æ ¸éç¼äººå¡ï¼æ¨ææ¬é²è¡æ¤é¡æ´æ¹ã + +ç確å¯ä»¥é²è¡APIæ´æ¹ï¼ä½æ´æ¹å¿ é æ¯åççãå æ¤ä»»ä½é²è¡å §é¨APIæ´æ¹çè£ä¸é½æè©² +éå¸¶éæ¼æ´æ¹å §å®¹åå¿ è¦åå çæè¿°ãé種è®åä¹æè©²æåæä¸åå®ç¨çè£ä¸ï¼è䏿¯ +åå¨ä¸åæ´å¤§çè£ä¸ä¸ã + +å¦ä¸åè¦é»æ¯ï¼æ´æ¹å §é¨APIçéç¼äººå¡é常è¦è² è²¬ä¿®å¾©å §æ ¸æ¨¹ä¸è¢«æ´æ¹ç ´å£çä»»ä½ä»£ç¢¼ã +å°æ¼ä¸å廣æ³ä½¿ç¨ç彿¸ï¼éå責任å¯ä»¥å°è´æç¾ä¸åçè®åï¼å ¶ä¸è¨±å¤è®åå¯è½èå ¶ä» +éç¼äººå¡æ£å¨åçå·¥ä½ç¸è¡çªãä¸ç¨èªªï¼éå¯è½æ¯ä¸é 大工ç¨ï¼æä»¥æå¥½ç¢ºä¿çç±æ¯ +å¯é çãè«æ³¨æï¼coccinelleå·¥å ·å¯ä»¥å¹«å©é²è¡å»£æ³çAPIæ´æ¹ã + +å¨é²è¡ä¸å ¼å®¹çAPIæ´æ¹æï¼æåå¯è½ç¢ºä¿ç·¨è¯å¨æç²æªæ´æ°ç代碼ãéå°å¹«å©æ¨ç¢ºä¿æ¾ +å°è©²æ¥å£çæ¨¹å §ç¨èãå®éå°è¦åéç¼äººå¡æ¨¹å¤ä»£ç¢¼åå¨ä»åéè¦é¿æçæ´æ¹ãæ¯ææ¨¹å¤ +ä»£ç¢¼ä¸æ¯å §æ ¸éç¼äººå¡éè¦æå¿çäºæ ï¼ä½æ¯æåä¹ä¸å¿ 使樹å¤éç¼äººå¡ççæ´»æä¸å¿ è¦ +çå°é£ã + diff --git a/Documentation/translations/zh_TW/process/5.Posting.rst b/Documentation/translations/zh_TW/process/5.Posting.rst new file mode 100644 index 0000000000000..5578bca403e62 --- /dev/null +++ b/Documentation/translations/zh_TW/process/5.Posting.rst @@ -0,0 +1,251 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/5.Posting.rst <development_posting>` + +:Translator: + + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + +:æ ¡è¯: + + 峿³æ Wu XiangCheng <bobwxc@email.cn> + è¡çæ Hu Haowen <src.res@email.cn> + +.. _tw_development_posting: + +ç¼å¸è£ä¸ +======== + +æ¨çå·¥ä½é²æ©ææºå好æäº¤çµ¦ç¤¾åé²è¡å¯©æ¥ï¼ä¸¦æçµå å«å°ä¸»ç·å §æ ¸ä¸ã毫ä¸ç¨å¥ï¼ +å §æ ¸éç¼ç¤¾åå·²ç¶ç¼å±åºä¸å¥ç¨æ¼ç¼å¸è£ä¸çç´å®åéç¨ï¼éµå¾ªéäºç´å®åéç¨å°ä½¿ +åèå ¶ä¸çæ¯å人ççæ´»æ´å è¼é¬ãæ¬ææªè©¦åæè¿°éäºç´å®çé¨åç´°ç¯ï¼æ´å¤ä¿¡æ¯ +ä¹å¯å¨ä»¥ä¸ææªä¸æ¾å° +:ref:`Documentation/translations/zh_TW/process/submitting-patches.rst <tw_submittingpatches>`ï¼ +:ref:`Documentation/translations/zh_TW/process/submitting-drivers.rst <tw_submittingdrivers>` +å :ref:`Documentation/translations/zh_TW/process/submit-checklist.rst <tw_submitchecklist>`ã + +使éµå¯ +-------- + +å¨è£ä¸å®å ¨ãæºå好ãä¹åï¼é¿å ç¼å¸è£ä¸æ¯ä¸ç¨®æçºçèªæãå°æ¼ç°¡å®çè£ä¸ï¼é +䏿¯åé¡ã使¯å¦ææ£å¨å®æçå·¥ä½å¾è¤éï¼é£éº¼å¨å·¥ä½å®æä¹åå¾ç¤¾åç²å¾åé¥å°± +å¯ä»¥ç²å¾å¾å¤å¥½èãå æ¤ï¼æ¨æè©²èæ ®ç¼å¸æ£å¨é²è¡çå·¥ä½ï¼çè³ç¶è·ä¸åå¯ç¨çGit +樹ï¼ä»¥ä¾¿æèè¶£çéç¼äººå¡å¯ä»¥é¨æè¶ä¸æ¨çå·¥ä½ã + +ç¶ç¼å¸ä¸æå°æªæºå好被å å«çä»£ç¢¼ï¼æå¥½å¨ç¼å¸ä¸èªªæãéææåä»»ä½æå¾ å®æç +主è¦å·¥ä½åä»»ä½å·²ç¥åé¡ãå¾å°æäººæé¡æçé£äºè¢«èªç²æ¯åçä¸ççè£ä¸ï¼ä½æ¯ +é£äºé¡æç人æå¸¶èä»åçé»åä¾ä¸èµ·å¹«å©ä½ æå·¥ä½æ¨åæ£ç¢ºçæ¹åã + +åµå»ºè£ä¸ä¹å +------------ + +å¨èæ ®å°è£ä¸ç¼éå°éç¼ç¤¾åä¹åï¼æè¨±å¤äºæ æè©²åãå æ¬ï¼ + + - åå¯è½å°æ¸¬è©¦ä»£ç¢¼ãå©ç¨å §æ ¸çèª¿è©¦å·¥å ·ï¼ç¢ºä¿å §æ ¸ä½¿ç¨äºææå¯è½çé ç½®é¸é çµå + é²è¡æ§å»ºï¼ä½¿ç¨äº¤åç·¨è¯å¨ç²ä¸åçé«ç³»çµæ§é²è¡æ§å»ºçã + + - ç¢ºä¿æ¨ç代碼符åå §æ ¸ä»£ç¢¼é¢¨æ ¼æåã + + - æ¨çæ´æ¹æ¯å¦å ·ææ§è½å½±é¿ï¼å¦ææ¯éæ¨£ï¼æ¨æè©²éè¡åºæºæ¸¬è©¦ä¾é¡¯ç¤ºæ¨çè®æ´ç + å½±é¿ï¼æå¥½èï¼ï¼çµæçæè¦æè©²å å«å¨è£ä¸ä¸ã + + - ç¢ºä¿æ¨ææ¬ç¼å¸ä»£ç¢¼ã妿éé 工使¯ç²å±ä¸»å®æçï¼å±ä¸»å°éé å·¥ä½å ·ææææ¬ï¼ + 並ä¸å¿ é åææ ¹æGPLå°å ¶é²è¡ç¼å¸ã + +ä¸è¬ä¾èªªï¼å¨ç¼å¸ä»£ç¢¼ä¹åé²è¡ä¸äºé¡å¤çæèï¼å¹¾ä¹ç¸½æ¯è½å¨çæéå §å¾å°åå ±ã + +è£ä¸æºå +-------- + +æºåè£ä¸ç¼å¸çå·¥ä½éå¯è½å¾é©äººï¼ä½å¨æ¤å試ç¯çæéé常æ¯ä¸ææºçï¼å³ä½¿å¨çæ +å §äº¦ç¶ã + +å¿ é éå°å §æ ¸çç¹å®çæ¬æºåè£ä¸ãä¸è¬ä¾èªªï¼è£ä¸æè©²åºæ¼LinusçGit樹ä¸çç¶å +主ç·ãç¶ä»¥ä¸»ç·ç²åºç¤æï¼è«å¾ä¸åè¡æå¨ç¥çç¼å¸é»éå§ââå¦ç©©å®çæ¬æ -rc +çæ¬ç¼å¸é»ââè䏿¯å¨ä¸åä»»æç主ç·åæ¯é»ã + +ä¹å¯è½éè¦éå°-mmãlinux-nextæå系統樹çæçæ¬ï¼ä»¥ä¾¿æ¼æ´å»£æ³ç測試å審æ¥ã +æ ¹æè£ä¸çåå以åå ¶ä»å°æ¹çæ æ³ï¼éå°å ¶ä»æ¨¹å»ºç«çè£ä¸å¯è½éè¦å¤§éçå·¥ä½ä¾ +解決è¡çªåèçAPIæ´æ¹ã + +åªææç°¡å®çæ´æ¹æææ ¼å¼åç²å®åè£ä¸ï¼å ¶ä»æææ´æ¹é½æä½ç²ä¸ç³»åéè¼¯æ´æ¹é²è¡ã +åå²è£ä¸æ¯ä¸éèè¡ï¼ä¸äºéç¼äººå¡è±äºå¾é·æéä¾å¼æ¸ æ¥å¦ä½æç §ç¤¾åææçæ¹å¼ä¾ +åå²ãä¸éï¼éäºç¶é©æ³åä¹è¨±æå¹«å©ï¼ + + - æ¨ç¼å¸çè£ä¸ç³»åå¹¾ä¹è¯å®ä¸ææ¯éç¼éç¨ä¸çæ¬æ§å¶ç³»çµ±ä¸çä¸ç³»åæ´æ¹ãç¸åï¼ + éè¦å°æ¨æåæ´æ¹çæçµå½¢å¼å ä»¥èæ ®ï¼ç¶å¾ä»¥ææç¾©çæ¹å¼é²è¡æåãéç¼äººå¡å° + 颿£çãèªå å«çæ´æ¹æèè¶£ï¼è䏿¯æ¨åµé éäºæ´æ¹çåå§è·¯å¾ã + + - æ¯åé輯ä¸ç¨ç«çè®æ´é½æè©²æ ¼å¼åç²å®ç¨çè£ä¸ãéäºæ´æ¹å¯ä»¥æ¯å°çï¼å¦ãå + æ¤çµæ§é«æ·»å æ¬ä½ãï¼æå¤§çï¼å¦æ·»å ä¸åéè¦çæ°é© åç¨åºï¼ï¼ä½å®å卿¦å¿µä¸ + æè©²æ¯å°çï¼ä¸¦ä¸å¯ä»¥å¨ä¸è¡å §ç°¡è¿°ãæ¯åè£ä¸é½æè©²åä¸åç¹å®çãå¯ä»¥å®ç¨ + 檢æ¥ä¸¦é©è宿åçäºæ çæ´æ¹ã + + - æç¨®æ¹å¼éç³ä¸è¿°æºåï¼ä¹å°±æ¯èªªï¼ä¸è¦å¨åä¸è£ä¸ä¸æ··åä¸åé¡åçæ´æ¹ã妿 + ä¸åè£ä¸ä¿®å¾©äºä¸åééµçå®å ¨æ¼æ´ï¼åéæ°æåäºä¸äºçµæ§ï¼ééæ°æ ¼å¼åäºä»£ + 碼ï¼é£éº¼å®å¾æå¯è½æè¢«å¿½ç¥ï¼å¾èå°è´éè¦ç修復ä¸å¤±ã + + - æ¯åè£ä¸é½æè©²è½åµå»ºä¸åå¯ä»¥æ£ç¢ºå°æ§å»ºåéè¡çå §æ ¸ï¼å¦æè£ä¸ç³»åå¨ä¸é被 + æ·éï¼é£éº¼çµæä»ææ¯ä¸åæ£å¸¸å·¥ä½çå §æ ¸ãé¨åæç¨ä¸ç³»åè£ä¸æ¯ä½¿ç¨ + ãgit bisctãå·¥å ·æ¥æ¾åæ¸çä¸å常è¦å ´æ¯ï¼å¦æçµææ¯ä¸åæå£çå §æ ¸ï¼é£éº¼å°ä½¿ + é£äºå¾äºè¿½è¹¤åé¡çé«å°å·¥ä½çéç¼äººå¡åç¨æ¶ççæ´»æ´å è±é£ã + + - ä¸è¦éååå²ãä¸ä½éç¼äººå¡æ¾ç¶å°ä¸çµéå°å®åæä»¶ç編輯åæ500åå®ç¨çè£ä¸ + ç¼å¸ï¼éä¸¦æ²æä½¿ä»æç²å §æ ¸éµä»¶åè¡¨ä¸æåæ¡è¿ç人ãä¸åè£ä¸å¯ä»¥ç¸ç¶å¤§ï¼ + åªè¦å®ä»ç¶å å«ä¸åå®ä¸ç *é輯* è®æ´ã + + - ç¨ä¸ç³»åè£ä¸æ·»å ä¸åå ¨æ°çåºç¤è¨æ½ï¼ä½æ¯è©²è¨æ½å¨ç³»åä¸çæå¾ä¸åè£ä¸åç¨ + æ´åè®æ´ä¹åä¸è½ä½¿ç¨ï¼éçèµ·ä¾å¾èªäººã妿å¯è½çè©±ï¼æè©²é¿å éç¨®èªæï¼ + 妿éåç³»åå¢å äºåæ¸ï¼é£éº¼äºåæ³å°æåºæå¾ä¸åè£ä¸æ¯å°è´åé¡çè£ä¸ï¼ + å³ä½¿çæ£çbugå¨å ¶ä»å°æ¹ãåªè¦æå¯è½ï¼æ·»å æ°ä»£ç¢¼çè£ä¸ç¨åºæè©²ç«å³æ¿æ´»è©² + 代碼ã + +åµå»ºå®ç¾è£ä¸ç³»åçå·¥ä½å¯è½æ¯ä¸å令人沮åªçéç¨ï¼å¨å®æãçæ£çå·¥ä½ãä¹å¾éè¦ +è±è²»å¤§éçæéåæèã使¯å¦æåå¾å¥½ï¼è±è²»çæéå°±æ¯å¼å¾çã + +è£ä¸æ ¼å¼åæ´æ¹æ¥èª +------------------ + +æä»¥ç¾å¨ä½ æäºä¸ç³»åå®ç¾çè£ä¸å¯ä»¥ç¼å¸ï¼ä½æ¯éé å·¥ä½éæ²æå®æãæ¯åè£ä¸é½ +éè¦è¢«æ ¼å¼åæä¸æ¢æ¶æ¯ï¼ä»¥å¿«éèæ¸ æ°å°å°å ¶ç®çå³éå°ä¸çå ¶ä»å°æ¹ãç²æ¤ï¼ +æ¯åè£ä¸å°ç±ä»¥ä¸é¨åçµæï¼ + + - å¯é¸çãFromãè¡ï¼è¡¨æè£ä¸ä½è ãåªæç¶ä½ ééé»åéµä»¶ç¼éå¥äººçè£ä¸æï¼éä¸è¡ + ææ¯å¿ é çï¼ä½æ¯ç²é²æ¢çåå ä¸å®ä¹ä¸ææä»éº¼å£èã + + - ä¸è¡æè¿°ï¼èªªæè£ä¸çä½ç¨ãå°æ¼å¨æ²æå ¶ä»ä¸ä¸æçæ æ³ä¸çå°è©²æ¶æ¯çè®è ä¾èªªï¼ + è©²æ¶æ¯æè¶³ä»¥ç¢ºå®ä¿®è£ç¨åºçç¯åï¼æ¤è¡å°é¡¯ç¤ºå¨ãshort formï¼ç°¡çæ ¼å¼ï¼ãè®æ´ + æ¥èªä¸ãæ¤æ¶æ¯é常éè¦å å ä¸å系統å稱åç¶´ï¼ç¶å¾æ¯è£ä¸çç®çãä¾å¦ï¼ + + :: + + gpio: fix build on CONFIG_GPIO_SYSFS=n + + - ä¸è¡ç©ºç½ï¼å¾æ¥è£ä¸å §å®¹ç詳細æè¿°ãæ¤æè¿°å¯ä»¥æ¯ä»»æéè¦çé·åº¦ï¼å®æè©²èªªæè£ä¸ + çä½ç¨ä»¥åç²ä»éº¼å®æè©²æç¨æ¼å §æ ¸ã + + - ä¸åæå¤åæ¨è¨è¡ï¼è³å°æä¸åç±è£ä¸ä½è ç Signed-off-by ç°½åãæ¨è¨å°å¨ä¸é¢ + 詳細æè¿°ã + +ä¸é¢çé ç®ä¸èµ·æ§æè£ä¸çè®æ´æ¥èªã寫ä¸å好çè®æ´æ¥èªæ¯ä¸éè³ééè¦ä½å¸¸å¸¸è¢« +忽è¦çèè¡ï¼å¼å¾è±ä¸é»æéä¾è¨è«éååé¡ãç¶ä½ ç·¨å¯«è®æ´æ¥èªæï¼ä½ æè©²è¨ä½æ +å¾å¤ä¸åç人æè®ä½ ç話ãå ¶ä¸å æ¬å系統ç¶è·äººå¡å審æ¥äººå¡ï¼ä»åéè¦æ±ºå®æ¯å¦ +æè©²åä½µè£ä¸ï¼åé·ååå ¶ä»ç¶è·äººå¡è©¦åæ±ºå®æ¯å¦æè©²å°è£ä¸ååç§»æ¤å°å ¶ä»å §æ ¸ï¼ +ç¼ºé·æå°äººå¡æ³ç¥éè£ä¸æ¯å¦å°è´ä»åæ£å¨è¿½æ¥çåé¡ï¼ä»¥åæ³ç¥éå §æ ¸å¦ä½è®åç +ç¨æ¶ççãä¸å好çè®æ´æ¥èªä»¥æç´æ¥åæç°¡æ½çæ¹å¼åææéäºäººå³éæéçä¿¡æ¯ã + +å¨çµå°¾ï¼ç¸½çµè¡æè©²æè¿°è®æ´çå½±é¿ååæ©ï¼ä»¥åå¨ä¸è¡ç´ææ¢ä»¶ä¸å¯è½ç¼ççè®åã +ç¶å¾ï¼è©³ç´°çæè¿°å¯ä»¥è©³è¿°éäºä¸»é¡ï¼ä¸¦æä¾ä»»ä½éè¦çéå ä¿¡æ¯ã妿è£ä¸ä¿®å¾©äº +ä¸å缺é·ï¼è«å¼ç¨å¼å ¥è©²ç¼ºé·çæäº¤ï¼å¦æå¯è½ï¼è«å¨å¼ç¨æäº¤æåææä¾å ¶ id å +æ¨é¡ï¼ã妿æååé¡èç¹å®çæ¥èªæç·¨è¯å¨è¼¸åºç¸éè¯ï¼è«å å«è©²è¼¸åºä»¥å¹«å©å ¶ä» +人æç´¢åä¸åé¡çè§£æ±ºæ¹æ¡ãå¦ææ´æ¹æ¯ç²äºæ¯æä»¥å¾è£ä¸ä¸çå ¶ä»æ´æ¹ï¼é£éº¼æç¶ +說æãå¦ææ´æ¹äºå §é¨APIï¼è«è©³ç´°èªªæéäºæ´æ¹ä»¥åå ¶ä»éç¼äººå¡æè©²å¦ä½é¿æã +ä¸è¬ä¾èªªï¼ä½ è¶æèªå·±æ¾å¨æ¯åé±è®ä½ è®æ´æ¥èªç人çä½ç½®ä¸ï¼è®æ´æ¥èªï¼åå §æ ¸ +ä½ç²ä¸åæ´é«ï¼å°±è¶å¥½ã + +䏿¶èªªï¼è®æ´æ¥èªæ¯å°è®æ´æäº¤å°çæ¬æ§å¶ç³»çµ±æä½¿ç¨çææ¬ãæ¥ä¸ä¾å°æ¯ï¼ + + - è£ä¸æ¬èº«ï¼æ¡ç¨çµ±ä¸çï¼ã-uãï¼è£ä¸æ ¼å¼ã使ç¨ã-pãé¸é ä¾diffå°ä½¿å½æ¸åè + æ´æ¹ç¸éè¯ï¼å¾èä½¿çµæè£ä¸æ´å®¹æè¢«å ¶ä»äººè®åã + +æ¨æè©²é¿å å¨è£ä¸ä¸å æ¬èæ´æ¹ä¸ç¸éæä»¶ï¼ä¾å¦ï¼æ§å»ºéç¨çæçæä»¶æç·¨è¼¯å¨ +å份æä»¶ï¼ãææªç®éä¸çãdontdiffãæä»¶å¨éæ¹é¢æå¹«å©ï¼ä½¿ç¨ã-Xãé¸é å° +å ¶å³é給diffã + +ä¸é¢æå°çæ¨ç±¤ï¼tagï¼ç¨æ¼æè¿°å種éç¼äººå¡å¦ä½èéåè£ä¸çéç¼ç¸éè¯ã +:ref:`Documentation/translations/zh_TW/process/submitting-patches.rst <tw_submittingpatches>` +ææªä¸å°å®åé²è¡äºè©³ç´°æè¿°ï¼ä¸é¢æ¯ä¸åç°¡çç總çµãæ¯ä¸è¡çæ ¼å¼å¦ä¸ï¼ + +:: + + tag: Full Name <email address> optional-other-stuff + +常ç¨çæ¨ç±¤æï¼ + + - Signed-off-by: 鿝ä¸åéç¼äººå¡çèæï¼èæä»æå¥¹ææ¬æäº¤è£ä¸ä»¥å å«å°å §æ ¸ + ä¸ãé表æåæéç¼è 便ºèªèåè°ï¼å ¶å ¨æè¦ + :ref:`Documentation/translations/zh_TW/process/submitting-patches.rst <tw_submittingpatches>` + å¦ææ²æåé©çç°½åï¼åä¸è½åä½µå°ä¸»ç·ä¸ã + + - Co-developed-by: è²æè£ä¸æ¯ç±å¤åéç¼äººå¡å ±ååµå»ºçï¼ç¶å¹¾å人å¨ä¸åè£ä¸ä¸ + 工使ï¼å®ç¨æ¼çµ¦åºå ±åä½è ï¼é¤äº From: æçµ¦åºçä½è ä¹å¤ï¼ãç±æ¼ + Co-developed-by: 表示ä½è èº«ä»½ï¼æä»¥æ¯åå ±åéç¼äººï¼å¿ é ç·è·å¨ç¸éåä½ä½è + çSigned-off-byä¹å¾ãå ·é«å §å®¹å示ä¾è¦ä»¥ä¸æä»¶ + :ref:`Documentation/translations/zh_TW/process/submitting-patches.rst <tw_submittingpatches>` + + - Acked-by: 表示å¦ä¸åéç¼äººå¡ï¼é常æ¯ç¸é代碼çç¶è·äººå¡ï¼åæè£ä¸é©åå å« + å¨å §æ ¸ä¸ã + + - Tested-by: è²ææäººå·²ç¶æ¸¬è©¦äºè£ä¸ä¸¦ç¢ºèªå®å¯ä»¥å·¥ä½ã + + - Reviewed-by: 表示æéç¼äººå¡å·²ç¶å¯©æ¥äºè£ä¸çæ£ç¢ºæ§ï¼æé詳細信æ¯ï¼è«åé± + :ref:`Documentation/translations/zh_TW/process/submitting-patches.rst <tw_submittingpatches>` + + - Reported-by: æå®å ±åæ¤è£ä¸ä¿®å¾©çåé¡çç¨æ¶ï¼æ¤æ¨è¨ç¨æ¼è¡¨ç¤ºæè¬ã + + - Ccï¼æå®æäººæ¶å°äºè£ä¸ç坿¬ï¼ä¸¦ææ©æå°æ¤ç¼è¡¨è©è«ã + +å¨è£ä¸ä¸æ·»å æ¨ç±¤æè¦å°å¿ï¼åªæCc:æé©å卿²ææå®äººå¡æç¢ºè¨±å¯çæ æ³ä¸æ·»å ã + +ç¼éè£ä¸ +-------- + +å¨å¯åºè£ä¸ä¹åï¼æ¨ééè¦æ³¨æä»¥ä¸å¹¾é»ï¼ + + - æ¨ç¢ºå®æ¨çéµä»¶ç¼éç¨åºä¸ææå£è£ä¸åï¼è¢«éµä»¶å®¢æ¶ç«¯æ´æ¹ç©ºç½æä¿®é£¾äºè¡çè£ä¸ + ç¡æ³è¢«å¦ä¸ç«¯æ¥åï¼ä¸¦ä¸é叏䏿é²è¡ä»»ä½è©³ç´°æª¢æ¥ã妿æä»»ä½çåï¼å æè£ä¸å¯ + çµ¦ä½ èªå·±ï¼è®ä½ èªå·±ç¢ºå®å®æ¯å®å¥½ç¡æçã + + :ref:`Documentation/translations/zh_TW/process/email-clients.rst <tw_email_clients>` + æä¾äºä¸äºæç¨çæç¤ºï¼å¯ä»¥è®ç¹å®çéµä»¶å®¢æ¶ç«¯æ£å¸¸ç¼éè£ä¸ã + + - ä½ ç¢ºå®ä½ çè£ä¸æ²æèåçé¯èª¤åï¼æ¨æè©²å§çµééscripts/checkpatch.plæª¢æ¥ + è£ä¸ç¨åºï¼ä¸¦è§£æ±ºå®æåºçåé¡ãè«è¨ä½ï¼checkpatch.plï¼éç¶é«ç¾äºå°å §æ ¸è£ä¸ + æè©²æ¯ä»éº¼æ¨£ç大éæèï¼ä½å®ä¸¦ä¸æ¯æ¨è°æãå¦æä¿®å¾©checkpatch.pl給çå顿 + 使代碼è®å¾æ´ç³ï¼è«ä¸è¦é樣åã + +è£ä¸æå§çµä»¥ç´ææ¬å½¢å¼ç¼éãè«ä¸è¦å°å®åä½ç²éä»¶ç¼éï¼é使å¾å¯©é±è å¨çè¦ä¸æ´é£ +å¼ç¨è£ä¸çé¨åãç¸åï¼åªéå°è£ä¸ç´æ¥æ¾å°æ¨çæ¶æ¯ä¸ã + +å¯åºè£ä¸æï¼éè¦çæ¯å°å¯æ¬ç¼é給任ä½å¯è½æèè¶£ç人ãèå ¶ä»ä¸äºé ç®ä¸åï¼å §æ ¸ +é¼åµäººåçè³é¯èª¤å°ç¼ééå¤ç坿¬ï¼ä¸è¦åå®ç¸éäººå¡æçå°æ¨å¨éµä»¶å表ä¸çç¼å¸ã +å°¤å ¶æ¯ï¼å¯æ¬æç¼éè³ï¼ + + - åå½±é¿å系統çç¶è·äººå¡ãå¦åæè¿°ï¼ç¶è·äººå¡æä»¶æ¯æ¥æ¾éäºäººå¡çé¦é¸å°æ¹ã + + - å ¶ä»å¨åä¸é åå·¥ä½çéç¼äººå¡ï¼å°¤å ¶æ¯é£äºç¾å¨å¯è½å¨é£è£¡å·¥ä½çéç¼äººå¡ãä½¿ç¨ + gitæ¥çéæèª°ä¿®æ¹äºæ¨æ£å¨èççæä»¶ï¼é徿幫å©ã + + - 妿æ¨å°æé¯èª¤å ±åæåè½è«æ±ååºé¿æï¼ä¹å¯ä»¥æéåå§ç¼é人ã + + - å°å¯æ¬ç¼éå°ç¸ééµä»¶åè¡¨ï¼æè è¥ç¡ç¸éå表ï¼åç¼éå°linux-kernelå表ã + + - å¦ææ¨æ£å¨ä¿®å¾©ä¸å缺é·ï¼è«èæ ®è©²ä¿®å¾©æ¯å¦æé²å ¥ä¸ä¸åç©©å®æ´æ°ã妿æ¯éæ¨£ï¼ + è£ä¸å¯æ¬ä¹æç¼å°stable@vger.kernel.org ãå¦å¤ï¼å¨è£ä¸æ¬èº«çæ¨ç±¤ä¸æ·»å ä¸å + ãCc: stable@vger.kernel.orgãï¼éå°ä½¿ç©©å®çåéå¨ä¿®å¾©é²å ¥ä¸»ç·ææ¶å°éç¥ã + +ç¶ç²ä¸åè£ä¸é¸ææ¥æ¶è æï¼æå¥½æ¸ æ¥ä½ èªç²èª°æçµææ¥åéåè£ä¸ä¸¦å°å ¶åä½µãéç¶ +å¯ä»¥å°è£ä¸ç´æ¥ç¼çµ¦Linus Torvalds並è®ä»åä½µï¼ä½éå¸¸æ æ³ä¸ä¸æé樣åãLinuså¾ +å¿ï¼ä¸¦ä¸æå系統ç¶è·äººå¡è² 責ç£è¦å §æ ¸çç¹å®é¨åãéå¸¸æ¨æå¸æç¶è·äººå¡åä½µæ¨ç +è£ä¸ãå¦ææ²ææé¡¯çç¶è·äººå¡ï¼Andrew Mortonéå¸¸æ¯æå¾çè£ä¸æ¥æ¶è ã + +è£ä¸éè¦å¥½ç主é¡è¡ãè£ä¸ä¸»é¡è¡çè¦ç¯æ ¼å¼å¦ä¸ï¼ + +:: + + [PATCH nn/mm] subsys: one-line description of the patch + +å ¶ä¸ãnnãæ¯è£ä¸çåºèï¼ãmmãæ¯ç³»åä¸è£ä¸ç總æ¸ï¼ãsubsysãæ¯åå½±é¿å系統ç +å稱ãç¶ç¶ï¼ä¸åå®ç¨çè£ä¸å¯ä»¥çç¥nn/mmã + +å¦ææ¨æä¸ç³»åéè¦çè£ä¸ï¼é£éº¼é常ç¼éä¸åç°¡ä»ä½ç²ç¬¬ãé¨åãä¸éï¼éåç´å® +ä¸¦æ²æå¾å°æ®ééµå¾ªï¼å¦ææ¨ä½¿ç¨å®ï¼è«è¨ä½ç°¡ä»ä¸çä¿¡æ¯ä¸æé²å ¥å §æ ¸è®æ´æ¥èªã +å æ¤ï¼è«ç¢ºä¿è£ä¸æ¬èº«å ·æå®æ´çè®æ´æ¥èªä¿¡æ¯ã + +ä¸è¬ä¾èªªï¼å¤é¨åè£ä¸ç第äºé¨ååå¾çºé¨åæä½ç²å°ç¬¬ä¸é¨åçåè¦ç¼éï¼ä»¥ä¾¿å®å +卿¥æ¶ç«¯é½é£æ¥å¨ä¸èµ·ãågitåcoilt鿍£çå·¥å ·æå½ä»¤ï¼å¯ä»¥ééé©ç¶çç·ç¨ç¼é +ä¸çµè£ä¸ã使¯ï¼å¦ææ¨æä¸é·ä¸²è£ä¸ï¼ä¸¦æ£ä½¿ç¨gitï¼è«ä¸è¦ä½¿ç¨â-chain-reply-to +é¸é ï¼ä»¥é¿å åµå»ºéæ·±çåµå¥ã + diff --git a/Documentation/translations/zh_TW/process/6.Followthrough.rst b/Documentation/translations/zh_TW/process/6.Followthrough.rst new file mode 100644 index 0000000000000..4af782742db38 --- /dev/null +++ b/Documentation/translations/zh_TW/process/6.Followthrough.rst @@ -0,0 +1,156 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/6.Followthrough.rst <development_followthrough>` + +:Translator: + + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + +:æ ¡è¯: + + 峿³æ Wu XiangCheng <bobwxc@email.cn> + è¡çæ Hu Haowen <src.res@email.cn> + +.. _tw_development_followthrough: + +è·é² +==== + +æ¤æï¼æ¨å·²ç¶éµå¾ªäºå°ç®åç²æ¢çµ¦åºçæå°æ¹éï¼ä¸¦ä¸ï¼é¨èæ¨èªå·±çå·¥ç¨æè½çå¢å ï¼ +å·²ç¶ç¼å¸äºä¸ç³»åå®ç¾çè£ä¸ãå³ä½¿æ¯ç¶é©è±å¯çå §æ ¸éç¼äººå¡ä¹è½ç¯çæå¤§é¯èª¤ä¹ä¸ +æ¯ï¼èªç²ä»åçå·¥ä½ç¾å¨å·²ç¶å®æäºãäºå¯¦ä¸ï¼ç¼å¸è£ä¸æå³èé²å ¥æµç¨çä¸ä¸åéæ®µï¼ +å¯è½ééè¦åå¾å¤å·¥ä½ã + +ä¸åè£ä¸å¨é¦æ¬¡ç¼å¸æå°±é常åºè²ãæ²ææ¹é²çé¤å°ï¼éæ¯å¾ç½è¦çãå §æ ¸éç¼æµç¨å·² +èªèå°éä¸äºå¯¦ï¼å æ¤å®é常注éå°å·²ç¼å¸ä»£ç¢¼çæ¹é²ãä½ç²ä»£ç¢¼çä½è ï¼æ¨æè©²è +å §æ ¸ç¤¾ååä½ï¼ä»¥ç¢ºä¿æ¨ç代碼符åå §æ ¸çè³ªéæ¨æºã妿ä¸åèéåéç¨ï¼å¾å¯è½æ +ç¡æ³å°è£ä¸åä½µå°ä¸»ç·ä¸ã + +è審é±è åä½ +------------ + +ä»»ä½æç¾©ä¸çè£ä¸é½æå°è´å ¶ä»éç¼äººå¡å¨å¯©æ¥ä»£ç¢¼æç¼è¡¨å¤§éè©è«ãå°æ¼è¨±å¤éç¼ +人å¡ä¾èªªï¼è審é±äººå¡åä½å¯è½æ¯å §æ ¸éç¼éç¨ä¸æä»¤äººçççé¨åã使¯å¦æä½ +è¨ä½ä¸äºäºæ ï¼çæ´»æè®å¾å®¹æå¾å¤ï¼ + + - å¦æä½ å·²ç¶å¾å¥½å°è§£éäºä½ çè£ä¸ï¼å¯©é±äººå¡æçè§£å®çå¹å¼ï¼ä»¥åç²ä»éº¼ä½ æ + è²»ç¡å¿æå»å¯«å®ã使¯éå並ä¸è½é»æ¢ä»åæåºä¸ååºæ¬çåé¡ï¼å¨äºå¹´æåå¹´å¾ + ç¶è·å«ææ¤ä»£ç¢¼çå §æ ¸ææéº¼æ¨£ï¼ä½ å¯è½è¢«è¦æ±ååºçè¨±å¤æ¹è®ââå¾ç·¨ç¢¼é¢¨æ ¼ç + 調æ´å°å¤§éçé寫ââé½ä¾èªæ¼å°Linuxççè§£ï¼å³å¾ç¾å¨èµ·åå¹´å¾ï¼Linuxä»å° + å¨éç¼ä¸ã + + - ä»£ç¢¼å¯©æ¥æ¯ä¸é è±è¦çå·¥ä½ï¼éæ¯ä¸é ç¸å°ååä¸è¨å¥½çå·¥ä½ï¼äººåè¨å¾èª°ç·¨å¯«äº + å §æ ¸ä»£ç¢¼ï¼ä½å°æ¼é£äºå¯©æ¥å®ç人ä¾èªªï¼å¹¾ä¹æ²æä»éº¼é·ä¹ çåè²ãå æ¤ï¼å¯©é± + 人å¡å¯è½æè®å¾æ´èºï¼å°¤å ¶æ¯ç¶ä»åçå°å樣çé¯èª¤è¢«ä¸éåä¸éå°ç¯ä¸æã妿 + ä½ å¾å°äºä¸åçèµ·ä¾æ¤æã侮辱æå®å ¨åç¯ä½ çè©è«ï¼è«æå¶ä»¥å樣æ¹å¼åæçè¡åã + ä»£ç¢¼å¯©æ¥æ¯éæ¼ä»£ç¢¼çï¼è䏿¯éæ¼äººçï¼ä»£ç¢¼å¯©é±äººå¡ä¸æè¦ªèªæ»ææ¨ã + + - 忍£ï¼ä»£ç¢¼å¯©é±äººå¡ä¹ä¸æ³ä»¥ç§ç²ä½ å±ä¸»çå©çç²ä»£å¹ä¾å®£å³ä»åå±ä¸»çè°ç¨ã + å §æ ¸éç¼äººå¡é叏叿ä»å¾å¹¾å¹´è½å¨å §æ ¸ä¸å·¥ä½ï¼ä½ä»åæç½ä»åçå±ä¸»å¯è½ææ¹ + è®ãä»åççï¼å¹¾ä¹æ¯«ç¡ä¾å¤å°ï¼è´åæ¼åµé ä»åæè½åå°çæå¥½çå §æ ¸ï¼ä»å並 + æ²æè©¦å給å±ä¸»çç«¶çå°æé æä¸é©ã + +ææéäºæ¸æ ¹çµåºå°±æ¯ï¼ç¶å¯©é±è 忍ç¼éè©è«æï¼æ¨éè¦æ³¨æä»åæ£å¨é²è¡çæè¡ +è©è«ãä¸è¦è®ä»åçè¡¨éæ¹å¼æä½ èªå·±çé©å²é»æ¢æ¤äºãç¶ä½ å¨ä¸åè£ä¸ä¸å¾å°è©è« +æï¼è±é»æéå»çè§£è©è«äººæ³èªªä»éº¼ã妿å¯è½ç話ï¼è«ä¿®è¦å¯©é±è è¦æ±æ¨ä¿®å¾©çå § +容ãç¶å¾åè¦å¯©é±è ï¼è¬è¬ä»åï¼ä¸¦æè¿°ä½ å°å¦ä½åçä»åçåé¡ã + +è«æ³¨æï¼æ¨ä¸å¿ åæå¯©é±è 建è°çæ¯åæ´æ¹ã妿æ¨èªç²å¯©é±è èª¤è§£äºæ¨ç代碼ï¼è« +è§£éå°åºç¼çäºä»éº¼ã妿æ¨å°å»ºè°çæ´æ¹ææè¡ä¸çç°è°ï¼è«æè¿°å®ä¸¦èææ¨å°è©² +åé¡çè§£æ±ºæ¹æ¡æ¯æ£ç¢ºçãå¦æä½ çè§£éæéçï¼å¯©é±è ææ¥åçãä¸éï¼å¦æä½ ç +è§£éèæç¼ºä¹èªªæåï¼å°¤å ¶æ¯ç¶å ¶ä»äººéå§åæå¯©ç¨¿äººçè§é»æï¼è«è±äºæééæ°èæ ® +ä¸ä¸ãä½ å¾å®¹æå°èªå·±è§£æ±ºåé¡çæ¹æ³è¦èä¸è¦ï¼ä»¥è³æ¼ä½ æ²ææèå°æäºæ±è¥¿å®å ¨ +æ¯é¯èª¤çï¼æè ä½ çè³æ²æè§£æ±ºæ£ç¢ºçåé¡ã + +Andrew Morton建è°ï¼æ¯ä¸å䏿å°è´ä»£ç¢¼æ´æ¹ç審é±è©è«é½æè©²ç¢çä¸åé¡å¤ç代碼 +注éï¼éå¯ä»¥å¹«å©æªä¾ç審é±äººå¡é¿å ç¬¬ä¸æ¬¡åºç¾çåé¡ã + +ä¸åè´å½çé¯èª¤æ¯å¿½è¦è©è«ï¼å¸æå®åææ¶å¤±ãå®åä¸æèµ°çã妿æ¨å¨æ²æå°ä¹å +æ¶å°çè©è«ååºé¿æçæ æ³ä¸éæ°ç¼å¸ä»£ç¢¼ï¼é£éº¼å¾å¯è½æç¼ç¾è£ä¸æ¯«ç¡ç¨èã + +說å°éæ°ç¼å¸ä»£ç¢¼ï¼è«è¨ä½ï¼å¯©é±è 䏿è¨ä½æ¨ä¸æ¬¡ç¼å¸çä»£ç¢¼çææç´°ç¯ãå æ¤ï¼ +æé審é±äººå¡ä»¥åæåºçåé¡ä»¥åæ¨å¦ä½èçéäºåé¡ç¸½æ¯ä¸å好主æï¼è£ä¸è®æ´ +æ¥èªæ¯æä¾æ¤é¡ä¿¡æ¯ç好尿¹ã審é±è ä¸å¿ æç´¢åè¡¨æªæ¡ä¾çæä¸æ¬¡æèªªçå §å®¹ï¼ +妿æ¨å¹«å©ä»åç´æ¥éå§ï¼ç¶ä»åéæ°æ¥çæ¨ç代碼æï¼å¿æ ææ´å¥½ã + +å¦æä½ å·²ç¶è©¦èåæ£ç¢ºçäºæ ï¼ä½äºæ ä»ç¶æ²æé²å±å¢ï¼å¤§å¤æ¸æè¡ä¸çåæ§é½å¯ä»¥ +ééè¨è«ä¾è§£æ±ºï¼ä½ææäººåä»éè¦ååºæ±ºå®ãå¦æä½ ççèªç²éåæ±ºå®å°ä½ ä¸å©ï¼ +ä½ å¯ä»¥è©¦èåææ´é«æ¬åç人ä¸è¨´ãå°æ¼æ¬æï¼æ´é«æ¬åçäººæ¯ Andrew Morton ã +Andrew å¨å §æ ¸éç¼ç¤¾åä¸é常åå°æ¬ï¼ä»ç¶å¸¸ç²ä¼¼ä¹è¢«çµæé»å¡çäºæ æ¸ éãå管 +妿¤ï¼ä¸æè¼æå°±ç´æ¥æ¾ Andrew ï¼ä¹ä¸æå¨ææå ¶ä»æ¿ä»£æ¹æ¡é½è¢«å試ä¹åæ¾ä»ã +ç¶ç¶ï¼è¨ä½ï¼ä»ä¹å¯è½ä¸åæä½ çæè¦ã + +æ¥ä¸ä¾æç¼çä»éº¼ +---------------- + +妿ä¸åè£ä¸è¢«èªç²é©åæ·»å å°å §æ ¸ä¸ï¼ä¸¦ä¸å¤§å¤æ¸å¯©æ¥åé¡å¾å°è§£æ±ºï¼ä¸ä¸æ¥é常 +æ¯é²å ¥å系統ç¶è·äººå¡ç樹ä¸ã工使¹å¼å å系統èç°ï¼æ¯åç¶è·äººå¡é½æèªå·±ç +工使¹å¼ãç¹å¥æ¯å¯è½æä¸æ¢ä¸æ£µæ¨¹ââä¹è¨±ä¸æ£µæ¨¹å°éç¨æ¼è¨åä¸ä¸ååä½µçªå£ç +è£ä¸ï¼å¦ä¸æ£µæ¨¹ç¨æ¼é·æå·¥ä½ã + +å°æ¼æç¨å°ä¸å±¬æ¼æé¡¯å系統樹ï¼ä¾å¦å §å管çä¿®è£ç¨åºï¼çååçä¿®è£ç¨åºï¼é»èªæ¨¹ +é叏䏿º¯å°-mmãå½±é¿å¤åå系統çè£ä¸ä¹å¯ä»¥æçµé²å ¥-mm樹ã + +å å«å¨å系統樹ä¸å¯ä»¥æé«è£ä¸çå¯è¦æ§ãç¾å¨ï¼ä½¿ç¨è©²æ¨¹çå ¶ä»éç¼äººå¡å°é»èªç² +å¾è£ä¸ãå系統樹é常ä¹ç²Linuxæä¾æ¯æï¼ä½¿å ¶å §å®¹å°æ´åéç¼ç¤¾åå¯è¦ãå¨éä¸é» +ä¸ï¼æ¨å¾å¯è½æå¾ä¸çµæ°ç審é±è é£è£¡å¾å°æ´å¤çè©è«ï¼éäºè©è«éè¦åä¸ä¸è¼ªé£æ¨£ +å¾å°åæã + +å¨éæä¹æç¼çé»ä»éº¼ï¼éåæ±ºæ¼ä½ çè£ä¸çæ§è³ªï¼æ¯å¦èå ¶ä»äººæ£å¨åçå·¥ä½ç¼ç +è¡çªã卿å£çæ æ³ä¸ï¼å´éçè£ä¸è¡çªå¯è½æå°è´ä¸äºå·¥ä½è¢«æ±ç½®ï¼ä»¥ä¾¿å©é¤çè£ä¸ +å¯ä»¥æå½¢ä½µå並ãå¦ä¸äºæåï¼è¡çªè§£æ±ºå°æ¶åå°èå ¶ä»éç¼äººå¡åä½ï¼å¯è½éæ +卿¨¹ä¹éç§»åä¸äºè£ä¸ï¼ä»¥ç¢ºä¿ææçæç¨é½æ¯ä¹¾æ·¨çãéé å·¥ä½å¯è½æ¯ä¸ä»¶çè¦ç +äºæ ï¼ä½ä¹éæ ¶å¹¸ç¾å¨ç幸ç¦ï¼å¨linux-next樹åºç¾ä¹åï¼éäºè¡çªé常åªå¨åä½µçªå£ +ä¸åºç¾ï¼å¿ é è¿ é解決ãç¾å¨å¯ä»¥å¨åä½µçªå£æéä¹åç空éæé解決éäºåé¡ã + +ææä¸æ¥ï¼å¦æä¸åé å©ï¼æ¨å°ç»é並çå°æ¨çè£ä¸å·²ç¶åä½µå°ä¸»ç·å §æ ¸ä¸ãç¥è³ä½ ï¼ +ç¶èï¼ä¸æ¦æ ¶ç¥å®äºï¼ä¸¦ä¸æ¨å·²ç¶å°èªå·±æ·»å å°ç¶è·äººå¡æä»¶ä¸ï¼ï¼å°±ä¸å®è¦è¨ä½ +ä¸åéè¦çå°äºå¯¦ï¼å·¥ä½ä»ç¶æ²æå®æãä½µå ¥ä¸»ç·ä¹å¸¶ä¾äºå®çææ°ã + +é¦å ï¼è£ä¸çå¯è¦æ§å次æé«ãå¯è½ææä»¥åä¸ç¥ééåè£ä¸çéç¼è çæ°ä¸è¼ªè©è«ã +忽ç¥å®åå¯è½å¾æèªæåï¼å ç²æ¨ç代碼ä¸ååå¨ä»»ä½è¢«åä½µçåé¡ã使¯ï¼è¦æµå¶ +éç¨®èªæï¼æ¨ä»ç¶éè¦å°æåé¡æå»ºè°çéç¼äººå¡ä½åºé¿æã + +ä¸éï¼æ´éè¦çæ¯ï¼å°ä»£ç¢¼å å«å¨ä¸»ç·ä¸æå°ä»£ç¢¼äº¤çµ¦æ´å¤çä¸äºæ¸¬è©¦äººå¡ãå³ä½¿æ¨ +ç²å°æªå¯ç¨çç¡¬é«æä¾äºé© åç¨åºï¼æ¨ä¹æé©è¨æ¼æå¤å°äººæå°æ¨ç代碼æ§å»ºå°å §æ ¸ +ä¸ãç¶ç¶ï¼å¦æææ¸¬è©¦äººå¡ï¼ä¹å¯è½ææé¯èª¤å ±åã + +æç³ç³çé¯èª¤å ±åæ¯åæ¸ãå¦æä½ çè£ä¸å°è´åæ¸ï¼ä½ æç¼ç¾å¤å°è®ä½ ä¸èæçç¼çç¯ +èä½ ï¼åæ¸éè¦å快修復ã妿æ¨ä¸é¡ææç¡æ³ä¿®å¾©åæ¸ï¼å ¶ä»äººé½ä¸æç²æ¨ä¿®å¾©ï¼ï¼ +é£éº¼å¨ç©©å®æå §ï¼æ¨çè£ä¸å¹¾ä¹è¯å®æè¢«ç§»é¤ãé¤äºå¦å®æ¨ç²ä½¿è£ä¸é²å ¥ä¸»ç·æåç +ææå·¥ä½ä¹å¤ï¼å¦æç±æ¼æªè½ä¿®å¾©åæ¸èåæ¶è£ä¸ï¼å¾å¯è½æä½¿å°ä¾ç工使´é£è¢«åä½µã + +å¨èçå®ä»»ä½åæ¸ä¹å¾ï¼å¯è½éæå ¶ä»æ®é缺é·éè¦èçãç©©å®ææ¯ä¿®å¾©éäºé¯èª¤ä¸¦ +確ä¿ä»£ç¢¼å¨ä¸»ç·å §æ ¸çæ¬ä¸ç馿¬¡ç¼å¸åå¯è½å¯é çæå¥½æ©æãæä»¥ï¼è«åæé¯èª¤ +å ±åï¼ä¸¦åå¯è½è§£æ±ºåé¡ãéå°±æ¯ç©©å®æçç®çï¼ä¸æ¦è§£æ±ºäºèè£ä¸çä»»ä½åé¡ï¼å°± +å¯ä»¥éå§ç¡æ åµå»ºæ°è£ä¸ã + +å¥å¿äºï¼éæå ¶ä»ç¯é»ä¹å¯è½æåµå»ºç¼ºé·å ±åï¼ä¸ä¸å主ç·ç©©å®çæ¬ï¼ç¶èåçç¼è¡ +å鏿å 嫿¨è£ä¸çå §æ ¸çæ¬æççãç¹¼çºé¿æéäºå ±åæ¯æ¨å·¥ä½çåºæ¬ç´ é¤ã使¯ +妿éä¸è½æä¾è¶³å¤ çåæ©ï¼é£éº¼ä¹éè¦èæ ®ï¼éç¼ç¤¾åæè¨ä½é£äºå¨åä½µå¾å°ä»£ç¢¼ +失å»èè¶£çéç¼äººå¡ãä¸ä¸æ¬¡ä½ ç¼å¸è£ä¸æï¼ä»åæä»¥ä½ 以å¾ä¸ææçºç¶è·å®ç²åæ +ä¾è©ä¼°å®ã + +å ¶ä»å¯è½ç¼ççäºæ +------------------ + +æå¤©ï¼ç¶ä½ æéä½ çéµä»¶å®¢æ¶ç«¯æï¼çå°æäººçµ¦ä½ å¯äºä¸å代碼è£ä¸ãç¢ç«ï¼éæ¯ +è®æ¨çä»£ç¢¼å ¬éåå¨ç好èä¹ä¸ã妿æ¨åæéåè£ä¸ï¼æ¨å¯ä»¥å°å®è½ç¼çµ¦å系統 +ç¶è·äººå¡ï¼ç¢ºä¿å å«ä¸åæ£ç¢ºçFrom:è¡ï¼éæ¨£å±¬æ§æ¯æ£ç¢ºçï¼ä¸¦æ·»å ä¸åæ¨èªå·±ç +signoff ï¼ï¼æè å復ä¸å Acked-by: è®åå§ç¼éè åä¸ç¼éå®ã + +妿æ¨ä¸åæè£ä¸ï¼è«ç¦®è²å°å復ï¼è§£éåå ã妿å¯è½ç話ï¼å訴ä½è éè¦ååªäº +æ´æ¹æè½è®æ¨æ¥åè£ä¸ãå併代碼ç編寫è åç¶è·è æåå°çè£ä¸ç確åå¨èä¸å®ç +é»åï¼ä½å æ¤èå·²ãå¦æä½ è¢«èªç²ä¸å¿ è¦çé»ç¤äºå¥½çå·¥ä½ï¼é£éº¼éäºè£ä¸æçµæ +ç¹éä½ ä¸¦é²å ¥ä¸»ç·ãå¨Linuxå §æ ¸ä¸ï¼æ²æäººå°ä»»ä½ä»£ç¢¼ææçµå°ç妿±ºæ¬ãå¯è½é¤ +äºLinusã + +å¨é常ç½è¦çæ æ³ä¸ï¼æ¨å¯è½æçå°å®å ¨ä¸åçæ±è¥¿ï¼å¦ä¸åéç¼äººå¡ç¼å¸äºéå°æ¨ +çåé¡çä¸åè§£æ±ºæ¹æ¡ãå¨éæï¼å ©åè£ä¸ä¹ä¸å¯è½ä¸æè¢«åä½µï¼ãæçè£ä¸é¦å +ç¼å¸ãä¸è¢«èªç²æ¯ä¸å令人信æçæè¡è«æã妿æå¥äººçè£ä¸å代äºä½ çè£ä¸èé² +å ¥äºä¸»ç·ï¼é£éº¼åªæä¸ç¨®æ¹æ³å¯ä»¥åæä½ ï¼å¾é«èä½ çåé¡è§£æ±ºäºï¼è«ç¹¼çºå·¥ä½å§ã +以é種æ¹å¼ææäººç工使¨å°ä¸éå¯è½å°è´å·å¿åæ°£é¤ï¼ä½æ¯ç¤¾åæè¨ä½ä½ çåæï¼ +å³ä½¿å¾ä¹ 以å¾ä»åå·²ç¶å¿è¨äºèª°çè£ä¸çæ£è¢«åä½µã + diff --git a/Documentation/translations/zh_TW/process/7.AdvancedTopics.rst b/Documentation/translations/zh_TW/process/7.AdvancedTopics.rst new file mode 100644 index 0000000000000..3de093d0f1708 --- /dev/null +++ b/Documentation/translations/zh_TW/process/7.AdvancedTopics.rst @@ -0,0 +1,137 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/7.AdvancedTopics.rst <development_advancedtopics>` + +:Translator: + + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + +:æ ¡è¯: + + 峿³æ Wu XiangCheng <bobwxc@email.cn> + è¡çæ Hu Haowen <src.res@email.cn> + +.. _tw_development_advancedtopics: + +é«ç´ä¸»é¡ +======== + +ç¾å¨ï¼å¸ææ¨è½å¤ ææ¡éç¼æµç¨ç工使¹å¼ãç¶èï¼éææ´å¤çæ±è¥¿è¦å¸ï¼æ¬ç¯å°ä»ç´¹ +ä¸äºä¸»é¡ï¼éäºä¸»é¡å°å¸ææç²Linuxå §æ ¸éç¼éç¨å¸¸è¦é¨åçéç¼äººå¡æå¹«å©ã + +使ç¨Git管çè£ä¸ +--------------- + +å §æ ¸ä½¿ç¨åå¸å¼çæ¬æ§å¶å§æ¼2002å¹´åï¼ç¶æLinus馿¬¡éå§ä½¿ç¨å°æçBitkeeperæç¨ +ç¨åºãéç¶BitKeeperåå¨çè°ï¼ä½å®æé«ç¾çè»é«çæ¬ç®¡çæ¹æ³å»è¯å®ä¸æ¯ãåå¸å¼ +çæ¬æ§å¶å¯ä»¥ç«å³å éå §æ ¸éç¼é ç®ãç¾å¨æå¥½å¹¾ç¨®å è²»çBitKeeperæ¿ä»£åã +ä½ç¡è«å¥½å£ï¼å §æ ¸é ç®é½å·²ç¶é¸æäºGitä½ç²å ¶å·¥å ·ã + +使ç¨Git管çè£ä¸å¯ä»¥ä½¿éç¼äººå¡ççæ´»æ´å è¼é¬ï¼å°¤å ¶æ¯é¨èè£ä¸æ¸éçå¢é·ãGitä¹ +æå ¶ç²ç³çéè§åä¸å®çå±éªæ§ï¼å®æ¯ä¸åå¹´è¼å強大çå·¥å ·ï¼ä»ç¶å¨å ¶éç¼äººå¡å®å +ä¸ãæ¬ææªä¸æè©¦åææè®è å¦ä½ä½¿ç¨gitï¼éææ¯åå·¨é·çææªãç¸åï¼é裡çéé» +å°æ¯Gitå¦ä½ç¹å¥é©åå §æ ¸éç¼éç¨ãæ³è¦å å¿«ç¨Gité度çéç¼äººå¡å¯ä»¥å¨ä»¥ä¸ç¶²ç«ä¸ +æ¾å°æ´å¤ä¿¡æ¯ï¼ + + https://git-scm.com/ + + https://www.kernel.org/pub/software/scm/git/docs/user-manual.html + +åæç¶²ä¸ä¹è½æ¾å°åç¨®åæ¨£çæç¨ã + +å¨å試使ç¨å®çæè£ä¸ä¾ä»äººä½¿ç¨ä¹åï¼ç¬¬ä¸è¦åæ¯é±è®ä¸è¿°ç¶²é ï¼å°Gitç工使¹å¼ +æä¸å紮實çäºè§£ã使ç¨Gitçéç¼äººå¡æè½é²è¡æå主ç·åå²åº«ç坿¬ï¼æ¥è©¢ä¿®è¨ +æ·å²ï¼æäº¤å°æ¨¹çæ´æ¹ï¼ä½¿ç¨åæ¯çæä½ãäºè§£Gitç¨æ¼é寫æ·å²çå·¥å ·ï¼å¦rebaseï¼ +ä¹å¾æç¨ãGitæèªå·±çè¡èªåæ¦å¿µï¼Gitçæ°ç¨æ¶æè©²äºè§£å¼ç¨ãé ç¨åæ¯ãç´¢å¼ã +å¿«é²åä½µãæ¨æã游é¢é çãä¸éå§å¯è½æé»å人ï¼ä½éäºæ¦å¿µä¸é£ééä¸é»å¸ç¿ä¾ +çè§£ã + +使ç¨gitçæééé»åéµä»¶æäº¤çè£ä¸æ¯æé«é度çä¸åå¾å¥½çç·´ç¿ã + +ç¶æ¨æºå好éå§å»ºç«Git樹ä¾å ¶ä»äººæ¥çæï¼ç¡çéè¦ä¸åå¯ä»¥å¾ä¸æåç伺æå¨ã +å¦ææ¨æä¸åå¯ä»¥è¨ªåç¶²é網路ç系統ï¼é£éº¼ä½¿ç¨git-daemonè¨ç½®é樣ç伺æå¨ç¸å° +ç°¡å®ãåæï¼å è²»çå ¬å ±è¨ç®¡ç¶²ç«ï¼ä¾å¦githubï¼ä¹éå§åºç¾å¨ç¶²çµ¡ä¸ãæççéç¼ +人å¡å¯ä»¥å¨kernel.orgä¸ç²å¾ä¸å帳æ¶ï¼ä½éäºå¸³æ¶ä¸¦ä¸å®¹æå¾å°ï¼æ´å¤æéä¿¡æ¯ï¼ +è«åé± https://kernel.org/faq/ ã + +æ£å¸¸çGit工使µç¨æ¶åå°è¨±å¤åæ¯ç使ç¨ãæ¯ä¸æ¢éç¼ç·é½å¯ä»¥åç²å®ç¨çãä¸»é¡ +忝ãï¼ä¸¦ç¨ç«ç¶è·ãGitç忝å¾å®¹æä½¿ç¨ï¼æ²æçç±ä¸ä½¿ç¨å®åãèä¸ï¼å¨ä»»ä½ +æ æ³ä¸ï¼æ¨é½ä¸æè©²å¨ä»»ä½æ¨æç®è®å ¶ä»äººå¾ä¸æåç忝ä¸é²è¡éç¼ãæè©²å°å¿å° +åµå»ºå ¬éå¯ç¨ç忝ï¼ç¶éç¼åæ¯èæ¼å®æ´çæ 並已æºå好æ(è䏿¯ä¹åï¼æåä½µ +éç¼åæ¯çè£ä¸ã + +Gitæä¾äºä¸äºå¼·å¤§çå·¥å ·ï¼å¯ä»¥è®æ¨é寫éç¼æ·å²ãä¸å䏿¹ä¾¿çè£ä¸ï¼æ¯å¦èªªï¼ +ä¸åæç ´äºåæ³çè£ä¸ï¼æè æå ¶ä»ä¸äºæé¡¯ç缺é·ï¼å¯ä»¥å¨é©ç¶çä½ç½®ä¿®å¾©ï¼æè +å®å ¨å¾æ·å²ä¸æ¶å¤±ãä¸åè£ä¸ç³»åå¯ä»¥è¢«é寫ï¼å°±å¥½å宿¯å¨ä»å¤©ç主ç·ä¸å¯«ç䏿¨£ï¼ +å³ä½¿ä½ å·²ç¶è±äºå¹¾åæçæéå¨å¯«å®ãå¯ä»¥éæå°å°æ´æ¹å¾ä¸å忝è½ç§»å°å¦ä¸å +忝ãççãææºå°ä½¿ç¨gitä¿®æ¹æ·å²çè½åå¯ä»¥å¹«å©åµå»ºå顿´å°ç乾淨è£ä¸éã + +ç¶èï¼é度使ç¨é種åè½å¯è½æå°è´å ¶ä»åé¡ï¼èä¸å å æ¯å°åµå»ºå®ç¾é ç®æ·å²ç +ç°¡å®ç¡è¿·ãé寫æ·å²å°é寫該æ·å²ä¸å å«çæ´æ¹ï¼å°ç¶é測試ï¼å¸æå¦æ¤ï¼çå §æ ¸æ¨¹ +è®ç²æªç¶æ¸¬è©¦çå §æ ¸æ¨¹ã餿¤ä¹å¤ï¼å¦æéç¼äººå¡æ²æå ±äº«é ç®æ·å²ï¼ä»åå°±ç¡æ³ +è¼é¬å°åä½ï¼å¦ææ¨é寫äºå ¶ä»éç¼äººå¡æå ¥ä»ååå²åº«çæ·å²ï¼æ¨å°ä½¿éäºéç¼ +人å¡ççæ´»æ´å å°é£ãå æ¤ï¼é裡æä¸åç°¡å®çç¶é©æ³åï¼è¢«å°åºå°å ¶ä»å°æ¹çæ·å² +卿¤å¾é常被èªç²æ¯ä¸å¯è®çã + +å æ¤ï¼ä¸æ¦å°ä¸çµæ´æ¹æ¨éå°å ¬éå¯ç¨ç伺æå¨ä¸ï¼å°±ä¸æè©²é寫éäºæ´æ¹ãå¦ææ¨ +å試強å¶é²è¡ç¡æ³å¿«é²åä½µçæ´æ¹ï¼å³ä¸å ±äº«å䏿·å²è¨éçæ´æ¹ï¼ï¼Gitå°åè©¦å¼·å¶ +å·è¡æ¤è¦åãéå¯è½è¦è檢æ¥ï¼ææçè³éè¦é寫å°åºç樹ã卿¨¹ä¹éç§»åè®æ´é以 +é¿å linux-nextä¸çè¡çªå°±æ¯ä¸åä¾åãä½é種è¡ç²æè©²æ¯ç½è¦çãéå°±æ¯ç²ä»éº¼ +éç¼æè©²å¨ç§æåæ¯ä¸é²è¡ï¼å¿ è¦æå¯ä»¥é寫ï¼ä¸¦ä¸åªæå¨å ¬å ±åæ¯èæ¼åççè¼æ° +çæ ææè½ç§»å°å ¬å ±åæ¯ä¸çåå ä¹ä¸ã + +ç¶ä¸»ç·ï¼æå ¶ä»ä¸çµè®æ´æåºæ¼ç樹ï¼å鲿ï¼å¾å®¹æè該樹åä½µä»¥ä¿æé å å°ä½ã +å°æ¼ä¸åç§æç忝ï¼rebasing å¯è½æ¯ä¸åå¾å®¹æè·ä¸å¦ä¸æ£µæ¨¹çæ¹æ³ï¼ä½æ¯ä¸æ¦ +䏿£µæ¨¹è¢«å°åºå°å¤çï¼rebasingå°±ä¸å¯åäºã䏿¦ç¼çéç¨®æ æ³ï¼å°±å¿ é é²è¡å®å ¨ +åä½µï¼mergeï¼ãåä½µæææ¯å¾ææç¾©çï¼ä½æ¯éæ¼é »ç¹çåä½µæä¸å¿ è¦å°æ¾äºæ·å²ã +å¨éç¨®æ æ³ä¸å»ºè°çåæ³æ¯ä¸è¦é »ç¹åä½µï¼é常åªå¨ç¹å®çç¼å¸é»ï¼å¦ä¸»ç·-rcç¼å¸ï¼ +åä½µã妿æ¨å°ç¹å®çæ´æ¹æå°ç·å¼µï¼åå¯ä»¥å§çµå¨ç§æåæ¯ä¸å·è¡æ¸¬è©¦åä½µãå¨ +éç¨®æ æ³ä¸ï¼gitãrerereãå·¥å ·å¾æç¨ï¼å®è½è¨ä½åä½µè¡çªæ¯å¦ä½è§£æ±ºçï¼éæ¨£æ¨ +å°±ä¸å¿ éè¤ç¸åçå·¥ä½ã + +éæ¼Git鿍£çå·¥å ·çä¸åæå¤§çåè¦æ±æ¨æ¯ï¼è£ä¸å¾ä¸ååå²åº«å°å¦ä¸ååå²åº«ç +大éç§»å使å¾å¾å®¹æé·å ¥é¯èª¤å»ºè°çè®æ´ä¸ï¼éäºè®æ´é¿é審æ¥é·éé²å ¥ä¸»ç·ãç¶å § +æ ¸éç¼äººå¡çå°éç¨®æ æ³ç¼çæï¼ä»åå¾å¾ææå°ä¸é«èï¼å¨Gitæ¨¹ä¸æ¾ç½®æªå¯©é±æ +主é¡å¤çè£ä¸å¯è½æå½±é¿æ¨å°ä¾è®æ¨¹è¢«æåçè½åãå¼ç¨Linusç話: + +:: + + ä½ å¯ä»¥çµ¦æç¼è£ä¸ï¼ä½ç¶æå¾ä½ é£è£¡æåä¸åGitè£ä¸æï¼æéè¦ç¥éä½ æ¸ æ¥ + èªå·±å¨åä»éº¼ï¼æéè¦è½å¤ ç¸ä¿¡äºæ è *ç¡é* æåæª¢æ¥æ¯åå®ç¨çæ´æ¹ã + +ï¼http://lwn.net/articles/224135/ï¼ã + +ç²äºé¿å éç¨®æ æ³ï¼è«ç¢ºä¿çµ¦å®åæ¯ä¸çææè£ä¸é½èç¸é主é¡ç·å¯ç¸éï¼ãé© åç¨åº +修復ãåæ¯ä¸ææ´æ¹æ ¸å¿å §å管ç代碼ãèä¸ï¼æéè¦çæ¯ï¼ä¸è¦ä½¿ç¨Git樹ä¾ç¹é +審æ¥éç¨ã䏿çå°æ¨¹çæè¦ç¼å¸å°ç¸éçå表ä¸ï¼å¨å驿åè«æ±linux-nextä¸ +å å«è©²æ¨¹ã + +å¦æå ¶ä»äººéå§ç¼éè£ä¸ä»¥å å«å°æ¨ç樹ä¸ï¼ä¸è¦å¿è¨å¯©é±å®åãéè¦ç¢ºä¿æ¨ç¶è·æ£ç¢º +çä½è ä¿¡æ¯ï¼ git ãamãå·¥å ·å¨éæ¹é¢å徿好ï¼ä½æ¯å¦æè£ä¸ééç¬¬ä¸æ¹è½ç¼çµ¦æ¨ï¼ +æ¨å¯è½éè¦å¨è£ä¸ä¸æ·»å ãFrom:ãè¡ã + +è«æ±æåæï¼è«åå¿ æä¾ææç¸éä¿¡æ¯ï¼æ¨¹çä½ç½®ãè¦æåç忝以åæåå°å°è´ç +æ´æ¹ãå¨éæ¹é¢ git request-pull å½ä»¤é常æç¨ï¼å®å°æç §å ¶ä»éç¼äººå¡æææç +æ ¼å¼åè«æ±ï¼ä¸¦æª¢æ¥ä»¥ç¢ºä¿æ¨å·²è¨å¾å°éäºæ´æ¹æ¨éå°å ¬å ±ä¼ºæå¨ã + +審é±è£ä¸ +-------- + +ä¸äºè®è é¡¯ç¶æåå°å°æ¬ç¯èãé«ç´ä¸»é¡ãæ¾å¨ä¸èµ·ï¼å ç²å³ä½¿æ¯åéå§çå §æ ¸éç¼äººå¡ +ä¹æè©²å¯©é±è£ä¸ãç¶ç¶ï¼æ²ææ¯æ¥çå ¶ä»äººç¼å¸ç代碼æ´å¥½çæ¹æ³ä¾å¸ç¿å¦ä½å¨å §æ ¸ç°å¢ +ä¸ç·¨ç¨äºãæ¤å¤ï¼å¯©é±è æ°¸é ä¾ä¸ææ±ï¼éé審é±ä»£ç¢¼ï¼æ¨å¯ä»¥å°æ´åæµç¨ååºé大貢ç»ã + +審æ¥ä»£ç¢¼å¯è½æ¯ä¸å¯ä»¤äººççç忝ï¼ç¹å¥æ¯å°ä¸åæ°çå §æ ¸éç¼äººå¡ä¾èªªï¼ä»å +å¯è½æå°å ¬éè©¢å代碼æå°ç·å¼µï¼èéäºä»£ç¢¼æ¯ç±é£äºææ´å¤ç¶é©ç人ç¼å¸çãä¸éï¼ +å³ä½¿æ¯ææç¶é©çéç¼äººå¡ç·¨å¯«ç代碼ä¹å¯ä»¥å¾å°æ¹é²ãä¹è¨±å°ï¼ææï¼å¯©é±è æå¥½ +çå»ºè°æ¯ï¼æå¯©é±è©è«ç¶æåé¡è䏿¯æ¹è©ãè©¢åãå¨éæ¢è·¯å¾ä¸å¦ä½éæ¾éï¼ã +ç¸½æ¯æ¯èªªãé裡ç鿝é¯èª¤çãæ´å¥½ã + +ä¸åçéç¼äººå¡å°å¾ä¸åçè§åº¦å¯©æ¥ä»£ç¢¼ãé¨å人æä¸»è¦éæ³¨ä»£ç¢¼é¢¨æ ¼ä»¥åä»£ç¢¼è¡æ¯ +妿尾é¨ç©ºæ ¼ãå ¶ä»äººæä¸»è¦é注è£ä¸ä½ç²ä¸åæ´é«å¯¦ç¾çè®æ´æ¯å¦å°å §æ ¸æå¥½èã +åæä¹æäººææª¢æ¥æ¯å¦åå¨éåé¡ãå æ£§ä½¿ç¨é度ãå¯è½çå®å ¨åé¡ãå¨å ¶ä»å°æ¹ +ç¼ç¾ç代碼éè¤ãè¶³å¤ çææªãå°æ§è½çä¸å©å½±é¿ãç¨æ¶ç©ºéABIæ´æ¹çãææé¡å +çæª¢æ¥ï¼åªè¦å®åè½å¼å°æ´å¥½ç代碼é²å ¥å §æ ¸ï¼é½æ¯åæ¡è¿åå¼å¾çã + diff --git a/Documentation/translations/zh_TW/process/8.Conclusion.rst b/Documentation/translations/zh_TW/process/8.Conclusion.rst new file mode 100644 index 0000000000000..7572b17667d92 --- /dev/null +++ b/Documentation/translations/zh_TW/process/8.Conclusion.rst @@ -0,0 +1,74 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/8.Conclusion.rst <development_conclusion>` +:Translator: + + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + +:æ ¡è¯: + + 峿³æ Wu XiangCheng <bobwxc@email.cn> + è¡çæ Hu Haowen <src.res@email.cn> + +.. _tw_development_conclusion: + +æ´å¤ä¿¡æ¯ +======== + +éæ¼Linuxå §æ ¸éç¼åç¸é主é¡çä¿¡æ¯ä¾æºå¾å¤ãé¦å æ¯å¨å §æ ¸åå§ç¢¼åç¼ä¸æ¾å°ç +ææªç®éãé ç´ +:ref:`Documentation/translations/zh_TW/process/howto.rst <tw_process_howto>` +æä»¶æ¯ä¸åéè¦çèµ·é»ï¼ +:ref:`Documentation/translations/zh_TW/process/submitting-patches.rst <tw_submittingpatches>` +å :ref:`Documentation/translations/zh_TW/process/submitting-drivers.rst <tw_submittingdrivers>` +乿¯ææå §æ ¸éç¼äººå¡é½æè©²é±è®çå §å®¹ã許å¤å §é¨å §æ ¸API齿¯ä½¿ç¨kerneldocæ©å¶ +è¨éçï¼ãmake htmldocsãæãmake pdfdocsãå¯ç¨æ¼ä»¥HTMLæPDFæ ¼å¼çæéäºææª +ï¼å管æäºç¼è¡çæä¾çtexçæ¬æéå°å §é¨éå¶ï¼ç¡æ³æ£ç¢ºèçææªï¼ã + +ä¸åçç¶²ç«å¨ååç´°ç¯å±¤æ¬¡ä¸è¨è«å §æ ¸éç¼ãæ¬æä½è æ³è¬èå°å»ºè°ç¨ https://lwn.net/ +ä½ç²ä¾æºï¼æé許å¤ç¹å®å §æ ¸ä¸»é¡çä¿¡æ¯å¯ä»¥éé以ä¸ç¶²åç LWN å §æ ¸ç´¢å¼æ¾å°ï¼ + + http://lwn.net/kernel/index/ + +餿¤ä¹å¤ï¼å §æ ¸éç¼äººå¡çä¸åå¯¶è²´è³æºæ¯ï¼ + + https://kernelnewbies.org/ + +ç¶ç¶ï¼ä¹ä¸æè©²å¿è¨ https://kernel.org/ ï¼éæ¯å §æ ¸ç¼å¸ä¿¡æ¯çæçµä½ç½®ã + +éæ¼å §æ ¸éç¼æå¾å¤æ¸ï¼ + + ãLinuxè¨åé© åç¨åºã第ä¸çï¼Jonathan CorbetãAlessandro RubiniåGreg Kroah Hartmanï¼ + ç·ä¸çæ¬å¨ http://lwn.net/kernel/ldd3/ + + ãLinuxå §æ ¸è¨è¨è實ç¾ãï¼Robert Loveï¼ + + ãæ·±å ¥çè§£Linuxå §æ ¸ã(Daniel BovetåMarco Cesatiï¼ + +ç¶èï¼ææéäºæ¸é½æä¸åå ±åç缺é»ï¼å®å䏿¶æå°±å¾å¾æäºéæï¼èä¸å·²ç¶ä¸æ¶ +䏿®µæéäºãä¸éï¼å¨é£è£¡éæ¯å¯ä»¥æ¾å°ç¸ç¶å¤ç好信æ¯ã + +æégitçææªï¼è«è¨ªåï¼ + + https://www.kernel.org/pub/software/scm/git/docs/ + + https://www.kernel.org/pub/software/scm/git/docs/user-manual.html + +çµè« +==== + +ç¥è³ææéééç¯åé·çææªç人ã叿å®è½å¤ 幫婿¨çè§£Linuxå §æ ¸æ¯å¦ä½éç¼çï¼ +以忍å¦ä½åèéåéç¨ã + +æå¾ï¼éè¦çæ¯åèãä»»ä½éæºè»é«é ç®é½ä¸æè¶ éå ¶è²¢ç»è æå ¥å ¶ä¸ç總åãLinux +å §æ ¸çç¼å±é度å以å䏿¨£å¿«ï¼å ç²å®å¾å°äºå¤§ééç¼äººå¡ç幫å©ï¼ä»åé½å¨åªåä½¿å® +è®å¾æ´å¥½ãå §æ ¸æ¯ä¸åææåçä¾åï¼èªªæäºç¶æåä¸è¬ç人ç²äºä¸åå ±åçç®æ¨ä¸èµ· +工使ï¼å¯ä»¥ååºä»éº¼ã + +ä¸éï¼å §æ ¸ç¸½æ¯å¯ä»¥å¾æ´å¤§çéç¼äººå¡åºç¤ä¸ç²çãç¸½ææ´å¤çå·¥ä½è¦åã使¯å樣 +éè¦çæ¯ï¼Linuxçæ ç³»çµ±ä¸ç大夿¸å ¶ä»åèè å¯ä»¥ééç²å §æ ¸ååºè²¢ç»èåçã使 +代碼é²å ¥ä¸»ç·æ¯æé«ä»£ç¢¼è³ªéãéä½ç¶è·ååç¼ææ¬ãæé«å°å §æ ¸éç¼æ¹åçå½±é¿ç¨åº¦ +ççééµã鿝ä¸ç¨®å ±è´çå±é¢ãååä½ ç編輯å¨ï¼ä¾å å ¥æåå§ï¼ä½ æé叏忡è¿çã + diff --git a/Documentation/translations/zh_TW/process/code-of-conduct-interpretation.rst b/Documentation/translations/zh_TW/process/code-of-conduct-interpretation.rst new file mode 100644 index 0000000000000..949d831aaf6cc --- /dev/null +++ b/Documentation/translations/zh_TW/process/code-of-conduct-interpretation.rst @@ -0,0 +1,112 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/code-of-conduct-interpretation.rst <code_of_conduct_interpretation>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +.. _tw_code_of_conduct_interpretation: + +Linuxå §æ ¸è²¢ç»è å¥ç´è¡çºæºåè§£é +=============================== + +:ref:`tw_code_of_conduct` æºåæ¯ä¸åéç¨ææªï¼æ¨å¨ç²å¹¾ä¹ææéæºç¤¾åæä¾ä¸å¥è¦åã +æ¯åéæºç¤¾å齿¯ç¨ä¸ç¡äºçï¼Linuxå §æ ¸ä¹ä¸ä¾å¤ãå æ¤ï¼æ¬ææè¿°äºLinuxå §æ ¸ç¤¾åä¸ +å¦ä½è§£éå®ãæåä¹ä¸å¸æé種解éé¨èæéçæ¨ç§»æ¯éæ çï¼ä¸¦å°æ ¹æéè¦é²è¡èª¿æ´ã + +èéç¼è»é«çãå³çµ±ãæ¹æ³ç¸æ¯ï¼Linuxå §æ ¸éç¼å·¥ä½æ¯ä¸åé常å人åçéç¨ãä½ çè²¢ç» +åèå¾çæ³æ³å°è¢«ä»ç´°å¯©æ¥ï¼å¾å¾å°è´æ¹å¤åæ¹è©ã審æ¥å°å¹¾ä¹ç¸½æ¯éè¦æ¹é²ï¼æææ +è½å æ¬å¨å §æ ¸ä¸ãè¦ç¥é鿝å ç²ææç¸é人å¡é½å¸æçå°Linuxæ´é«æåçæä½³è§£æ±ºæ¹ +æ¡ãéåéç¼éç¨å·²ç¶è¢«èæå¯ä»¥åµå»ºæå²ä»¥ä¾æå¥å£¯ç使¥ç³»çµ±å §æ ¸ï¼æå䏿³åä»»ä½ +äºæ ä¾å°è´æäº¤è³ªéåæçµçµæçä¸éã + +ç¶è·è +------ + +è¡çºæºå夿¬¡ä½¿ç¨ãç¶è·è ãä¸è©ãå¨å §æ ¸ç¤¾åä¸ï¼ãç¶è·è ãæ¯è² è²¬å系統ãé© åç¨åºæ +æä»¶çä»»ä½äººï¼ä¸¦å¨å §æ ¸åå§ç¢¼æ¨¹çç¶è·è æä»¶ä¸ååºã + +責任 +---- + +ãè¡çºæºåãæå°äºç¶è·äººå¡çæ¬å©å責任ï¼ééè¦é²ä¸æ¥æ¾æ¸ ã + +é¦å ï¼æéè¦çæ¯ï¼æä¸ååççæææ¯ç±ç¶è·äººå¡éé實ä¾ä¾é å°ã + +ä¹å°±æ¯èªªï¼æåçç¤¾åæ¯å»£éçï¼å°ç¶è·è æ²ææ°çè¦æ±ï¼ä»å宿¹é¢èçå ¶ä»äººå¨ +ä»åæ´»èºç社åçè¡ç²ãéä¸è²¬ä»»ç±æåææäººæ¿æï¼æçµãè¡çºæºåãè¨éäºæçµç +ä¸è¨´è·¯å¾ï¼ä»¥é²æéè¡ç²åé¡çå顿¸èæªæ±ºã + +ç¶è·äººå¡æè©²é¡æå¨åºç¾å顿æä¾å¹«å©ï¼ä¸¦å¨éè¦æè社åä¸çå ¶ä»äººåä½ãå¦ææ¨ +ä¸ç¢ºå®å¦ä½èçåºç¾çæ æ³ï¼è«ä¸è¦å®³æè¯ç¹«æè¡è«®è©¢å§å¡æï¼TABï¼æå ¶ä»ç¶è·äººå¡ã +é¤éæ¨é¡æï¼å¦å䏿å°å ¶è¦ç²éè¦å ±åã妿æ¨ä¸ç¢ºå®æ¯å¦è©²è¯ç¹«TAB æä»»ä½å ¶ä»ç¶ +è·äººå¡ï¼è«è¯ç¹«æåçè¡çªèª¿è§£äºº Mishi Choudhary <mishi@linux.com>ã + +æå¾ï¼ãåå¾ å°æ¹ãææ¯æ¯å人çæçµç®æ¨ãæåç¥éæ¯åäººé½æ¯äººï¼æææå齿失æï¼ +ä½æåææäººçé¦è¦ç®æ¨æè©²æ¯åªåå好å°è§£æ±ºåé¡ãå·è¡è¡çºæºåå°æ¯æå¾ç鏿ã + +æåçç®æ¨æ¯åµå»ºä¸å強大çãæè¡å é²ç使¥ç³»çµ±ï¼ä»¥åææ¶åçæè¡è¤éæ§ï¼éèª +ç¶éè¦å°æ¥ç¥èåæ±ºçã + +æéçå°æ¥ç¥èå è²¢ç»é åèç°ãå®ä¸»è¦ç±ä¸ä¸æåæè¡è¤éæ§æ±ºå®ï¼å ¶æ¬¡ç±è²¢ç»è å +ç¶è·è çæææ±ºå®ã + +å°å®¶çææå決çé½è¦ç¶éè¨è«ï¼ä½å¨æå¾ï¼ç²äºåå¾é²å±ï¼å¿ é è½å¤ ååºæ±ºçãéä¸ +ç¹æ¬ææ¡å¨ç¶è·äººå¡åé ç®é å°çæä¸ï¼é è¨å°åæä½¿ç¨ã + +å æ¤ï¼è¨å®å°æ¥ç¥èææãä½åºæ±ºå®åæçµä¸é©ç¶çè²¢ç»ä¸è¢«è¦ç²éåè¡çºæºåã + +éç¶ç¶è·äººå¡ä¸è¬é½æ¡è¿æ°ä¾è ï¼ä½ä»å幫å©ï¼æ°ï¼è²¢ç»è å æéç¤çè½åæéï¼å æ¤ +ä»åå¿ é 確å®åªå äºé ãéä¹ä¸æè¢«è¦ç²éåäºè¡çºæºåãå §æ ¸ç¤¾åæèå°éä¸é»ï¼ä¸¦ +以åç¨®å½¢å¼æä¾å ¥éç´ç¯ç®ï¼å¦ kernelnewbies.org ã + +ç¯å +---- + +Linuxå §æ ¸ç¤¾å主è¦å¨ä¸çµå ¬å ±é»åéµä»¶å表ä¸é²è¡äº¤äºï¼éäºå表åå¸å¨ç±å¤åä¸å +å ¬å¸æå人æ§å¶çå¤åä¸å伺æå¨ä¸ãææéäºå表é½å¨å §æ ¸åå§ç¢¼æ¨¹ä¸ç +MAINTAINERS æä»¶ä¸å®ç¾©ãç¼éå°éäºéµä»¶å表çä»»ä½é»åéµä»¶é½è¢«è¦ç²å å«å¨è¡ç² +æºåä¸ã + +ä½¿ç¨ kernel.org bugzillaåå ¶ä»å系統bugzilla æbugè·è¹¤å·¥å ·çéç¼äººå¡æè©²éµå¾ª +è¡çºæºåçæå°ååãLinuxå §æ ¸ç¤¾åæ²æã宿¹ãé ç®é»åéµä»¶å°åæã宿¹ã社交åªé« +å°åã使ç¨kernel.orgé»åéµä»¶å¸³æ¶å·è¡ç任使´»åå¿ é éµå¾ªç²kernel.orgç¼å¸çè¡ç² +æºåï¼å°±åä»»ä½ä½¿ç¨å ¬å¸é»åéµä»¶å¸³æ¶çåäººå¿ é éµå¾ªè©²å ¬å¸çç¹å®è¦å䏿¨£ã + +è¡çºæºå並ä¸ç¦æ¢å¨éµä»¶åè¡¨æ¶æ¯ãå §æ ¸æ´æ¹æ¥èªæ¶æ¯æä»£ç¢¼æ³¨éä¸ç¹¼çºå å«å稱ã +é»åéµä»¶å°ååç¸é注éã + +å ¶ä»è«å£ä¸çäºåå æ¬å¨é©ç¨æ¼ä¸è¿°è«å£çä»»ä½è¦åä¸ï¼é常ä¸å æ¬å¨è¡çºæºåä¸ã +é¤äºå¨æ¥µç«¯æ æ³ä¸å¯èæ ®çä¾å¤æ æ³ã + +æäº¤çµ¦å §æ ¸çè²¢ç»æè©²ä½¿ç¨é©ç¶çèªè¨ãå¨è¡çºæºåä¹åå·²ç¶åå¨çå §å®¹ç¾å¨ä¸æè¢« +è¦ç²éåãç¶èï¼ä¸é©ç¶çèªè¨å¯ä»¥è¢«è¦ç²ä¸åbugï¼å¦æä»»ä½ç¸éæ¹æäº¤è£ä¸ï¼ +鿍£çbugå°è¢«æ´å¿«å°ä¿®å¾©ãç¶å屬æ¼ç¨æ¶/å §æ ¸APIçä¸é¨åç表éå¼ï¼æè åæ å·² +ç¼å¸æ¨æºæè¦ç¯ä¸ä½¿ç¨çè¡èªç表éå¼ï¼ä¸è¢«è¦ç²bugã + +å·è¡ +---- + +è¡çºæºåä¸ååºçå°å屬æ¼è¡çºæºåå§å¡æãhttps://kernel.org/code-of-conduct.html +ååºäºå¨ä»»ä½çµ¦å®æéæ¥æ¶éäºé»åéµä»¶ç確åæå¡ãæå¡ä¸è½è¨ªåå¨å å ¥å§å¡æä¹å +æé¢éå§å¡æä¹å¾æåçå ±åã + +æåçè¡çºæºåå§å¡æç±TABçå¿é¡è 以åä½ç²ä¸ç«ç¬¬ä¸æ¹çå°æ¥èª¿è§£äººçµæãå§å¡æ +çé¦è¦ä»»åæ¯å»ºç«æä»¶åçæµç¨ï¼ä¸¦å°å ¶å ¬éã + +å¦æå ±å人ä¸å¸æå°æ´åå§å¡æç´å ¥æè¨´æéåï¼å¯ç´æ¥è¯ç¹«å§å¡æç任使å¡ï¼å æ¬ +調解人ã + +è¡çºæºåå§å¡ææ ¹ææµç¨å¯©æ¥æ¡ä¾ï¼è¦ä¸æï¼ï¼ä¸¦æ ¹æéè¦åé©ç¶èTABååï¼ä¾å¦è«æ± +åæ¥æ¶æéå §æ ¸ç¤¾åçä¿¡æ¯ã + +å§å¡æååºç任使±ºå®é½å°æäº¤å°è¡¨ä¸ï¼ä»¥ä¾¿å¨å¿ è¦æèç¸éç¶è·äººå¡ä¸èµ·å·è¡ãè¡ç² +æºåå§å¡æç決å®å¯ä»¥ééä¸åä¹äºçæç¥¨æ¨ç¿»ã + +æ¯å£åº¦ï¼è¡çºæºåå§å¡æåæ¨ç±¤å°æä¾ä¸ä»½å ±åï¼æ¦è¿°è¡çºæºåå§å¡ææ¶å°çå¿åå ±å +åå ¶çæ ï¼ä»¥åä»»ä½å¦æ±ºæ±ºå®çç´°ç¯ï¼å æ¬å®æ´åå¯èå¥çæç¥¨ç´°ç¯ã + +æå叿å¨ååæä¹å¾ç²è¡çºæºåå§å¡æäººå¡é å建ç«ä¸åä¸åçæµç¨ãç¼çæ¤æ æ³æï¼ +å°ä½¿ç¨è©²ä¿¡æ¯æ´æ°æ¤ææªã + diff --git a/Documentation/translations/zh_TW/process/code-of-conduct.rst b/Documentation/translations/zh_TW/process/code-of-conduct.rst new file mode 100644 index 0000000000000..716e5843b6e9c --- /dev/null +++ b/Documentation/translations/zh_TW/process/code-of-conduct.rst @@ -0,0 +1,76 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/code-of-conduct.rst <code_of_conduct>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +.. _tw_code_of_conduct: + +è²¢ç»è å¥ç´è¡çºæºå +++++++++++++++++++ + +æåçèªè¨ +========== + +ç²äºçé ä¸åéæ¾ãå好çç°å¢ï¼æåä½ç²è²¢ç»è åç¶è·äººæ¿è«¾ï¼è®æåç社ååå +èè ï¼ææä¸åç¡é¨·æ¾çé«é©ï¼ç¡è«å¹´é½¡ãé«åãæ®ç¾ã種æãæ§å¥ç¹å¾µãæ§å¥èªå +å表éãç¶é©æ°´å¹³ãæè²ç¨åº¦ã社æçæ³ï¼ç¶æ¿å°ä½ãåç±ãå人å¤è²ã種æã宿 +ææ§èº«ä»½åååã + +æåçæ¨æº +========== + +æå©æ¼åµé ç©æ¥µç°å¢çè¡ç²å æ¬ï¼ + +* ä½¿ç¨æ¡è¿åå 容çèªè¨ +* å°éä¸åçè§é»åç¶é© +* åªé å°æ¥åå»ºè¨æ§çæ¹è© +* éæ³¨ä»éº¼å°ç¤¾åææå© +* å°å ¶ä»ç¤¾åæå¡è¡¨ç¤ºåæ + +åèè çä¸å¯æ¥åè¡ç²å æ¬ï¼ + +* ä½¿ç¨æ§æå³çèªè¨ææè±¡ä»¥åä¸åæ¡è¿çæ§æ³¨ææè æ´éåçè¡ç² +* ç ½åã侮辱/è²¶æè©è«ä»¥ååäººææ¿æ²»æ»æ +* å ¬éæç§ä¸é¨·æ¾ +* æªç¶æç¢ºè¨±å¯ï¼ç¼å¸ä»äººçç§äººä¿¡æ¯ï¼å¦ç©çæé»åå°åã +* å¨å°æ¥å ´å被åçèªç²ä¸é©ç¶çå ¶ä»è¡ç² + +æåç責任 +========== + +ç¶è·äººå¡è² è²¬æ¾æ¸ 坿¥åè¡ç²çæ¨æºï¼ä¸¦æéå°ä»»ä½ä¸å¯æ¥åè¡ç²æ¡åé©ç¶åå ¬å¹³ç +ç³¾æ£æªæ½ã + +ç¶è·äººå¡ææ¬å責任åªé¤ã編輯ææçµèæ¬è¡çºæºåä¸ä¸è´çè©è«ãæ¿è«¾ã代碼ã +wiki編輯ãåé¡åå ¶ä»è²¢ç»ï¼ææ«æææ°¸ä¹ ç¦æ¢ä»»ä½è²¢ç»è å¾äºä»åèªç²ä¸é©ç¶ã +å¨è ãåç¯ææå®³çå ¶ä»è¡ç²ã + +ç¯å +==== + +ç¶å人代表é ç®æå ¶ç¤¾åæï¼æ¬è¡çºæºåæ¢é©ç¨æ¼é ç®ç©ºéï¼ä¹é©ç¨æ¼å ¬å ±ç©ºéã +代表ä¸åé ç®æç¤¾åçä¾åå æ¬ä½¿ç¨ä¸åæ£å¼çé ç®é»åéµä»¶å°åï¼ééä¸åæ£å¼ +ç社交åªé«å¸³æ¶ç¼å¸ï¼æè å¨å¨ç·æé¢ç·äºä»¶ä¸æä»»æå®ç代表ãé ç®ç¶è·äººå¡å¯ä»¥ +é²ä¸æ¥å®ç¾©åæ¾æ¸ é ç®ç表示ã + +å·è¡ +==== + +å¦ææ¿«ç¨ãé¨·æ¾æå ¶ä»ä¸å¯æ¥åçè¡ç²ï¼å¯è¯ç¹«è¡çºæºåå§å¡æ<conduct@kernel.org>ã +æææè¨´é½å°æ¥å審æ¥å調æ¥ï¼ä¸¦å°å¾å°å¿ è¦åé©ç¶ççè¦ãè¡çºæºåå§å¡ææç¾©å +å°äºä»¶å ±å人ä¿å¯ãå ·é«å·è¡æ¿ççé²ä¸æ¥ç´°ç¯å¯å®ç¨å ¬å¸ã + +æ¸å±¬ +==== + +æ¬è¡çºæºåæ¹ç·¨èªãè²¢ç»è å¥ç´ãï¼çæ¬1.4ï¼å¯å¾ +https://www.contributor-covenant.org/version/1/4/code-of-conduct.html ç²åã + +è§£é +==== + +æéLinuxå §æ ¸ç¤¾åå¦ä½è§£éæ¤ææªï¼è«åé± :ref:`tw_code_of_conduct_interpretation` + diff --git a/Documentation/translations/zh_TW/process/coding-style.rst b/Documentation/translations/zh_TW/process/coding-style.rst new file mode 100644 index 0000000000000..61e614aad6a7e --- /dev/null +++ b/Documentation/translations/zh_TW/process/coding-style.rst @@ -0,0 +1,958 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/coding-style.rst <codingstyle>` + +.. _tw_codingstyle: + +è¯è :: + + 䏿çç¶è·è ï¼ å¼µæ¨ Zhang Le <r0bertz@gentoo.org> + 䏿çç¿»è¯è ï¼ å¼µæ¨ Zhang Le <r0bertz@gentoo.org> + ä¸æçæ ¡è¯è ï¼ çè° Wang Cong <xiyou.wangcong@gmail.com> + wheelz <kernel.zeng@gmail.com> + ç®¡ææ± Xudong Guan <xudong.guan@gmail.com> + Li Zefan <lizf@cn.fujitsu.com> + Wang Chen <wangchen@cn.fujitsu.com> + Hu Haowen <src.res@email.cn> + +Linux å §æ ¸ä»£ç¢¼é¢¨æ ¼ +========================= + +鿝ä¸åç°¡ççææªï¼æè¿°äº linux å §æ ¸çé¦é¸ä»£ç¢¼é¢¨æ ¼ãä»£ç¢¼é¢¨æ ¼æ¯å 人èç°çï¼ +è䏿ä¸é¡ææèªå·±çè§é»å¼·å 給任ä½äººï¼ä½éå°±åæå»åä»»ä½äºæ é½å¿ é éµå¾ªçåå +飿¨£ï¼æä¹å¸æå¨çµå¤§å¤æ¸äºä¸ä¿æéç¨®çæ åº¦ãè« (å¨å¯«ä»£ç¢¼æ) è³å°èæ ®ä¸ä¸é裡 +çä»£ç¢¼é¢¨æ ¼ã + +é¦å ï¼æå»ºè°ä½ åå°ä¸ä»½ GNU 代碼è¦ç¯ï¼ç¶å¾ä¸è¦è®ãçäºå®ï¼éæ¯ä¸åå ·æé大象徵 +æ§æç¾©çåä½ã + +ä¸ç®¡ææ¨£ï¼ç¾å¨æåéå§ï¼ + + +1) ç¸®é² +-------------- + +å¶è¡¨ç¬¦æ¯ 8 ååç¬¦ï¼æä»¥ç¸®é²ä¹æ¯ 8 åå符ãæäºç°ç«¯éå試åå°ç¸®é²è®ç² 4 (çè³ +2ï¼) å符深ï¼éå¹¾ä¹ç¸ç¶æ¼å試å°åå¨ççå¼å®ç¾©ç² 3ã + +çç±ï¼ç¸®é²çå ¨é¨æç¾©å°±å¨æ¼æ¸ æ¥çå®ç¾©ä¸åæ§å¶å¡èµ·æ¢æ¼ä½èãå°¤å ¶æ¯ç¶ä½ ç¯èä½ ç +å±å¹é£çºçäº 20 å°æä¹å¾ï¼ä½ å°æç¼ç¾å¤§ä¸é»çç¸®é²æä½¿ä½ æ´å®¹æå辨縮é²ã + +ç¾å¨ï¼æäºäººææ±æ¨ 8 åå符çç¸®é²æä½¿ä»£ç¢¼åå³éç§»åç太é ï¼å¨ 80 åå符ççµç«¯ +å±å¹ä¸å°±å¾é£è®é樣ç代碼ãéååé¡ççæ¡æ¯ï¼å¦æä½ éè¦ 3 ç´ä»¥ä¸ç縮é²ï¼ä¸ç®¡ç¨ +ä½ç¨®æ¹å¼ä½ çä»£ç¢¼å·²ç¶æåé¡äºï¼æè©²ä¿®æ£ä½ çç¨åºã + +ç°¡èè¨ä¹ï¼8 åå符ç縮é²å¯ä»¥è®ä»£ç¢¼æ´å®¹æé±è®ï¼éæä¸åå¥½èæ¯ç¶ä½ ç彿¸åµå¥å¤ª +æ·±çæåå¯ä»¥çµ¦ä½ è¦åãçå¿éåè¦åã + +å¨ switch èªå¥ä¸æ¶é¤å¤ç´ç¸®é²çé¦é¸çæ¹å¼æ¯è® ``switch`` åå¾å±¬æ¼å®ç ``case`` +æ¨ç±¤å°é½æ¼åä¸åï¼èä¸è¦ ``å ©æ¬¡ç¸®é²`` ``case`` æ¨ç±¤ãæ¯å¦ï¼ + +.. code-block:: c + + switch (suffix) { + case 'G': + case 'g': + mem <<= 30; + break; + case 'M': + case 'm': + mem <<= 20; + break; + case 'K': + case 'k': + mem <<= 10; + fallthrough; + default: + break; + } + +ä¸è¦æå¤åèªå¥æ¾å¨ä¸è¡éï¼é¤éä½ æä»éº¼æ±è¥¿è¦é±èï¼ + +.. code-block:: c + + if (condition) do_this; + do_something_everytime; + +ä¹ä¸è¦å¨ä¸è¡éæ¾å¤å賦å¼èªå¥ãå §æ ¸ä»£ç¢¼é¢¨æ ¼è¶ ç´ç°¡å®ãå°±æ¯é¿å å¯è½å°è´å¥äººèª¤è® +ç表éå¼ã + +é¤äºæ³¨éãææªå Kconfig ä¹å¤ï¼ä¸è¦ä½¿ç¨ç©ºæ ¼ä¾ç¸®é²ï¼åé¢çä¾åæ¯ä¾å¤ï¼æ¯ææç² +ä¹ã + +é¸ç¨ä¸å好ç編輯å¨ï¼ä¸è¦å¨è¡å°¾çç©ºæ ¼ã + + +2) æé·çè¡ååç¬¦ä¸²ææ£ +------------------------------ + +ä»£ç¢¼é¢¨æ ¼çæç¾©å°±å¨æ¼ä½¿ç¨å¹³å¸¸ä½¿ç¨çå·¥å ·ä¾ç¶æä»£ç¢¼çå¯è®æ§åå¯ç¶è·æ§ã + +æ¯ä¸è¡çé·åº¦çéå¶æ¯ 80 åï¼æåå¼·çå»ºè°æ¨éµå®éåæ £ä¾ã + +é·æ¼ 80 åçèªå¥è¦ææ£æææç¾©ççæ®µãé¤éè¶ é 80 åè½é¡¯èå¢å å¯è®æ§ï¼ä¸¦ä¸ä¸ +æé±èä¿¡æ¯ãåçæ®µè¦æé¡¯çæ¼æ¯ç段ï¼ä¸¦æé¡¯é å³ãé忍£é©ç¨æ¼æèå¾é·åæ¸å表 +ç彿¸é ãç¶èï¼çµå°ä¸è¦ææ£å°ç¨æ¶å¯è¦çå符串ï¼ä¾å¦ printk ä¿¡æ¯ï¼å ç²é樣就 +å¾é£å°å®å grepã + + +3) 大æ¬èåç©ºæ ¼çæ¾ç½® +------------------------------ + +C èªè¨é¢¨æ ¼ä¸å¦å¤ä¸å常è¦å顿¯å¤§æ¬èçæ¾ç½®ãå縮é²å¤§å°ä¸åï¼é¸æææ£ç¨æç§æ¾ +ç½®çç¥ä¸¦æ²æå¤å°æè¡ä¸çåå ï¼ä¸éé¦é¸çæ¹å¼ï¼å°±å Kernighan å Ritchie å±ç¤º +給æåçï¼æ¯æèµ·å§å¤§æ¬èæ¾å¨è¡å°¾ï¼èæçµæå¤§æ¬èæ¾å¨è¡é¦ï¼æä»¥ï¼ + +.. code-block:: c + + if (x is true) { + we do y + } + +éé©ç¨æ¼ææçé彿¸èªå¥å¡ (if, switch, for, while, do)ãæ¯å¦ï¼ + +.. code-block:: c + + switch (action) { + case KOBJ_ADD: + return "add"; + case KOBJ_REMOVE: + return "remove"; + case KOBJ_CHANGE: + return "change"; + default: + return NULL; + } + +ä¸éï¼æä¸åä¾å¤ï¼é£å°±æ¯å½æ¸ï¼å½æ¸çèµ·å§å¤§æ¬èæ¾ç½®æ¼ä¸ä¸è¡çéé ï¼æä»¥ï¼ + +.. code-block:: c + + int function(int x) + { + body of function + } + +å ¨ä¸ççç°ç«¯å¯è½ææ±æ¨éåä¸ä¸è´æ§æ¯... å... ä¸ä¸è´çï¼ä¸éæææç¶å¥å ¨ç人 +é½ç¥é (a) K&R æ¯ **æ£ç¢ºç** ä¸¦ä¸ (b) K&R æ¯æ£ç¢ºçãæ¤å¤ï¼ä¸ç®¡ææ¨£å½æ¸é½æ¯ç¹ +æ®ç (C 彿¸æ¯ä¸è½åµå¥ç)ã + +注æçµæå¤§æ¬èç¨èªå æä¸è¡ï¼é¤éå®å¾é¢è·èåä¸åèªå¥çå©é¤é¨åï¼ä¹å°±æ¯ do èª +å¥ä¸ç "while" æè if èªå¥ä¸ç "else"ï¼å鿍£ï¼ + +.. code-block:: c + + do { + body of do-loop + } while (condition); + +å + +.. code-block:: c + + if (x == y) { + .. + } else if (x > y) { + ... + } else { + .... + } + +çç±ï¼K&Rã + +ä¹è«æ³¨æé種大æ¬èçæ¾ç½®æ¹å¼ä¹è½ä½¿ç©º (æè å·®ä¸å¤ç©ºç) è¡çæ¸éæå°åï¼åæä¸ +失å¯è®æ§ãå æ¤ï¼ç±æ¼ä½ çå±å¹ä¸çæ°è¡æ¯ä¸å¯åçè³æº (æ³æ³ 25 è¡ççµç«¯å±å¹)ï¼ä½ +å°æææ´å¤ç空è¡ä¾æ¾ç½®æ³¨éã + +ç¶åªæä¸åå®ç¨çèªå¥çæåï¼ä¸ç¨å ä¸å¿ è¦ç大æ¬èã + +.. code-block:: c + + if (condition) + action(); + +å + +.. code-block:: c + + if (condition) + do_this(); + else + do_that(); + +é並ä¸é©ç¨æ¼åªæä¸åæ¢ä»¶åæ¯æ¯å®èªå¥çæ æ³ï¼éæææåæ¯é½è¦ä½¿ç¨å¤§æ¬èï¼ + +.. code-block:: c + + if (condition) { + do_this(); + do_that(); + } else { + otherwise(); + } + +3.1) ç©ºæ ¼ +******************** + +Linux å §æ ¸çç©ºæ ¼ä½¿ç¨æ¹å¼ (主è¦) åæ±ºæ¼å®æ¯ç¨æ¼å½æ¸éæ¯ééµåã(大夿¸) ééµå +å¾è¦å ä¸åç©ºæ ¼ãå¼å¾æ³¨æçä¾å¤æ¯ sizeof, typeof, alignof å __attribute__ï¼é +äºééµåæäºç¨åº¦ä¸çèµ·ä¾æ´å彿¸ (å®åå¨ Linux éä¹å¸¸å¸¸ä¼´é¨å°æ¬èè使ç¨ï¼å管 +å¨ C é鿍£çå°æ¬è䏿¯å¿ éçï¼å°±å ``struct fileinfo info;`` è²æéå¾ç +``sizeof info``)ã + +æä»¥å¨éäºééµåä¹å¾æ¾ä¸åç©ºæ ¼:: + + if, switch, case, for, do, while + +使¯ä¸è¦å¨ sizeof, typeof, alignof æè __attribute__ éäºééµåä¹å¾æ¾ç©ºæ ¼ã +ä¾å¦ï¼ + +.. code-block:: c + + s = sizeof(struct file); + +ä¸è¦å¨å°æ¬èéç表éå¼å ©å´å ç©ºæ ¼ã鿝ä¸å **åä¾** ï¼ + +.. code-block:: c + + s = sizeof( struct file ); + +ç¶è²ææéé¡åæè è¿åæéé¡åç彿¸æï¼ ``*`` çé¦é¸ä½¿ç¨æ¹å¼æ¯ä½¿ä¹é è¿è®éå +æè 彿¸åï¼è䏿¯é è¿é¡ååãä¾åï¼ + +.. code-block:: c + + char *linux_banner; + unsigned long long memparse(char *ptr, char **retptr); + char *match_strdup(substring_t *s); + +å¨å¤§å¤æ¸äºå åä¸å æä½ç¬¦å ©å´ä½¿ç¨ä¸åç©ºæ ¼ï¼ä¾å¦ä¸é¢ææéäºæä½ç¬¦:: + + = + - < > * / % | & ^ <= >= == != ? : + +使¯ä¸å æä½ç¬¦å¾ä¸è¦å ç©ºæ ¼:: + + & * + - ~ ! sizeof typeof alignof __attribute__ defined + +å¾ç¶´èªå åèªæ¸ä¸å æä½ç¬¦åä¸å ç©ºæ ¼:: + + ++ -- + +åç¶´èªå åèªæ¸ä¸å æä½ç¬¦å¾ä¸å ç©ºæ ¼:: + + ++ -- + +``.`` å ``->`` çµæ§é«æå¡æä½ç¬¦åå¾ä¸å ç©ºæ ¼ã + +ä¸è¦å¨è¡å°¾ç空ç½ãæäºå¯ä»¥èªå縮é²çç·¨è¼¯å¨æå¨æ°è¡çè¡é¦å å ¥é©éç空ç½ï¼ç¶å¾ +ä½ å°±å¯ä»¥ç´æ¥å¨é£ä¸è¡è¼¸å ¥ä»£ç¢¼ãä¸éåå¦ä½ æå¾æ²æå¨é£ä¸è¡è¼¸å ¥ä»£ç¢¼ï¼æäºç·¨è¼¯å¨ +å°±ä¸æç§»é¤å·²ç¶å å ¥ç空ç½ï¼å°±åä½ æ æçä¸ä¸ååªæç©ºç½çè¡ãå å«è¡å°¾ç©ºç½çè¡å°± +鿍£ç¢çäºã + +ç¶ git ç¼ç¾è£ä¸å å«äºè¡å°¾ç©ºç½çæåæè¦åä½ ï¼ä¸¦ä¸å¯ä»¥æä½ çè¦æ±å»æè¡å°¾ç©ºç½ï¼ +ä¸éå¦æä½ æ¯æ£å¨æä¸ç³»åè£ä¸ï¼é樣åæå°è´å¾é¢çè£ä¸å¤±æï¼å ç²ä½ æ¹è®äºè£ä¸ç +ä¸ä¸æã + + +4) å½å +------------------------------ + +C æ¯ä¸å簡樸çèªè¨ï¼ä½ çå½åä¹æè©²éæ¨£ãå Modula-2 å Pascal ç¨å¼è¨è¨å¸«ä¸åï¼ +C ç¨å¼è¨è¨å¸«ä¸ä½¿ç¨é¡ä¼¼ ThisVariableIsATemporaryCounter 鿍£è¯éºçååãC ç¨å¼è¨è¨å¸«æ +稱é£åè®éç² ``tmp`` ï¼éæ¨£å¯«èµ·ä¾ææ´å®¹æï¼èä¸è³å°ä¸æä»¤å ¶é£æ¼çè§£ã + +ä¸éï¼éç¶æ··ç¨å¤§å°å¯«çå忝䏿å¡ä½¿ç¨çï¼ä½æ¯å ¨å±è®é鿝éè¦ä¸åå ·æè¿°æ§ç +ååã稱ä¸åå ¨å±å½æ¸ç² ``foo`` æ¯ä¸åé£ä»¥é¥æçé¯èª¤ã + +å ¨å±è®é (åªæç¶ä½ **çæ£** éè¦å®åçæååç¨å®) éè¦æä¸åå ·æè¿°æ§çååï¼å°± +åå ¨å±å½æ¸ãå¦æä½ æä¸åå¯ä»¥è¨ç®æ´»åç¨æ¶æ¸éç彿¸ï¼ä½ æè©²å«å® +``count_active_users()`` æè é¡ä¼¼çååï¼ä½ ä¸æè©²å«å® ``cntuser()`` ã + +å¨å½æ¸åä¸å å«å½æ¸é¡å (æè¬çåçå©å½åæ³) æ¯è ¦ååºäºåé¡ââç·¨è¯å¨ç¥éé£äºé¡ +åèä¸è½å¤ 檢æ¥é£äºé¡åï¼é樣ååªè½æç¨å¼è¨è¨å¸«å¼ç³å¡äºã飿ªå¾®è»ç¸½æ¯è£½é åºæåé¡ +çç¨åºã + +æ¬å°è®éåæè©²ç°¡çï¼èä¸è½å¤ 表éç¸éçå«ç¾©ãå¦æä½ æä¸äºé¨æ©çæ´æ¸åç循ç°è¨ +æ¸å¨ï¼å®æè©²è¢«ç¨±ç² ``i`` ãå«å® ``loop_counter`` 並ç¡çèï¼å¦æå®æ²æè¢«èª¤è§£ç +å¯è½ç話ãé¡ä¼¼çï¼ ``tmp`` å¯ä»¥ç¨ä¾ç¨±å¼ä»»æé¡åçè¨æè®éã + +å¦æä½ ææ··æ·äºä½ çæ¬å°è®éåï¼ä½ å°±éå°å¦ä¸ååé¡äºï¼å«å彿¸å¢é·è·ç¾èå¤±è¡¡ç¶ +åçãè«ç第å ç« (彿¸)ã + + +5) Typedef +----------- + +ä¸è¦ä½¿ç¨é¡ä¼¼ ``vps_t`` ä¹é¡çæ±è¥¿ã + +å°çµæ§é«åæéä½¿ç¨ typedef æ¯ä¸å **é¯èª¤** ãç¶ä½ å¨ä»£ç¢¼éçå°ï¼ + +.. code-block:: c + + vps_t a; + +é代表ä»éº¼ææå¢ï¼ + +ç¸åï¼å¦ææ¯é樣 + +.. code-block:: c + + struct virtual_container *a; + +ä½ å°±ç¥é ``a`` æ¯ä»éº¼äºã + +å¾å¤äººèªç² typedef ``è½æé«å¯è®æ§`` ã實é䏿¯é樣çãå®ååªå¨ä¸åæ æ³ä¸æç¨ï¼ + + (a) å®å ¨ä¸éæçå°è±¡ (éç¨®æ æ³ä¸è¦ä¸»åä½¿ç¨ typedef ä¾ **é±è** éåå°è±¡å¯¦éä¸ + æ¯ä»éº¼)ã + + ä¾å¦ï¼ ``pte_t`` çä¸éæå°è±¡ï¼ä½ åªè½ç¨åé©ç訪å彿¸ä¾è¨ªåå®åã + + .. note:: + + ä¸éææ§å "訪å彿¸" æ¬èº«æ¯ä¸å¥½çãæåä½¿ç¨ pte_t çé¡åçåå 卿¼ç + çæ¯å®å ¨æ²æä»»ä½å ±ç¨çå¯è¨ªåä¿¡æ¯ã + + (b) æ¸ æ¥çæ´æ¸é¡åï¼å¦æ¤ï¼é層æ½è±¡å°±å¯ä»¥ **幫å©** æ¶é¤å°åºæ¯ ``int`` 鿝 + ``long`` çæ··æ·ã + + u8/u16/u32 æ¯å®å ¨æ²æåé¡ç typedefï¼ä¸éå®åæ´ç¬¦åé¡å¥ (d) è䏿¯é裡ã + + .. note:: + + è¦é樣åï¼å¿ é äºåºæå ã妿æåè®éæ¯ ``unsigned long`` ï¼é£éº¼æ²æå¿ è¦ + + typedef unsigned long myflags_t; + + ä¸é妿æä¸åæç¢ºçåå ï¼æ¯å¦å®å¨æç¨®æ æ³ä¸å¯è½ææ¯ä¸å ``unsigned int`` + èå¨å ¶ä»æ æ³ä¸å¯è½ç² ``unsigned long`` ï¼é£éº¼å°±ä¸è¦ç¶è±«ï¼è«åå¿ ä½¿ç¨ + typedefã + + (c) ç¶ä½ ä½¿ç¨ sparse æåé¢çåµå»ºä¸å **æ°** é¡åä¾åé¡å檢æ¥çæåã + + (d) åæ¨æº C99 é¡åç¸åçé¡åï¼å¨æäºä¾å¤çæ æ³ä¸ã + + éç¶è®ç¼çåè ¦çä¾é©ææ°çæ¨æºé¡åæ¯å¦ ``uint32_t`` ä¸éè¦è±å¾å¤æéï¼å¯ + æ¯æäºäººä»ç¶æçµä½¿ç¨å®åã + + å æ¤ï¼Linux ç¹æççåæ¼æ¨æºé¡åç ``u8/u16/u32/u64`` é¡ååå®åçæç¬¦è + é¡åæ¯è¢«å 許çââå管å¨ä½ èªå·±çæ°ä»£ç¢¼ä¸ï¼å®å䏿¯å¼·å¶è¦æ±è¦ä½¿ç¨çã + + ç¶ç·¨è¼¯å·²ç¶ä½¿ç¨äºæåé¡åéçå·²æä»£ç¢¼æï¼ä½ æè©²éµå¾ªé£äºä»£ç¢¼ä¸å·²ç¶ååºçé¸ + æã + + (e) å¯ä»¥å¨ç¨æ¶ç©ºéå®å ¨ä½¿ç¨çé¡åã + + 卿äºç¨æ¶ç©ºéå¯è¦ççµæ§é«è£¡ï¼æåä¸è½è¦æ± C99 é¡åèä¸ä¸è½ç¨ä¸é¢æå°ç + ``u32`` é¡åãå æ¤ï¼æåå¨èç¨æ¶ç©ºéå ±äº«çææçµæ§é«ä¸ä½¿ç¨ __u32 åé¡ä¼¼ + çé¡åã + +å¯è½éæå ¶ä»çæ æ³ï¼ä¸éåºæ¬çè¦åæ¯ **æ°¸é ä¸è¦** ä½¿ç¨ typedefï¼é¤éä½ å¯ä»¥æ +確çæç¨ä¸è¿°æåè¦åä¸çä¸åã + +總çä¾èªªï¼å¦æä¸åæéæè ä¸åçµæ§é«è£¡çå ç´ å¯ä»¥åççè¢«ç´æ¥è¨ªåå°ï¼é£éº¼å®å +å°±ä¸æè©²æ¯ä¸å typedefã + + +6) 彿¸ +------------------------------ + +彿¸æè©²ç°¡çèæ¼äº®ï¼ä¸¦ä¸åªå®æä¸ä»¶äºæ ã彿¸æè©²å¯ä»¥ä¸å±æè å ©å±é¡¯ç¤ºå® (æå +é½ç¥é ISO/ANSI å±å¹å¤§å°æ¯ 80x24)ï¼åªåä¸ä»¶äºæ ï¼è䏿å®å好ã + +ä¸å彿¸çæå¤§é·åº¦æ¯åè©²å½æ¸çè¤é度å縮é²ç´æ¸æåæ¯çãæä»¥ï¼å¦æä½ æä¸åç +è«ä¸å¾ç°¡å®çåªæä¸åå¾é· (使¯ç°¡å®) ç case èªå¥ç彿¸ï¼èä¸ä½ éè¦å¨æ¯å case +éåå¾å¤å¾å°çäºæ ï¼é樣ç彿¸å管å¾é·ï¼ä½ä¹æ¯å¯ä»¥çã + +ä¸éï¼å¦æä½ æä¸åè¤éç彿¸ï¼èä¸ä½ æ·çä¸å天å䏿¯å¾é«çé«ä¸ä¸å¹´ç´å¸çå¯è½ +çè³æä¸æ¸ æ¥éå彿¸çç®çï¼ä½ æè©²å´æ ¼éµå®å颿å°çé·åº¦éå¶ã使ç¨è¼å©å½æ¸ï¼ +並ç²ä¹ååå ·æè¿°æ§çåå (å¦æä½ è¦ºå¾å®åçæ§è½å¾éè¦ç話ï¼å¯ä»¥è®ç·¨è¯å¨å §è¯å® +åï¼éæ¨£çææå¾å¾ææ¯ä½ 寫ä¸åè¤é彿¸çææè¦å¥½ã) + +彿¸çå¦å¤ä¸åè¡¡éæ¨æºæ¯æ¬å°è®éçæ¸éãæ¤æ¸éä¸æè¶ é 5ï¼10 åï¼å¦åä½ ç彿¸ +å°±æåé¡äºãéæ°èæ ®ä¸ä¸ä½ ç彿¸ï¼æå®åæææ´å°ç彿¸ã人çå¤§è ¦ä¸è¬å¯ä»¥è¼é¬ +çåæè·è¹¤ 7 åä¸åçäºç©ï¼å¦æåå¢å¤ç話ï¼å°±æç³å¡äºãå³ä¾¿ä½ è°ç©é人ï¼ä½ ä¹å¯ +è½æè¨ä¸æ¸ ä½ 2 åææååéçäºæ ã + +卿ºæä»¶éï¼ä½¿ç¨ç©ºè¡ééä¸åç彿¸ãå¦æè©²å½æ¸éè¦è¢«å°åºï¼å®ç **EXPORT** å® +æè©²ç·è²¼å¨å®ççµæå¤§æ¬èä¹ä¸ãæ¯å¦ï¼ + +.. code-block:: c + + int system_is_up(void) + { + return system_state == SYSTEM_RUNNING; + } + EXPORT_SYMBOL(system_is_up); + +å¨å½æ¸ååä¸ï¼å å«å½æ¸ååå®åçæ¸æé¡åãéç¶ C èªè¨è£¡æ²æé樣çè¦æ±ï¼å¨ +Linux é鿝æå¡çåæ³ï¼å ç²é樣å¯ä»¥å¾ç°¡å®ç給è®è æä¾æ´å¤çæå¹å¼çä¿¡æ¯ã + + +7) éä¸ç彿¸éåºéå¾ +------------------------------ + +éç¶è¢«æäºäººè²ç¨±å·²ç¶éæï¼ä½æ¯ goto èªå¥ççå¹ç©éæ¯ç¶å¸¸è¢«ç·¨è¯å¨æä½¿ç¨ï¼å ·é« +形弿¯ç¡æ¢ä»¶è·³è½æä»¤ã + +ç¶ä¸å彿¸å¾å¤åä½ç½®éåºï¼ä¸¦ä¸éè¦åä¸äºé¡ä¼¼æ¸ ççå¸¸è¦æä½æï¼goto èªå¥å°±å¾æ¹ +便äºã妿䏦ä¸éè¦æ¸ çæä½ï¼é£éº¼ç´æ¥ return å³å¯ã + +鏿ä¸åè½å¤ 說æ goto è¡ç²æå®ç²ä½åå¨çæ¨ç±¤åã妿 goto è¦éæ¾ ``buffer``, +ä¸åä¸é¯çååå¯ä»¥æ¯ ``out_free_buffer:`` ãå¥å»ä½¿ç¨å ``err1:`` å ``err2:`` +鿍£çGW_BASIC å稱ï¼å ç²ä¸æ¦ä½ æ·»å æåªé¤äº (彿¸ç) éåºè·¯å¾ï¼ä½ å°±å¿ é å°å®å +éæ°ç·¨èï¼é樣æé£ä»¥å»æª¢é©æ£ç¢ºæ§ã + +ä½¿ç¨ goto ççç±æ¯ï¼ + +- ç¡æ¢ä»¶èªå¥å®¹æçè§£åè·è¹¤ +- åµå¥ç¨åº¦æ¸å° +- å¯ä»¥é¿å ç±æ¼ä¿®æ¹æå¿è¨æ´æ°åå¥çéåºé»èå°è´é¯èª¤ +- è®ç·¨è¯å¨çå»åªé¤åé¤ä»£ç¢¼çå·¥ä½ ;) + +.. code-block:: c + + int fun(int a) + { + int result = 0; + char *buffer; + + buffer = kmalloc(SIZE, GFP_KERNEL); + if (!buffer) + return -ENOMEM; + + if (condition1) { + while (loop1) { + ... + } + result = 1; + goto out_free_buffer; + } + ... + out_free_buffer: + kfree(buffer); + return result; + } + +ä¸åéè¦æ³¨æç常è¦é¯èª¤æ¯ ``ä¸å err é¯èª¤`` ï¼å°±å鿍£ï¼ + +.. code-block:: c + + err: + kfree(foo->bar); + kfree(foo); + return ret; + +éæ®µä»£ç¢¼çé¯èª¤æ¯ï¼å¨æäºéåºè·¯å¾ä¸ ``foo`` æ¯ NULLãéå¸¸æ æ³ä¸ï¼ééæå®åé¢ +æå ©åé¯èª¤æ¨ç±¤ ``err_free_bar:`` å ``err_free_foo:`` ä¾ä¿®å¾©éåé¯èª¤ï¼ + +.. code-block:: c + + err_free_bar: + kfree(foo->bar); + err_free_foo: + kfree(foo); + return ret; + +çæ³æ æ³ä¸ï¼ä½ æè©²æ¨¡æ¬é¯èª¤ä¾æ¸¬è©¦ææéåºè·¯å¾ã + + +8) 注é +------------------------------ + +æ³¨éæ¯å¥½çï¼ä¸éæé度注éçå±éªãæ°¸é ä¸è¦å¨æ³¨ééè§£éä½ ç代碼æ¯å¦ä½éä½çï¼ +æ´å¥½çåæ³æ¯è®å¥äººä¸çä½ ç代碼就å¯ä»¥æç½ï¼è§£é寫çå¾å·®çä»£ç¢¼æ¯æµªè²»æéã + +ä¸è¬çï¼ä½ æ³è¦ä½ çæ³¨éå訴å¥äººä½ ç代碼åäºä»éº¼ï¼è䏿¯æéº¼åçãä¹è«ä½ ä¸è¦æ +æ³¨éæ¾å¨ä¸å彿¸é«å §é¨ï¼å¦æå½æ¸è¤éå°ä½ éè¦ç¨ç«ç注éå ¶ä¸çä¸é¨åï¼ä½ å¾å¯è½ +éè¦åå°ç¬¬å ç« çä¸çãä½ å¯ä»¥åä¸äºå°æ³¨éä¾è¨»ææè¦åæäºå¾è°æ (æè æ§½ç³) ç +åæ³ï¼ä½ä¸è¦å 太å¤ãä½ æè©²åçï¼æ¯ææ³¨éæ¾å¨å½æ¸çé é¨ï¼å訴人åå®åäºä»éº¼ï¼ +ä¹å¯ä»¥å ä¸å®åéäºäºæ çåå ã + +ç¶æ³¨éå §æ ¸ API 彿¸æï¼è«ä½¿ç¨ kernel-doc æ ¼å¼ãè«ç +Documentation/doc-guide/ å scripts/kernel-doc 以ç²å¾è©³ç´°ä¿¡æ¯ã + +é· (å¤è¡) 注éçé¦é¸é¢¨æ ¼æ¯ï¼ + +.. code-block:: c + + /* + * This is the preferred style for multi-line + * comments in the Linux kernel source code. + * Please use it consistently. + * + * Description: A column of asterisks on the left side, + * with beginning and ending almost-blank lines. + */ + +å°æ¼å¨ net/ å drivers/net/ çæä»¶ï¼é¦é¸çé· (å¤è¡) 注éé¢¨æ ¼æäºä¸åã + +.. code-block:: c + + /* The preferred comment style for files in net/ and drivers/net + * looks like this. + * + * It is nearly the same as the generally preferred comment style, + * but there is no initial almost-blank line. + */ + +æ³¨éæ¸æä¹æ¯å¾éè¦çï¼ä¸ç®¡æ¯åºæ¬é¡å鿝è¡çé¡åãç²äºæ¹ä¾¿å¯¦ç¾éä¸é»ï¼æ¯ä¸è¡ +æåªè²æä¸åæ¸æ (ä¸è¦ä½¿ç¨éèä¾ä¸æ¬¡è²æå¤åæ¸æ)ã鿍£ä½ å°±æç©ºéä¾ç²æ¯åæ¸æ +坫䏿®µå°æ³¨éä¾è§£éå®åçç¨éäºã + + +9) ä½ å·²ç¶æäºæ å¼ç³äº +------------------------------ + +éæ²ä»éº¼ï¼æå齿¯é樣ãå¯è½ä½ ç使ç¨äºå¾é·æé Unix çæåå·²ç¶åè¨´ä½ +``GNU emacs`` è½èªåå¹«ä½ æ ¼å¼å C åå§ç¢¼ï¼èä¸ä½ 乿³¨æå°äºï¼ç¢ºå¯¦æ¯é樣ï¼ä¸éå® +æä½¿ç¨çé»èªå¼åæåæ³è¦çç¸å»çé (實éä¸ï¼çè³æ¯é¨æ©æçéè¦å·®ââç¡æ¸åç´å +å¨ GNU emacs éæåæ°¸é 䏿åµé åºä¸å好ç¨åº) (è¯è¨»ï¼Infinite Monkey Theorem) + +æä»¥ä½ è¦éº¼æ¾æ£ GNU emacsï¼è¦éº¼æ¹è®å®è®å®ä½¿ç¨æ´åççè¨å®ãè¦æ¡ç¨å¾ä¸åæ¹æ¡ï¼ +ä½ å¯ä»¥æä¸é¢é段ç²è²¼å°ä½ ç .emacs æä»¶éã + +.. code-block:: none + + (defun c-lineup-arglist-tabs-only (ignored) + "Line up argument lists by tabs, not spaces" + (let* ((anchor (c-langelem-pos c-syntactic-element)) + (column (c-langelem-2nd-pos c-syntactic-element)) + (offset (- (1+ column) anchor)) + (steps (floor offset c-basic-offset))) + (* (max steps 1) + c-basic-offset))) + + (dir-locals-set-class-variables + 'linux-kernel + '((c-mode . ( + (c-basic-offset . 8) + (c-label-minimum-indentation . 0) + (c-offsets-alist . ( + (arglist-close . c-lineup-arglist-tabs-only) + (arglist-cont-nonempty . + (c-lineup-gcc-asm-reg c-lineup-arglist-tabs-only)) + (arglist-intro . +) + (brace-list-intro . +) + (c . c-lineup-C-comments) + (case-label . 0) + (comment-intro . c-lineup-comment) + (cpp-define-intro . +) + (cpp-macro . -1000) + (cpp-macro-cont . +) + (defun-block-intro . +) + (else-clause . 0) + (func-decl-cont . +) + (inclass . +) + (inher-cont . c-lineup-multi-inher) + (knr-argdecl-intro . 0) + (label . -1000) + (statement . 0) + (statement-block-intro . +) + (statement-case-intro . +) + (statement-cont . +) + (substatement . +) + )) + (indent-tabs-mode . t) + (show-trailing-whitespace . t) + )))) + + (dir-locals-set-directory-class + (expand-file-name "~/src/linux-trees") + 'linux-kernel) + +éæè® emacs å¨ ``~/src/linux-trees`` ä¸ç C æºæä»¶ç²å¾æ´å¥½çå §æ ¸ä»£ç¢¼é¢¨æ ¼ã + +ä¸éå°±ç®ä½ åè©¦è® emacs æ£ç¢ºçæ ¼å¼å代碼失æäºï¼ä¹ä¸¦ä¸æå³èä½ å¤±å»äºä¸åï¼éå¯ +ä»¥ç¨ ``indent`` ã + +ä¸éï¼GNU indent 乿å GNU emacs 䏿¨£æåé¡çè¨å®ï¼æä»¥ä½ éè¦çµ¦å®ä¸äºå½ä»¤é¸ +é ãä¸éï¼ééä¸ç®å¤ªç³ç³ï¼å ç²å°±ç®æ¯ GNU indent çä½è ä¹èªå K&R çæ¬å¨æ§ +(GNU çäººä¸¦ä¸æ¯å£äººï¼ä»ååªæ¯å¨éååé¡ä¸è¢«å´éç誤å°äº)ï¼æä»¥ä½ åªè¦çµ¦ indent +æå®é¸é ``-kr -i8`` (代表 ``K&Rï¼8 å符縮é²``)ï¼æä½¿ç¨ ``scripts/Lindent`` +鿍£å°±å¯ä»¥ä»¥ææé«¦çæ¹å¼ç¸®é²åå§ç¢¼ã + +``indent`` æå¾å¤é¸é ï¼ç¹å¥æ¯éæ°æ ¼å¼å注éçæåï¼ä½ å¯è½éè¦çä¸ä¸å®çæåã +ä¸éè¨ä½ï¼ ``indent`` ä¸è½ä¿®æ£å£çç·¨ç¨ç¿æ £ã + + +10) Kconfig é ç½®æä»¶ +------------------------------ + +å°æ¼é叿ºç¢¼æ¨¹çææ Kconfig* é ç½®æä»¶ä¾èªªï¼å®åç¸®é²æ¹å¼ææä¸åãç·æ¨è +``config`` å®ç¾©çè¡ï¼ç¨ä¸åå¶è¡¨ç¬¦ç¸®é²ï¼ç¶è help ä¿¡æ¯ç縮é²åé¡å¤å¢å 2 å空 +æ ¼ãèåä¾å:: + + config AUDIT + bool "Auditing support" + depends on NET + help + Enable auditing infrastructure that can be used with another + kernel subsystem, such as SELinux (which requires this for + logging of avc messages output). Does not do system-call + auditing without CONFIG_AUDITSYSCALL. + +èé£äºå±éªçåè½ (æ¯å¦æäºæä»¶ç³»çµ±çå¯«æ¯æ) æè©²å¨å®åçæç¤ºå符串é顯èçè² +æéä¸é»:: + + config ADFS_FS_RW + bool "ADFS write support (DANGEROUS)" + depends on ADFS_FS + ... + +è¦æ¥çé ç½®æä»¶ç宿´ææªï¼è«ç Documentation/kbuild/kconfig-language.rstã + + +11) æ¸æçµæ§ +------------------------------ + +妿ä¸åæ¸æçµæ§ï¼å¨åµå»ºåé·æ¯å®çå®ç·å·è¡ç°å¢ä¹å¤å¯è¦ï¼é£éº¼å®å¿ é è¦æä¸åå¼ +ç¨è¨æ¸å¨ãå §æ ¸éæ²æå徿¶é (並ä¸å §æ ¸ä¹å¤çå徿¶éæ ¢ä¸æçä½ä¸)ï¼éæå³èä½ +çµå°éè¦è¨éä½ å°éç¨®æ¸æçµæ§çä½¿ç¨æ æ³ã + +å¼ç¨è¨æ¸æå³èä½ è½å¤ é¿å ä¸éï¼ä¸¦ä¸å 許å¤åç¨æ¶ä¸¦è¡è¨ªåé忏æçµæ§ââèä¸éè¦ +æå¿é忏æçµæ§å å å ç²æ«æä¸è¢«ä½¿ç¨å°±æ¶å¤±äºï¼é£äºç¨æ¶å¯è½ä¸éæ¯æ²ç¡äºä¸é£æ +è åäºä¸äºå ¶ä»äºæ èå·²ã + +注æä¸é **ä¸è½** å代å¼ç¨è¨æ¸ãä¸éæ¯ç²äºä¿ææ¸æçµæ§çä¸è´æ§ï¼èå¼ç¨è¨æ¸æ¯ä¸ +åå §å管çæå·§ãé常äºè é½éè¦ï¼ä¸è¦æå ©åææ··äºã + +å¾å¤æ¸æçµæ§å¯¦é䏿 2 ç´å¼ç¨è¨æ¸ï¼å®åé常æä¸å ``é¡`` çç¨æ¶ãåé¡è¨æ¸å¨çµ± +è¨åé¡ç¨æ¶çæ¸éï¼æ¯ç¶åé¡è¨æ¸å¨æ¸è³é¶æï¼å ¨å±è¨æ¸å¨æ¸ä¸ã + +é種 ``å¤ç´å¼ç¨è¨æ¸`` çä¾åå¯ä»¥å¨å §å管ç (``struct mm_struct``: mm_users å +mm_count)ï¼åæä»¶ç³»çµ± (``struct super_block``: s_count å s_active) 䏿¾å°ã + +è¨ä½ï¼å¦æå¦ä¸åå·è¡ç·ç´¢å¯ä»¥æ¾å°ä½ çæ¸æçµæ§ï¼ä½é忏æçµæ§æ²æå¼ç¨è¨æ¸å¨ï¼ +é裡幾ä¹è¯å®æ¯ä¸å bugã + + +12) å®ï¼æèåRTL +------------------------------ + +ç¨æ¼å®ç¾©å¸¸éçå®çåååæèéçæ¨ç±¤éè¦å¤§å¯«ã + +.. code-block:: c + + #define CONSTANT 0x12345 + +å¨å®ç¾©å¹¾åç¸éç常éæï¼æå¥½ç¨æèã + +å®çååè«ç¨å¤§å¯«åæ¯ï¼ä¸éå½¢å¦å½æ¸çå®çååå¯ä»¥ç¨å°å¯«åæ¯ã + +ä¸è¬çï¼å¦æè½å¯«æå §è¯å½æ¸å°±ä¸è¦å¯«æå彿¸çå®ã + +嫿å¤åèªå¥çå®æè©²è¢«å å«å¨ä¸å do-while 代碼å¡éï¼ + +.. code-block:: c + + #define macrofun(a, b, c) \ + do { \ + if (a == 5) \ + do_this(b, c); \ + } while (0) + +使ç¨å®çæåæé¿å çäºæ ï¼ + +1) å½±é¿æ§å¶æµç¨çå®ï¼ + +.. code-block:: c + + #define FOO(x) \ + do { \ + if (blah(x) < 0) \ + return -EBUGGERED; \ + } while (0) + +**é常** ä¸å¥½ãå®çèµ·ä¾åä¸å彿¸ï¼ä¸éå»è½å°è´ ``調ç¨`` å®ç彿¸éåºï¼ä¸è¦æ +äºè®è å¤§è ¦éçèªæ³åæå¨ã + +2) ä¾è³´æ¼ä¸ååºå®ååçæ¬å°è®éçå®ï¼ + +.. code-block:: c + + #define FOO(val) bar(index, val) + +å¯è½çèµ·ä¾åæ¯åä¸é¯çæ±è¥¿ï¼ä¸éå®é常容ææè®ä»£ç¢¼ç人æç³å¡ï¼èä¸å®¹æå°è´çèµ· +ä¾ä¸ç¸éçæ¹å帶ä¾é¯èª¤ã + +3) ä½ç²å·¦å¼ç叶忏çå®ï¼ FOO(x) = yï¼å¦ææäººæ FOO è®æä¸åå §è¯å½æ¸ç話ï¼é + ç¨®ç¨æ³å°±æåºé¯äºã + +4) å¿è¨äºåªå ç´ï¼ä½¿ç¨è¡¨éå¼å®ç¾©å¸¸éçå®å¿ é å°è¡¨éå¼ç½®æ¼ä¸å°å°æ¬èä¹å §ã叶忏 + çå®ä¹è¦æ³¨ææ¤é¡åé¡ã + +.. code-block:: c + + #define CONSTANT 0x4000 + #define CONSTEXP (CONSTANT | 3) + +5) å¨å®éå®ç¾©é¡ä¼¼å½æ¸çæ¬å°è®éæå½åè¡çªï¼ + +.. code-block:: c + + #define FOO(x) \ + ({ \ + typeof(x) ret; \ + ret = calc_ret(x); \ + (ret); \ + }) + +ret æ¯æ¬å°è®éçéç¨åå - __foo_ret æ´ä¸å®¹æèä¸åå·²åå¨çè®éè¡çªã + +cpp æåå°å®çè¬è§£å¾è©³ç´°ãgcc internals æåä¹è©³ç´°è¬è§£äº RTLï¼å §æ ¸éçå½ç·¨èª +è¨ç¶å¸¸ç¨å°å®ã + + +13) åå°å §æ ¸æ¶æ¯ +------------------------------ + +å §æ ¸éç¼è æè©²æ¯åéè¯å¥½æè²çãè«ä¸å®æ³¨æå §æ ¸ä¿¡æ¯çæ¼å¯«ï¼ä»¥çµ¦äººä»¥å¥½çå°è±¡ã +ä¸è¦ç¨ä¸è¦ç¯çå®è©æ¯å¦ ``dont``ï¼èè¦ç¨ ``do not`` æè ``don't`` ãä¿èéäºä¿¡ +æ¯ç°¡å®æäº,ç¡æ§ç¾©ã + +å §æ ¸ä¿¡æ¯ä¸å¿ ä»¥è±æå¥èçµæã + +å¨å°æ¬èéåå°æ¸å (%d) æ²æä»»ä½å¹å¼ï¼æè©²é¿å 鿍£åã + +<linux/device.h> éæä¸äºé© 忍¡å診æ·å®ï¼ä½ æè©²ä½¿ç¨å®åï¼ä»¥ç¢ºä¿ä¿¡æ¯å°ææ¼æ£ç¢º +çè¨ååé© åï¼ä¸¦ä¸è¢«æ¨è¨äºæ£ç¢ºçæ¶æ¯ç´å¥ãéäºå®æï¼dev_err(), dev_warn(), +dev_info() ççãå°æ¼é£äºä¸åæåç¹å®è¨åç¸éé£çä¿¡æ¯ï¼<linux/printk.h> å®ç¾© +äº pr_notice(), pr_info(), pr_warn(), pr_err() åå ¶ä»ã + +寫åºå¥½ç調試信æ¯å¯ä»¥æ¯ä¸åå¾å¤§çææ°ï¼ä¸æ¦ä½ 寫åºå¾ï¼éäºä¿¡æ¯å¨é ç¨é¤é¯æè½æ +便¥µå¤§ç幫å©ãç¶èåå°èª¿è©¦ä¿¡æ¯çèçæ¹å¼ååå°é調試信æ¯ä¸åãå ¶ä» pr_XXX() +彿¸è½ç¡æ¢ä»¶å°åå°ï¼pr_debug() å»ä¸ï¼é»èªæ æ³ä¸å®ä¸æè¢«ç·¨è¯ï¼é¤éå®ç¾©äº DEBUG +æè¨å®äº CONFIG_DYNAMIC_DEBUGã實éé忍£æ¯ç²äº dev_dbg()ï¼ä¸åç¸éç´å®æ¯å¨ä¸ +åå·²ç¶éåäº DEBUG æï¼ä½¿ç¨ VERBOSE_DEBUG 便·»å dev_vdbg()ã + +許å¤åç³»çµ±ææ Kconfig 調試é¸é ä¾éå -DDEBUG å¨å°æç Makefile 裡é¢ï¼å¨å ¶ä» +æ æ³ä¸ï¼ç¹æ®æä»¶ä½¿ç¨ #define DEBUGãç¶ä¸æ¢èª¿è©¦ä¿¡æ¯éè¦è¢«ç¡æ¢ä»¶åå°æï¼ä¾å¦ï¼ +妿已ç¶å å«ä¸å調試ç¸éç #ifdef æ¢ä»¶ï¼printk(KERN_DEBUG ...) å°±å¯è¢«ä½¿ç¨ã + + +14) åé å §å +------------------------------ + +å §æ ¸æä¾äºä¸é¢çä¸è¬ç¨éçå §ååé 彿¸ï¼ +kmalloc(), kzalloc(), kmalloc_array(), kcalloc(), vmalloc() å vzalloc()ã +è«åè API ææªä»¥ç²åæéå®åç詳細信æ¯ã + +å³éçµæ§é«å¤§å°çé¦é¸å½¢å¼æ¯é樣çï¼ + +.. code-block:: c + + p = kmalloc(sizeof(*p), ...); + +å¦å¤ä¸ç¨®å³éæ¹å¼ä¸ï¼sizeof çæä½æ¸æ¯çµæ§é«çååï¼é樣æéä½å¯è®æ§ï¼ä¸¦ä¸å¯è½ +æå¼å ¥ bugãæå¯è½æéè®éé¡å被æ¹è®æï¼èå°æçå³éçµ¦å §ååé 彿¸ç sizeof +ççµæä¸è®ã + +å¼·å¶è½æä¸å void æéè¿å弿¯å¤é¤çãC èªè¨æ¬èº«ä¿èäºå¾ void æéå°å ¶ä»ä»»ä½ +æéé¡åçè½ææ¯æ²æåé¡çã + +åé ä¸åæ¸çµçé¦é¸å½¢å¼æ¯é樣çï¼ + +.. code-block:: c + + p = kmalloc_array(n, sizeof(...), ...); + +åé ä¸åé¶é·æ¸çµçé¦é¸å½¢å¼æ¯é樣çï¼ + +.. code-block:: c + + p = kcalloc(n, sizeof(...), ...); + +å ©ç¨®å½¢å¼æª¢æ¥åé å¤§å° n * sizeof(...) çæº¢åºï¼å¦ææº¢åºè¿å NULLã + + +15) å §è¯å¼ç +------------------------------ + +æä¸å常è¦çèª¤è§£æ¯ ``å §è¯`` æ¯ gcc æä¾çå¯ä»¥è®ä»£ç¢¼éè¡æ´å¿«çä¸åé¸é ãéç¶ä½¿ +ç¨å §è¯å½æ¸ææåæ¯æ°ç¶ç (æ¯å¦ä½ç²ä¸ç¨®æ¿ä»£å®çæ¹å¼ï¼è«ç第åäºç« )ï¼ä¸éå¾å¤æ +æ³ä¸ä¸æ¯é樣ãinline çéåº¦ä½¿ç¨æä½¿å §æ ¸è®å¤§ï¼å¾è使æ´å系統éè¡éåº¦è®æ ¢ã +å ç²é«ç©å¤§å §æ ¸æå ç¨æ´å¤çæä»¤é«éç·©åï¼è䏿å°è´ pagecache çå¯ç¨å §åæ¸å°ã +æ³åä¸ä¸ï¼ä¸æ¬¡ pagecache æªå½ä¸å°±æå°è´ä¸æ¬¡ç£ç¢å°åï¼å°èæ 5 毫ç§ã5 毫ç§ç +æéå § CPU è½å·è¡å¾å¤å¾å¤æä»¤ã + +ä¸ååºæ¬çå忝妿ä¸å彿¸æ 3 è¡ä»¥ä¸ï¼å°±ä¸è¦æå®è®æå §è¯å½æ¸ãéåååçä¸ +åä¾å¤æ¯ï¼å¦æä½ ç¥éæå忏æ¯ä¸åç·¨è¯æå¸¸éï¼èä¸å ç²éå常éä½ ç¢ºå®ç·¨è¯å¨å¨ +ç·¨è¯æè½åªåæä½ ç彿¸ç大é¨å代碼ï¼é£ä»ç¶å¯ä»¥çµ¦å®å ä¸ inline ééµåã +kmalloc() å §è¯å½æ¸å°±æ¯ä¸åå¾å¥½çä¾åã + +人åç¶å¸¸ä¸»å¼µçµ¦ static çèä¸åªç¨äºä¸æ¬¡ç彿¸å ä¸ inlineï¼å¦æ¤ä¸ææä»»ä½æå¤±ï¼ +å ç²æ²æä»éº¼å¥½æ¬è¡¡çãéç¶å¾æè¡ä¸èªªéæ¯æ£ç¢ºçï¼ä½æ¯å¯¦éä¸éç¨®æ æ³ä¸å³ä½¿ä¸å +inline gcc ä¹å¯ä»¥èªåä½¿å ¶å §è¯ãèä¸å ¶ä»ç¨æ¶å¯è½æè¦æ±ç§»é¤ inlineï¼ç±æ¤èä¾ç +çè«ææµæ¶ inline èªèº«çæ½å¨å¹å¼ï¼å¾ä¸å失ã + + +16) 彿¸è¿åå¼åå½å +------------------------------ + +彿¸å¯ä»¥è¿åå¤ç¨®ä¸åé¡åçå¼ï¼æå¸¸è¦çä¸ç¨®æ¯è¡¨æå½æ¸å·è¡æåæè 失æçå¼ã鿍£ +çä¸åå¼å¯ä»¥è¡¨ç¤ºç²ä¸åé¯èª¤ä»£ç¢¼æ´æ¸ (-Exxxï¼å¤±æï¼0ï¼æå) æè ä¸å ``æå`` +å¸ç¾å¼ (0ï¼å¤±æï¼é0ï¼æå)ã + +æ··å使ç¨éå ©ç¨®è¡¨éæ¹å¼æ¯é£æ¼ç¼ç¾ç bug ç便ºã妿 C èªè¨æ¬èº«å´æ ¼ååæ´å½¢å +å¸ç¾åè®éï¼é£éº¼ç·¨è¯å¨å°±è½å¤ 幫æåç¼ç¾éäºé¯èª¤... ä¸é C èªè¨ä¸ååãç²äºé¿å +ç¢çé種 bugï¼è«éµå¾ªä¸é¢çæ £ä¾:: + + 妿彿¸çå忝ä¸åå使è å¼·å¶æ§çå½ä»¤ï¼é£éº¼éå彿¸æè©²è¿åé¯èª¤ä»£ + ç¢¼æ´æ¸ã妿æ¯ä¸å夿·ï¼é£éº¼å½æ¸æè©²è¿åä¸å "æå" å¸ç¾å¼ã + +æ¯å¦ï¼ ``add work`` æ¯ä¸åå½ä»¤ï¼æä»¥ add_work() 卿åæè¿å 0ï¼å¨å¤±ææè¿å +-EBUSYãé¡ä¼¼çï¼å ç² ``PCI device present`` æ¯ä¸å夿·ï¼æä»¥ pci_dev_present() +卿忾å°ä¸åå¹é çè¨åææè©²è¿å 1ï¼å¦ææ¾ä¸å°ææè©²è¿å 0ã + +ææ EXPORTed 彿¸é½å¿ é éµå®éåæ £ä¾ï¼ææçå ¬å ±å½æ¸ä¹é½æè©²å¦æ¤ãç§æ +(static) 彿¸ä¸éè¦å¦æ¤ï¼ä½æ¯æå乿¨è¦é樣åã + +è¿å弿¯å¯¦éè¨ç®çµæè䏿¯è¨ç®æ¯å¦æåçæ¨èªç彿¸ä¸åæ¤æ £ä¾çéå¶ãä¸è¬çï¼ +ä»åééè¿åä¸äºæ£å¸¸å¼ç¯åä¹å¤ççµæä¾è¡¨ç¤ºåºé¯ãå ¸åçä¾åæ¯è¿åæéç彿¸ï¼ +ä»åä½¿ç¨ NULL æè ERR_PTR æ©å¶ä¾å ±åé¯èª¤ã + + +17) ä¸è¦éæ°ç¼æå §æ ¸å® +------------------------------ + +é æä»¶ include/linux/kernel.h å å«äºä¸äºå®ï¼ä½ æè©²ä½¿ç¨å®åï¼èä¸è¦èªå·±å¯«ä¸äº +å®åçè®ç¨®ãæ¯å¦ï¼å¦æä½ éè¦è¨ç®ä¸åæ¸çµçé·åº¦ï¼ä½¿ç¨éåå® + +.. code-block:: c + + #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) + +é¡ä¼¼çï¼å¦æä½ è¦è¨ç®æçµæ§é«æå¡ç大å°ï¼ä½¿ç¨ + +.. code-block:: c + + #define sizeof_field(t, f) (sizeof(((t*)0)->f)) + +éæå¯ä»¥åå´æ ¼çé¡å檢æ¥ç min() å max() å®ï¼å¦æä½ éè¦å¯ä»¥ä½¿ç¨å®åãä½ å¯ä»¥ +èªå·±ççé£åé æä»¶ééå®ç¾©äºä»éº¼ä½ å¯ä»¥æ¿ä¾ç¨çæ±è¥¿ï¼å¦ææå®ç¾©ç話ï¼ä½ 就䏿 +å¨ä½ ç代碼éèªå·±éæ°å®ç¾©ã + + +18) ç·¨è¼¯å¨æ¨¡å¼è¡åå ¶ä»éè¦ç¾ å¦çäºæ +-------------------------------------------------- + +æä¸äºç·¨è¼¯å¨å¯ä»¥è§£éåµå ¥å¨æºæä»¶éçç±ä¸äºç¹æ®æ¨è¨æ¨æçé 置信æ¯ãæ¯å¦ï¼emacs +è½å¤ è§£é被æ¨è¨æé樣çè¡ï¼ + +.. code-block:: c + + -*- mode: c -*- + +æè 鿍£çï¼ + +.. code-block:: c + + /* + Local Variables: + compile-command: "gcc -DMAGIC_DEBUG_FLAG foo.c" + End: + */ + +Vim è½å¤ è§£é鿍£çæ¨è¨ï¼ + +.. code-block:: c + + /* vim:set sw=8 noet */ + +ä¸è¦å¨åå§ç¢¼ä¸å å«ä»»ä½é樣çå §å®¹ãæ¯åäººé½æä»èªå·±ç編輯å¨é ç½®ï¼ä½ çæºæä»¶ä¸ +æè©²è¦èå¥äººçé ç½®ãéå æ¬æé縮é²å模å¼é ç½®çæ¨è¨ã人åå¯ä»¥ä½¿ç¨ä»åèªå·±å®è£½ +çæ¨¡å¼ï¼æè 使ç¨å ¶ä»å¯ä»¥ç¢çæ£ç¢ºç縮é²ç巧妿¹æ³ã + + +19) å §è¯å½ç·¨ +------------------------------ + +å¨ç¹å®æ¶æ§ç代碼ä¸ï¼ä½ å¯è½éè¦å §è¯å½ç·¨è CPU åå¹³å°ç¸éåè½é£æ¥ãéè¦ééº¼åæ +å°±ä¸è¦ç¶è±«ãç¶èï¼ç¶ C å¯ä»¥å®æå·¥ä½æï¼ä¸è¦å¹³ç½ç¡æ å°ä½¿ç¨å §è¯å½ç·¨ãå¨å¯è½çæ +æ³ä¸ï¼ä½ å¯ä»¥ä¸¦ä¸æè©²ç¨ C åç¡¬é«æºéã + +è«èæ ®å»å¯«æç¶éç¨ä½å (wrap common bits) çå §è¯å½ç·¨çç°¡å®è¼å©å½æ¸ï¼å¥å»éè¤ +å°å¯«ä¸åªæç´°å¾®å·®ç°å §è¯å½ç·¨ãè¨ä½å §è¯å½ç·¨å¯ä»¥ä½¿ç¨ C 忏ã + +大åï¼æä¸å®è¤é度çå½ç·¨å½æ¸æè©²æ¾å¨ .S æä»¶å §ï¼ç¨ç¸æç C ååå®ç¾©å¨ C é æ +ä»¶ä¸ãå½ç·¨å½æ¸ç C ååæè©²ä½¿ç¨ ``asmlinkage`` ã + +ä½ å¯è½éè¦æå½ç·¨èªå¥æ¨è¨ç² volatileï¼ç¨ä¾é»æ¢ GCC 卿²ç¼ç¾ä»»ä½å¯ä½ç¨å¾å°±æå® +ç§»é¤äºãä½ ä¸å¿ 總æ¯é樣åï¼å管ï¼éä¸å¿ è¦çèåæéå¶åªåã + +å¨å¯«ä¸åå å«å¤æ¢æä»¤çå®åå §è¯å½ç·¨èªå¥æï¼ææ¯æ¢æä»¤ç¨å¼èåå²èä¸åå ä¸è¡ï¼ +é¤äºæå¾ä¸æ¢æä»¤å¤ï¼å¨æ¯åæä»¤çµå°¾å ä¸ \n\tï¼è®å½ç·¨è¼¸åºæå¯ä»¥æ£ç¢ºå°ç¸®é²ä¸ä¸æ¢ +æä»¤ï¼ + +.. code-block:: c + + asm ("magic %reg1, #42\n\t" + "more_magic %reg2, %reg3" + : /* outputs */ : /* inputs */ : /* clobbers */); + + +20) æ¢ä»¶ç·¨è¯ +------------------------------ + +åªè¦å¯è½ï¼å°±ä¸è¦å¨ .c æä»¶è£¡é¢ä½¿ç¨é èçæ¢ä»¶ (#if, #ifdef)ï¼é樣åè®ä»£ç¢¼æ´é£ +é±è®ä¸¦ä¸æ´é£å»è·è¹¤éè¼¯ãæ¿ä»£æ¹æ¡æ¯ï¼å¨é æä»¶ä¸ç¨é èçæ¢ä»¶æä¾çµ¦é£äº .c æä»¶ +使ç¨ï¼å給 #else æä¾ä¸åç©ºæ¨ (no-op stub) çæ¬ï¼ç¶å¾å¨ .c æä»¶å §ç¡æ¢ä»¶å°èª¿ç¨ +é£äº (å®ç¾©å¨é æä»¶å §ç) 彿¸ã鿍£åï¼ç·¨è¯å¨æé¿å ç²æ¨å½æ¸ (stub) ç調ç¨çæ +ä»»ä½ä»£ç¢¼ï¼ç¢çççµææ¯ç¸åçï¼ä½éè¼¯å°æ´å æ¸ æ°ã + +æå¥½å¾åæ¼ç·¨è¯æ´å彿¸ï¼è䏿¯å½æ¸çä¸é¨åæè¡¨éå¼çä¸é¨åãèå ¶æ¾ä¸å ifdef +å¨è¡¨éå¼å §ï¼ä¸å¦åè§£åºé¨åæå ¨é¨è¡¨éå¼ï¼æ¾é²ä¸åå®ç¨çè¼å©å½æ¸ï¼ä¸¦æç¨é èç +æ¢ä»¶å°éåè¼å©å½æ¸å §ã + +å¦æä½ æä¸åå¨ç¹å®é ç½®ä¸ï¼å¯è½è®ææªä½¿ç¨ç彿¸æè®éï¼ç·¨è¯å¨æè¦åå®å®ç¾©äºä½ +æªä½¿ç¨ï¼æå®æ¨è¨ç² __maybe_unused è䏿¯å°å®å å«å¨ä¸åé èçæ¢ä»¶ä¸ã(ç¶èï¼å¦ +æä¸å彿¸æè®éç¸½æ¯æªä½¿ç¨ï¼å°±ç´æ¥åªé¤å®ã) + +å¨ä»£ç¢¼ä¸ï¼åå¯è½å°ä½¿ç¨ IS_ENABLED å®ä¾è½åæå Kconfig æ¨è¨ç² C çå¸ç¾ +表éå¼ï¼ä¸¦å¨ä¸è¬ç C æ¢ä»¶ä¸ä½¿ç¨å®ï¼ + +.. code-block:: c + + if (IS_ENABLED(CONFIG_SOMETHING)) { + ... + } + +ç·¨è¯å¨æåå¸¸éæºçï¼ç¶å¾å°±åä½¿ç¨ #ifdef 飿¨£å»å 嫿æé¤ä»£ç¢¼å¡ï¼æä»¥é䏿叶 +ä¾ä»»ä½éè¡æéé·ãç¶èï¼éç¨®æ¹æ³ä¾èå 許 C ç·¨è¯å¨æ¥çå¡å §ç代碼ï¼ä¸¦æª¢æ¥å®çæ£ +ç¢ºæ§ (èªæ³ï¼é¡åï¼ç¬¦èå¼ç¨ï¼çç)ãå æ¤ï¼å¦ææ¢ä»¶ä¸æ»¿è¶³ï¼ä»£ç¢¼å¡å §çå¼ç¨ç¬¦èå°± +ä¸å卿ï¼ä½ éæ¯å¿ é å»ç¨ #ifdefã + +å¨ä»»ä½ææç¾©ç #if æ #ifdef å¡çæ«å°¾ (è¶ éå¹¾è¡ç)ï¼å¨ #endif åä¸è¡çå¾é¢å¯«ä¸ +è¨»è§£ï¼æ³¨ééåæ¢ä»¶è¡¨éå¼ãä¾å¦ï¼ + +.. code-block:: c + + #ifdef CONFIG_SOMETHING + ... + #endif /* CONFIG_SOMETHING */ + + +éé I) åè +------------------- + +The C Programming Language, 第äºç +ä½è ï¼Brian W. Kernighan å Denni M. Ritchie. +Prentice Hall, Inc., 1988. +ISBN 0-13-110362-8 (è»ç®), 0-13-110370-9 (硬ç®). + +The Practice of Programming +ä½è ï¼Brian W. Kernighan å Rob Pike. +Addison-Wesley, Inc., 1999. +ISBN 0-201-61586-X. + +GNU æå - éµå¾ª K&R æ¨æºåæ¤ææ¬ - cpp, gcc, gcc internals and indent, +é½å¯ä»¥å¾ https://www.gnu.org/manual/ æ¾å° + +WG14 æ¯ C èªè¨çå鿍æºåå·¥ä½çµï¼URL: http://www.open-std.org/JTC1/SC22/WG14/ + +Kernel process/coding-style.rstï¼ä½è greg@kroah.com ç¼è¡¨æ¼ OLS 2002ï¼ +http://www.kroah.com/linux/talks/ols_2002_kernel_codingstyle_talk/html/ + diff --git a/Documentation/translations/zh_TW/process/development-process.rst b/Documentation/translations/zh_TW/process/development-process.rst new file mode 100644 index 0000000000000..45e6385647cd2 --- /dev/null +++ b/Documentation/translations/zh_TW/process/development-process.rst @@ -0,0 +1,30 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/development-process.rst <development_process_main>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +.. _tw_development_process_main: + +å §æ ¸éç¼éç¨æå +================ + +å §å®¹: + +.. toctree:: + :numbered: + :maxdepth: 2 + + 1.Intro + 2.Process + 3.Early-stage + 4.Coding + 5.Posting + 6.Followthrough + 7.AdvancedTopics + 8.Conclusion + +æ¬ææªçç®çæ¯å¹«å©éç¼äººå¡ï¼åå ¶ç¶çï¼ä»¥æå°çæ«ææèéç¼ç¤¾ååä½ãå®è©¦åè¨ééå社åå¦ä½ä»¥ä¸ç¨®ä¸çæLinuxå §æ ¸éç¼ï¼æè 實é䏿¯èªç±è»é«éç¼ï¼ç人å¯ä»¥è¨ªåçæ¹å¼å·¥ä½ãéç¶é裡æä¸äºæè¡è³æï¼ä½éæ¯ä¸åé¢åéç¨çè¨è«ï¼ä¸éè¦æ·±å ¥äºè§£å §æ ¸ç·¨ç¨å°±å¯ä»¥çè§£ã + diff --git a/Documentation/translations/zh_TW/process/email-clients.rst b/Documentation/translations/zh_TW/process/email-clients.rst new file mode 100644 index 0000000000000..4ba543d06f3bb --- /dev/null +++ b/Documentation/translations/zh_TW/process/email-clients.rst @@ -0,0 +1,252 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _tw_email_clients: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/email-clients.rst <email_clients>` + +è¯è :: + + 䏿çç¶è·è ï¼ è³å¨å¨ Harry Wei <harryxiyou@gmail.com> + 䏿çç¿»è¯è ï¼ è³å¨å¨ Harry Wei <harryxiyou@gmail.com> + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + ä¸æçæ ¡è¯è ï¼ Yinglin Luan <synmyth@gmail.com> + Xiaochen Wang <wangxiaochen0@gmail.com> + yaxinsn <yaxinsn@163.com> + Hu Haowen <src.res@email.cn> + +Linuxéµä»¶å®¢æ¶ç«¯é ç½®ä¿¡æ¯ +======================= + +Git +--- + +ç¾å¨å¤§å¤æ¸éç¼äººå¡ä½¿ç¨ ``git send-email`` è䏿¯å¸¸è¦çé»åéµä»¶å®¢æ¶ç«¯ãéæ¹é¢ +çæåé常好ã卿¥æ¶ç«¯ï¼ç¶è·äººå¡ä½¿ç¨ ``git am`` å è¼è£ä¸ã + +å¦æä½ æ¯ ``git`` æ°æï¼é£éº¼æä½ ç第ä¸åè£ä¸ç¼éçµ¦ä½ èªå·±ãå°å ¶ä¿åç²å 嫿æ +æ¨é¡çåå§ææ¬ãéè¡ ``git am raw_email.txt`` ï¼ç¶å¾ä½¿ç¨ ``git log`` æ¥çæ´ +æ¹æ¥èªã妿工使£å¸¸ï¼åå°è£ä¸ç¼éå°ç¸æçéµä»¶å表ã + + +æ®éé ç½® +-------- +Linuxå §æ ¸è£ä¸æ¯éééµä»¶è¢«æäº¤çï¼æå¥½æè£ä¸ä½ç²éµä»¶é«çå §åµææ¬ãæäºç¶è·è +æ¥æ¶éä»¶ï¼ä½æ¯éä»¶çå §å®¹æ ¼å¼æè©²æ¯"text/plain"ãç¶èï¼éä»¶ä¸è¬æ¯ä¸è´æçï¼ +å ç²éæä½¿è£ä¸çå¼ç¨é¨åå¨è©è«éç¨ä¸è®çå¾å°é£ã + +ç¨ä¾ç¼éLinuxå §æ ¸è£ä¸çéµä»¶å®¢æ¶ç«¯å¨ç¼éè£ä¸ææè©²èæ¼ææ¬çåå§çæ ãä¾å¦ï¼ +ä»åä¸è½æ¹è®æè åªé¤å¶è¡¨ç¬¦æè ç©ºæ ¼ï¼çè³æ¯å¨æ¯ä¸è¡çéé æè çµå°¾ã + +ä¸è¦éé"format=flowed"模å¼ç¼éè£ä¸ã鿍£æå¼èµ·ä¸å¯é æä»¥åæå®³çæ·è¡ã + +ä¸è¦è®ä½ çéµä»¶å®¢æ¶ç«¯é²è¡èªåæè¡ã鿍£ä¹æç ´å£ä½ çè£ä¸ã + +éµä»¶å®¢æ¶ç«¯ä¸è½æ¹è®ææ¬çå符é編碼æ¹å¼ãè¦ç¼éçè£ä¸åªè½æ¯ASCIIæè UTF-8編碼æ¹å¼ï¼ +å¦æä½ ä½¿ç¨UTF-8編碼æ¹å¼ç¼ééµä»¶ï¼é£éº¼ä½ å°æé¿å ä¸äºå¯è½ç¼ççå符éåé¡ã + +éµä»¶å®¢æ¶ç«¯æè©²å½¢æä¸¦ä¸ä¿æ References: æè In-Reply-To: æ¨é¡ï¼é£éº¼ +éµä»¶è©±é¡å°±ä¸æä¸æ·ã + +è¤è£½ç²å¸(æè åªè²¼ç²å¸)é常ä¸è½ç¨æ¼è£ä¸ï¼å ç²å¶è¡¨ç¬¦æè½æç²ç©ºæ ¼ã使ç¨xclipboard, xclip +æè xcutselä¹è¨±å¯ä»¥ï¼ä½æ¯æå¥½æ¸¬è©¦ä¸ä¸æè é¿å 使ç¨è¤è£½ç²å¸ã + +ä¸è¦å¨ä½¿ç¨PGP/GPGç½²åçéµä»¶ä¸å å«è£ä¸ã鿍£æä½¿å¾å¾å¤è ³æ¬ä¸è½è®ååé©ç¨æ¼ä½ çè£ä¸ã +ï¼éååé¡æè©²æ¯å¯ä»¥ä¿®å¾©çï¼ + +å¨çµ¦å §æ ¸éµä»¶å表ç¼éè£ä¸ä¹åï¼çµ¦èªå·±ç¼éä¸åè£ä¸æ¯åä¸é¯ç主æï¼ä¿åæ¥æ¶å°ç +éµä»¶ï¼å°è£ä¸ç¨'patch'å½ä»¤æä¸ï¼å¦ææåäºï¼åçµ¦å §æ ¸éµä»¶å表ç¼éã + + +ä¸äºéµä»¶å®¢æ¶ç«¯æç¤º +------------------ +é裡給åºä¸äºè©³ç´°çMUAé ç½®æç¤ºï¼å¯ä»¥ç¨æ¼çµ¦Linuxå §æ ¸ç¼éè£ä¸ãéäºä¸¦ä¸æå³æ¯ +ææçè»é«å é 置總çµã + +說æï¼ +TUI = ä»¥ææ¬ç²åºç¤çç¨æ¶æ¥å£ +GUI = åå½¢çé¢ç¨æ¶æ¥å£ + +Alpine (TUI) +~~~~~~~~~~~~ + +é ç½®é¸é ï¼ +å¨"Sending Preferences"é¨åï¼ + +- "Do Not Send Flowed Text"å¿ é éå +- "Strip Whitespace Before Sending"å¿ é éé + +ç¶å¯«éµä»¶æï¼å æ¨æè©²æ¾å¨è£ä¸æåºç¾çå°æ¹ï¼ç¶å¾æä¸CTRL-Rçµåéµï¼ä½¿æå®ç +è£ä¸æä»¶åµå ¥å°éµä»¶ä¸ã + +Evolution (GUI) +~~~~~~~~~~~~~~~ + +ä¸äºéç¼è æåç使ç¨å®ç¼éè£ä¸ + +ç¶é¸æéµä»¶é¸é ï¼Preformat + å¾Format->Heading->Preformatted (Ctrl-7)æè å·¥å ·æ¬ + +ç¶å¾ä½¿ç¨ï¼ + Insert->Text File... (Alt-n x)æå ¥è£ä¸æä»¶ã + +ä½ éå¯ä»¥"diff -Nru old.c new.c | xclip"ï¼é¸æPreformatï¼ç¶å¾ä½¿ç¨ä¸ééµé²è¡ç²å¸ã + +Kmail (GUI) +~~~~~~~~~~~ + +ä¸äºéç¼è æåç使ç¨å®ç¼éè£ä¸ã + +é»èªè¨ç½®ä¸ç²HTMLæ ¼å¼æ¯åé©çï¼ä¸è¦åç¨å®ã + +ç¶æ¸å¯«ä¸å°éµä»¶çæåï¼å¨é¸é ä¸é¢ä¸è¦é¸æèªåæè¡ãå¯ä¸ç缺é»å°±æ¯ä½ å¨éµä»¶ä¸è¼¸å ¥çä»»ä½ææ¬ +é½ä¸æè¢«èªåæè¡ï¼å æ¤ä½ å¿ é å¨ç¼éè£ä¸ä¹åæåæè¡ãæç°¡å®çæ¹æ³å°±æ¯åç¨èªåæè¡ä¾æ¸å¯«éµä»¶ï¼ +ç¶å¾æå®ä¿åç²è稿ã䏿¦ä½ å¨è稿ä¸å次æéå®ï¼å®å·²ç¶å ¨é¨èªåæè¡äºï¼é£éº¼ä½ çéµä»¶éç¶æ²æ +鏿èªåæè¡ï¼ä½æ¯é䏿失å»å·²æçèªåæè¡ã + +å¨éµä»¶çåºé¨ï¼æå ¥è£ä¸ä¹åï¼æ¾ä¸å¸¸ç¨çè£ä¸å®ç符ï¼ä¸åé£åè(---)ã + +ç¶å¾å¨"Message"è宿¢ç®ï¼é¸ææå ¥æä»¶ï¼æ¥èé¸åä½ çè£ä¸æä»¶ãéæä¸åé¡å¤çé¸é ï¼ä½ å¯ä»¥ +ééå®é ç½®ä½ çéµä»¶å»ºç«å·¥å ·æ¬èå®ï¼éå¯ä»¥å¸¶ä¸"insert file"忍ã + +ä½ å¯ä»¥å®å ¨å°ééGPGæ¨è¨éä»¶ï¼ä½æ¯å §åµè£ä¸æå¥½ä¸è¦ä½¿ç¨GPGæ¨è¨å®åãä½ç²å §åµææ¬çç°½ç¼è£ä¸ï¼ +ç¶å¾GPG䏿å7ä½ç·¨ç¢¼ææä½¿ä»åè®çæ´å è¤éã + +å¦æä½ éè¦ä»¥éä»¶çå½¢å¼ç¼éè£ä¸ï¼é£éº¼å°±å³éµé»æéä»¶ï¼ç¶å¾é¸ä¸å±¬æ§ï¼çªåº"Suggest automatic +display"ï¼éæ¨£å §åµéä»¶æ´å®¹æè®è®è çå°ã + +ç¶ä½ è¦ä¿åå°è¦ç¼éçå §åµææ¬è£ä¸ï¼ä½ å¯ä»¥å¾æ¶æ¯åè¡¨çªæ ¼é¸æå å«è£ä¸çéµä»¶ï¼ç¶å¾å³æé¸æ +"save as"ãä½ å¯ä»¥ä½¿ç¨ä¸åæ²ææ´æ¹çå å«è£ä¸çéµä»¶ï¼å¦æå®æ¯ä»¥æ£ç¢ºçå½¢å¼çµæãç¶ä½ æ£çå¨å® +èªå·±ççªå£ä¹ä¸å¯çï¼é£ææ²æé¸é å¯ä»¥ä¿åéµä»¶--å·²ç¶æä¸å鿍£çbug被å¯å ±å°äºkmailçbugzilla +並ä¸å¸æéå°æè¢«èçãéµä»¶æ¯ä»¥åªéå°æåç¨æ¶å¯è®å¯«çæ¬é被ä¿åçï¼æä»¥å¦æä½ æ³æéµä»¶è¤è£½å°å ¶ä»å°æ¹ï¼ +ä½ ä¸å¾ä¸æä»åçæ¬éæ¹ç²çµæè æ´é«å¯è®ã + +Lotus Notes (GUI) +~~~~~~~~~~~~~~~~~ + +ä¸è¦ä½¿ç¨å®ã + +Mutt (TUI) +~~~~~~~~~~ + +å¾å¤Linuxéç¼äººå¡ä½¿ç¨mutt客æ¶ç«¯ï¼æä»¥èæå®è¯å®å·¥ä½çé常æ¼äº®ã + +Muttä¸èªå¸¶ç·¨è¼¯å¨ï¼æä»¥ä¸ç®¡ä½ 使ç¨ä»éº¼ç·¨è¼¯å¨é½ä¸æè©²å¸¶æèªåæ·è¡ã大夿¸ç·¨è¼¯å¨é½å¸¶æ +ä¸å"insert file"é¸é ï¼å®å¯ä»¥éé䏿¹è®æä»¶å §å®¹çæ¹å¼æå ¥æä»¶ã + +'vim'ä½ç²muttç編輯å¨ï¼ + set editor="vi" + + å¦æä½¿ç¨xclipï¼æ²å ¥ä»¥ä¸å½ä»¤ + :set paste + æä¸éµä¹åæè shift-insertæè ä½¿ç¨ + :r filename + +妿æ³è¦æè£ä¸ä½ç²å §åµææ¬ã +(a)ttachå·¥ä½çå¾å¥½ï¼ä¸å¸¶æ"set paste"ã + +ä½ å¯ä»¥éé ``git format-patch`` çæè£ä¸ï¼ç¶å¾ç¨ Muttç¼éå®å:: + + $ mutt -H 0001-some-bug-fix.patch + +é ç½®é¸é ï¼ +å®æè©²ä»¥é»èªè¨ç½®çå½¢å¼å·¥ä½ã +ç¶èï¼æ"send_charset"è¨ç½®ç²"us-ascii::utf-8"乿¯ä¸åä¸é¯ç主æã + +Mutt æ¯é«åº¦å¯é ç½®çã é裡æ¯å使ç¨muttéé Gmail ç¼éçè£ä¸çæå°é ç½®:: + + # .muttrc + # ================ IMAP ==================== + set imap_user = 'yourusername@gmail.com' + set imap_pass = 'yourpassword' + set spoolfile = imaps://imap.gmail.com/INBOX + set folder = imaps://imap.gmail.com/ + set record="imaps://imap.gmail.com/[Gmail]/Sent Mail" + set postponed="imaps://imap.gmail.com/[Gmail]/Drafts" + set mbox="imaps://imap.gmail.com/[Gmail]/All Mail" + + # ================ SMTP ==================== + set smtp_url = "smtp://username@smtp.gmail.com:587/" + set smtp_pass = $imap_pass + set ssl_force_tls = yes # Require encrypted connection + + # ================ Composition ==================== + set editor = `echo \$EDITOR` + set edit_headers = yes # See the headers when editing + set charset = UTF-8 # value of $LANG; also fallback for send_charset + # Sender, email address, and sign-off line must match + unset use_domain # because joe@localhost is just embarrassing + set realname = "YOUR NAME" + set from = "username@gmail.com" + set use_from = yes + +Muttææªå«ææ´å¤ä¿¡æ¯: + + http://dev.mutt.org/trac/wiki/UseCases/Gmail + + http://dev.mutt.org/doc/manual.html + +Pine (TUI) +~~~~~~~~~~ + +Pineé廿ä¸äºç©ºæ ¼åªæ¸åé¡ï¼ä½æ¯éäºç¾å¨æè©²é½è¢«ä¿®å¾©äºã + +妿å¯ä»¥ï¼è«ä½¿ç¨alpine(pineçç¹¼æ¿è ) + +é ç½®é¸é ï¼ +- æè¿ççæ¬éè¦æ¶é¤æµç¨ææ¬ +- "no-strip-whitespace-before-send"é¸é 乿¯éè¦çã + + +Sylpheed (GUI) +~~~~~~~~~~~~~~ + +- å §åµææ¬å¯ä»¥å¾å¥½çå·¥ä½ï¼æè 使ç¨éä»¶ï¼ã +- å 許使ç¨å¤é¨ç編輯å¨ã +- å°æ¼ç®éè¼å¤æéå¸¸æ ¢ã +- 妿éénon-SSL飿¥ï¼ç¡æ³ä½¿ç¨TLS SMTPææ¬ã +- å¨çµæçªå£ä¸æä¸å徿ç¨çruler barã +- 給å°åæ¬ä¸æ·»å å°å就䏿æ£ç¢ºçäºè§£é¡¯ç¤ºåã + +Thunderbird (GUI) +~~~~~~~~~~~~~~~~~ + +é»èªæ æ³ä¸ï¼thunderbirdå¾å®¹ææå£ææ¬ï¼ä½æ¯éæä¸äºæ¹æ³å¯ä»¥å¼·å¶å®è®å¾æ´å¥½ã + +- å¨ç¨æ¶å¸³èè¨ç½®éï¼çµæåå°åï¼ä¸è¦é¸æ"Compose messages in HTML format"ã + +- ç·¨è¼¯ä½ çThunderbirdé ç½®è¨ç½®ä¾ä½¿å®ä¸è¦æè¡ä½¿ç¨ï¼user_pref("mailnews.wraplength", 0); + +- ç·¨è¼¯ä½ çThunderbirdé ç½®è¨ç½®ï¼ä½¿å®ä¸è¦ä½¿ç¨"format=flowed"æ ¼å¼ï¼user_pref("mailnews. + send_plaintext_flowed", false); + +- ä½ éè¦ä½¿Thunderbirdè®ç²é å æ ¼å¼æ¹å¼ï¼ + 妿é»èªæ æ³ä¸ä½ æ¸å¯«çæ¯HTMLæ ¼å¼ï¼é£ä¸æ¯å¾é£ãå å 徿¨é¡æ¬ç䏿æ¡ä¸é¸æ"Preformat"æ ¼å¼ã + 妿é»èªæ æ³ä¸ä½ æ¸å¯«çæ¯ææ¬æ ¼å¼ï¼ä½ ä¸å¾æå®æ¹ç²HTMLæ ¼å¼ï¼å å ä½ç²ä¸æ¬¡æ§çï¼ä¾æ¸å¯«æ°çæ¶æ¯ï¼ + ç¶å¾å¼·å¶ä½¿å®åå°ææ¬æ ¼å¼ï¼å¦åå®å°±ææè¡ãè¦å¯¦ç¾å®ï¼å¨å¯«ä¿¡ç忍ä¸ä½¿ç¨shiftéµä¾ä½¿å®è®ç²HTML + æ ¼å¼ï¼ç¶å¾æ¨é¡æ¬ç䏿æ¡ä¸é¸æ"Preformat"æ ¼å¼ã + +- å 許使ç¨å¤é¨ç編輯å¨ï¼ + éå°Thunderbirdæè£ä¸æç°¡å®çæ¹æ³å°±æ¯ä½¿ç¨ä¸å"external editor"æ´å±ï¼ç¶å¾ä½¿ç¨ä½ æåæ¡ç + $EDITORä¾è®åæè åä½µè£ä¸å°ææ¬ä¸ãè¦å¯¦ç¾å®ï¼å¯ä»¥ä¸è¼ä¸¦ä¸å®è£éåæ´å±ï¼ç¶å¾æ·»å ä¸å使ç¨å®ç + æéµView->Toolbars->Customize...æå¾ç¶ä½ æ¸å¯«ä¿¡æ¯çæåå å 黿å®å°±å¯ä»¥äºã + +TkRat (GUI) +~~~~~~~~~~~ + +å¯ä»¥ä½¿ç¨å®ã使ç¨"Insert file..."æè å¤é¨ç編輯å¨ã + +Gmail (Web GUI) +~~~~~~~~~~~~~~~ + +ä¸è¦ä½¿ç¨å®ç¼éè£ä¸ã + +Gmailç¶²é 客æ¶ç«¯èªåå°æå¶è¡¨ç¬¦è½æç²ç©ºæ ¼ã + +éç¶å¶è¡¨ç¬¦è½æç²ç©ºæ ¼åé¡å¯ä»¥è¢«å¤é¨ç·¨è¼¯å¨è§£æ±ºï¼åæå®éæä½¿ç¨åè»æè¡ææ¯è¡æåç²78åå符ã + +å¦ä¸åå顿¯Gmailéææä»»ä½ä¸æ¯ASCIIçå符çä¿¡æ¯æ¹ç²base64編碼ã宿æ±è¥¿è®çåææ´²äººçååã + + ### + diff --git a/Documentation/translations/zh_TW/process/embargoed-hardware-issues.rst b/Documentation/translations/zh_TW/process/embargoed-hardware-issues.rst new file mode 100644 index 0000000000000..6c76fc96131a0 --- /dev/null +++ b/Documentation/translations/zh_TW/process/embargoed-hardware-issues.rst @@ -0,0 +1,232 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/embargoed-hardware-issues.rst <embargoed_hardware_issues>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +被éå¶ç硬é«åé¡ +================ + +ç¯å +---- + +å°è´å®å ¨åé¡ç硬é«åé¡èåªå½±é¿Linuxå §æ ¸çç´è»é«é¯èª¤æ¯ä¸åçå®å ¨é¯èª¤é¡å¥ã + +å¿ é åå¥å°å¾ 諸å¦çæ¯(Meltdown)ãSpectreãL1TFç硬é«åé¡ï¼å ç²å®åé常æå½±é¿ +ææä½æ¥ç³»çµ±ï¼ãOSãï¼ï¼å æ¤éè¦å¨ä¸åçOS便åãç¼è¡çã硬é«ä¾æååå ¶ä»åæ¹ +ä¹éé²è¡å調ãå°æ¼æäºåé¡ï¼è»é«ç·©è§£å¯è½ä¾è³´æ¼å¾®ç¢¼æåºä»¶æ´æ°ï¼ééè¦é²ä¸æ¥ç +å調ã + +.. _tw_Contact: + +æ¥è§¸ +---- + +Linuxå §æ ¸ç¡¬é«å®å ¨å°çµç¨ç«æ¼æ®éçLinuxå §æ ¸å®å ¨å°çµã + +該å°çµåªè² 責å調被éå¶ç硬é«å®å ¨åé¡ãLinuxå §æ ¸ä¸ç´è»é«å®å ¨æ¼æ´çå ±åä¸ç±è©² +å°çµèçï¼å ±åè å°è¢«å¼å°è³å¸¸è¦Linuxå §æ ¸å®å ¨å°çµ(:ref:`Documentation/admin-guide/ +<securitybugs>`)è¯ç¹«ã + +å¯ä»¥ééé»åéµä»¶ <hardware-security@kernel.org> èå°çµè¯ç¹«ã鿝ä¸ä»½ç§å¯çå®å ¨ +å®åå®ï¼ä»åå°å¹«å©æ¨æ ¹ææåçææªåæµç¨å調åé¡ã + +éµä»¶å表æ¯å å¯çï¼ç¼éå°å表çé»åéµä»¶å¯ä»¥ééPGPæS/MIMEå å¯ï¼ä¸¦ä¸å¿ é 使ç¨å ±å +è çPGPå¯é°æS/MIMEèæ¸ç±¤åã該å表çPGPå¯é°åS/MIMEèæ¸å¯å¾ +https://www.kernel.org/.... ç²å¾ã + +éç¶ç¡¬é«å®å ¨åé¡é常ç±åå½±é¿ç硬é«ä¾æåèçï¼ä½æåæ¡è¿ç¼ç¾æ½å¨ç¡¬é«ç¼ºé·çç ç©¶ +äººå¡æå人èæåè¯ç¹«ã + +硬é«å®å ¨å® +^^^^^^^^^^ + +ç®åç硬é«å®å ¨å®å°çµ: + + - Linus Torvaldsï¼Linuxåºéæé¢å£«ï¼ + - Greg Kroah Hartmanï¼Linuxåºéæé¢å£«ï¼ + - Thomas Gleixnerï¼Linuxåºéæé¢å£«ï¼ + +éµä»¶å表çæä½ +^^^^^^^^^^^^^^ + +èçæµç¨ä¸ä½¿ç¨çå å¯éµä»¶å表è¨ç®¡å¨Linux FoundationçITåºç¤è¨æ½ä¸ãééæä¾éé +æåï¼LinuxåºéæçITåºç¤è¨æ½å®å ¨ç¸½ç£å¨æè¡ä¸æè½å訪å被éå¶çä¿¡æ¯ï¼ä½æ ¹æä» +çå±åååï¼ä»å¿ é ä¿å¯ãLinuxåºéæçITåºç¤è¨æ½å®å ¨ç¸½ç£éè² è²¬ kernel.org åºç¤ +è¨æ½ã + +Linuxåºéæç®åçITåºç¤è¨æ½å®å ¨ç¸½ç£æ¯ Konstantin Ryabitsevã + +ä¿å¯åè° +-------- + +Linuxå §æ ¸ç¡¬é«å®å ¨å°çµä¸æ¯æ£å¼çæ©æ§ï¼å æ¤ç¡æ³ç°½è¨ä»»ä½ä¿å¯åè°ãæ ¸å¿ç¤¾åæèå° +éäºåé¡çæææ§ï¼ä¸¦æä¾äºä¸ä»½è«è§£åå¿éã + +è«è§£åå¿é +---------- + +Linuxå §æ ¸ç¤¾åæ·±å»çè§£å¨ä¸å使¥ç³»çµ±ä¾æåãç¼è¡åã硬é«ä¾æååå ¶ä»åæ¹ä¹é +é²è¡å調æï¼ä¿æç¡¬é«å®å ¨åé¡èæ¼éå¶çæ çè¦æ±ã + +Linuxå §æ ¸ç¤¾åå¨éå»å·²ç¶æåå°èçäºç¡¬é«å®å ¨åé¡ï¼ä¸¦ä¸æå¿ è¦çæ©å¶å 許å¨éå¶ +éå¶ä¸é²è¡ç¬¦å社åçéç¼ã + +Linuxå §æ ¸ç¤¾åæä¸åå°éç硬é«å®å ¨å°çµè² 責åå§è¯ç¹«ï¼ä¸¦ç£ç£å¨éå¶è¦åä¸èç +æ¤é¡åé¡çéç¨ã + +硬é«å®å ¨å°çµç¢ºå®éç¼äººå¡ï¼é åå°å®¶ï¼ï¼ä»åå°çµæç¹å®åé¡çåå§é¿æå°çµãæå +çé¿æå°çµå¯ä»¥å¼å ¥æ´å¤çéç¼äººå¡ï¼é åå°å®¶ï¼ä»¥æä½³çæè¡æ¹å¼è§£æ±ºéååé¡ã + +ææç¸ééç¼åæ¿è«¾éµå®éå¶è¦å®ï¼ä¸¦å°æ¶å°çä¿¡æ¯ä¿å¯ãéåæ¿è«¾å°å°è´ç«å³å¾ç¶å +åé¡ä¸æé¤ï¼ä¸¦å¾ææç¸ééµä»¶å表ä¸åªé¤ãæ¤å¤ï¼ç¡¬é«å®å ¨å°çµéå°æéåè æé¤å¨ +æªä¾çåé¡ä¹å¤ãéä¸å¾æçå½±é¿å¨æåç¤¾åæ¯ä¸ç¨®é常ææç卿¾ã妿ç¼çéè¦ +æ æ³ï¼ç¡¬é«å®å ¨å°çµå°ç«å³éç¥ç¸éæ¹ãå¦ææ¨æä»»ä½äººç¼ç¾æ½å¨çéè¦è¡ç²ï¼è«ç«å³ +å硬é«å®å ¨äººå¡å ±åã + +æµç¨ +^^^^ + +ç±æ¼Linuxå §æ ¸éç¼çå ¨çåå¸å¼ç¹æ§ï¼é¢å°é¢çæè°å¹¾ä¹ä¸å¯è½è§£æ±ºç¡¬é«å®å ¨åé¡ã +ç±æ¼æååå ¶ä»å ç´ ï¼é»è©±æè°å¾é£å調ï¼åªè½å¨çµå°å¿ è¦æä½¿ç¨ãå å¯é»åéµä»¶å·²è¢« +èææ¯è§£æ±ºæ¤é¡åé¡çæææåæå®å ¨çéä¿¡æ¹æ³ã + +éå§æ«é² +"""""""" + +æ«é²å §å®¹é¦å ééé»åéµä»¶è¯ç¹«Linuxå §æ ¸ç¡¬é«å®å ¨å°çµãæ¤åå§è¯ç¹«äººæå å«åé¡ç +æè¿°åä»»ä½å·²ç¥åå½±é¿ç¡¬é«çå表ã妿æ¨ççµç¹è£½é æåç¼åå½±é¿ç硬é«ï¼æåå»ºè° +æ¨ä¹èæ ®åªäºå ¶ä»ç¡¬é«å¯è½æåå°å½±é¿ã + +硬é«å®å ¨å°çµå°æä¾ä¸åç¹å®æ¼äºä»¶çå å¯éµä»¶å表ï¼ç¨æ¼èå ±åè é²è¡åæ¥è¨è«ã +é²ä¸æ¥æ«é²åå調ã + +硬é«å®å ¨å°çµå°åæ«é²æ¹æä¾ä¸ä»½éç¼äººå¡ï¼é åå°å®¶ï¼åå®ï¼å¨èéç¼äººå¡ç¢ºèªä»å +å°éµå®æ¬è«è§£åå¿éåæä»¶åæµç¨å¾ï¼æé¦å åç¥éç¼äººå¡æé該åé¡çä¿¡æ¯ãéäºéç¼ +人å¡çµæåå§é¿æå°çµï¼ä¸¦å¨åå§æ¥è§¸å¾è² 責èçåé¡ã硬é«å®å ¨å°çµæ¯æé¿æå°çµï¼ +ä½ä¸ä¸å®åèç·©è§£éç¼éç¨ã + +éç¶åå¥éç¼äººå¡å¯è½ééå ¶å±ä¸»åå°ä¿å¯åè°çä¿è·ï¼ä½ä»åä¸è½ä»¥Linuxå §æ ¸éç¼ +人å¡ç身份簽è¨åå¥ä¿å¯åè°ã使¯ï¼ä»åå°åæéµå®é䏿¸é¢ç¨åºåè«è§£åå¿éã + +æ«é²æ¹ææä¾å·²ç¶ææè©²è¢«åç¥è©²åé¡çææå ¶ä»å¯¦é«çè¯ç¹«äººåå®ãéæå¹¾åç®ç: + + - æ«é²ç實é«å表å è¨±è·¨è¡æ¥éä¿¡ï¼ä¾å¦å ¶ä»ä½æ¥ç³»çµ±ä¾æåã硬é«ä¾æåçã + + - å¯è¯ç¹«å·²æ«é²ç實é«ï¼æå®æåèç·©è§£æªæ½éç¼çå°å®¶ã + + - 妿éè¦èçæä¸åé¡çå°å®¶å屿¼æä¸ä¸å¸å¯¦é«ææä¸ä¸å¸å¯¦é«çæå¡ï¼åé¿æ + å°çµå¯è¦æ±è©²å¯¦é«æ«é²è©²å°å®¶ãé確ä¿å°å®¶ä¹æ¯å¯¦é«åæå°çµçä¸é¨åã + +æ«é² +"""" + +æ«é²æ¹ééç¹å®çå å¯éµä»¶å表ååå§é¿æå°çµæä¾è©³ç´°ä¿¡æ¯ã + +æ ¹ææåçç¶é©ï¼éäºåé¡çæè¡ææªé常æ¯ä¸åè¶³å¤ çèµ·é»ï¼æå¥½ééé»åéµä»¶é²è¡ +é²ä¸æ¥çæè¡æ¾æ¸ ã + +ç·©è§£éç¼ +"""""""" + +åå§é¿æå°çµè¨ç½®å å¯éµä»¶åè¡¨ï¼æå¨é©ç¶çæ æ³ä¸éæ°ä¿®æ¹ç¾æéµä»¶å表ã + +使ç¨éµä»¶å表æ¥è¿æ¼æ£å¸¸çLinuxéç¼éç¨ï¼ä¸¦ä¸å¨éå»å·²ç¶æåå°ç¨æ¼ç²å種硬é«å®å ¨ +åé¡éç¼ç·©è§£æªæ½ã + +éµä»¶å表çæä½æ¹å¼èæ£å¸¸çLinuxéç¼ç¸åãç¼å¸ãè¨è«å審æ¥ä¿®è£ç¨åºï¼å¦æåæï¼ +åæç¨æ¼éå ¬å ±gitåå²åº«ï¼åèéç¼äººå¡åªè½ééå®å ¨é£æ¥è¨ªå該åå²åº«ãåå²åº«å å« +éå°ä¸»ç·å §æ ¸ç主éç¼åæ¯ï¼ä¸¦æ ¹æéè¦ç²ç©©å®çå §æ ¸çæ¬æä¾åå¾ç§»æ¤åæ¯ã + +æåçé¿æå°çµå°æ ¹æéè¦å¾Linuxå §æ ¸éç¼äººå¡ç¤¾åä¸ç¢ºå®æ´å¤çå°å®¶ãå¼é²å°å®¶å¯ä»¥ +å¨éç¼éç¨ä¸ç任使åç¼çï¼éè¦åæèçã + +妿å°å®¶å屿¼æ«é²æ¹æä¾çæ«é²æ¸ å®ä¸çå¯¦é«æå ¶æå¡ï¼åç¸é實é«å°è¦æ±å ¶åèã + +å¦åï¼æ«é²æ¹å°è¢«åç¥å°å®¶åèçæ æ³ãè«è§£åå¿éæ¶µèäºå°å®¶ï¼è¦æ±æ«é²æ¹ç¢ºèªåèã +妿æ«é²æ¹æä»¤äººä¿¡æççç±æåºç°è°ï¼åå¿ é å¨äºå工使¥å §æåºç°è°ï¼ä¸¦ç«å³èäºä»¶ +å°çµè§£æ±ºã妿æ«é²æ¹å¨äºå工使¥å §æªä½åºåæï¼åè¦ç²é»è¨±ã + +å¨ç¢ºèªæè§£æ±ºç°è°å¾ï¼å°å®¶ç±äºä»¶å°çµæ«é²ï¼ä¸¦é²å ¥éç¼éç¨ã + +å調ç¼å¸ +"""""""" + +æéåæ¹å°ååéå¶çµæçæ¥æåæéãæ¤æï¼æºå好çç·©è§£æªæ½éæå°ç¸éçå §æ ¸æ¨¹ä¸ +並ç¼å¸ã + +éç¶æåç解硬é«å®å ¨åé¡éè¦å調éå¶æéï¼ä½éå¶æéæéå¶å¨æææéåæ¹å¶å®ã +æ¸¬è©¦åæºåç·©è§£æªæ½æéçæçæéå §ã人ç²å°å»¶é·éå¶æé以滿足æè°è¨è«æ¥ææå ¶ä» +éæè¡åå ï¼æçµ¦ç¸éçéç¼äººå¡åé¿æå°çµå¸¶ä¾äºæ´å¤çå·¥ä½åè² æï¼å ç²è£ä¸éè¦ +ä¿æææ°ï¼ä»¥ä¾¿è·è¹¤æ£å¨é²è¡ç䏿¸¸å §æ ¸éç¼ï¼éå¯è½æé æè¡çªçæ´æ¹ã + +CVEåé +""""""" + +硬é«å®å ¨å°çµååå§é¿æå°çµé½ä¸åé CVEï¼éç¼éç¨ä¹ä¸éè¦CVEã妿CVEæ¯ç±æ«é²æ¹ +æä¾çï¼åå¯ç¨æ¼ææªä¸ã + +æµç¨å°ä½¿ +-------- + +ç²äºåå©éä¸é²ç¨ï¼æåå¨åçµç¹è¨ç«äºå°ä½¿ï¼ä»åå¯ä»¥åçæéå ±åæµç¨åé²ä¸æ¥èç +çå顿æä¾æå°ãå°ä½¿ä¸åèç¹å®åé¡çæ«é²ï¼é¤éé¿æå°çµæç¸éæ«é²æ¹æåºè¦æ±ã +ç¾ä»»å°ä½¿åå®: + + ============= ======================================================== + ARM + AMD Tom Lendacky <tom.lendacky@amd.com> + IBM + Intel Tony Luck <tony.luck@intel.com> + Qualcomm Trilok Soni <tsoni@codeaurora.org> + + Microsoft Sasha Levin <sashal@kernel.org> + VMware + Xen Andrew Cooper <andrew.cooper3@citrix.com> + + Canonical John Johansen <john.johansen@canonical.com> + Debian Ben Hutchings <ben@decadent.org.uk> + Oracle Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> + Red Hat Josh Poimboeuf <jpoimboe@redhat.com> + SUSE Jiri Kosina <jkosina@suse.cz> + + Amazon + Google Kees Cook <keescook@chromium.org> + ============= ======================================================== + +妿è¦å°æ¨ççµç¹æ·»å å°å°ä½¿åå®ä¸ï¼è«è硬é«å®å ¨å°çµè¯ç¹«ã被æåçå°ä½¿å¿ é å®å ¨ +çè§£åæ¯ææåçéç¨ï¼ä¸¦ä¸å¨Linuxå §æ ¸ç¤¾åä¸å¾å®¹æè¯ç¹«ã + +å å¯éµä»¶å表 +------------ + +æå使ç¨å å¯éµä»¶å表é²è¡éä¿¡ãéäºå表çå·¥ä½åçæ¯ï¼ç¼éå°å表çé»åéµä»¶ä½¿ç¨ +å表çPGPå¯é°æå表ç/MIMEèæ¸é²è¡å å¯ãéµä»¶å表è»é«å°é»åéµä»¶é²è¡è§£å¯ï¼ä¸¦ +使ç¨è¨é±è çPGPå¯é°æS/MIMEèæ¸ç²æ¯åè¨é±è åå¥å°å ¶é²è¡éæ°å å¯ãæééµä»¶å表 +è»é«åç¨æ¼ç¢ºä¿å表å®å ¨åæ¸æä¿è·çè¨ç½®ç詳細信æ¯ï¼è«è¨ªå: +https://www.kernel.org/.... + +ééµé» +^^^^^^ + +忬¡æ¥è§¸è¦ :ref:`tw_Contact`. å°æ¼ç¹å®æ¼äºä»¶çéµä»¶å表ï¼å¯é°åS/MIMEèæ¸éé +ç¹å®å表ç¼éçé»åéµä»¶å³é給è¨é±è ã + +è¨é±äºä»¶ç¹å®å表 +^^^^^^^^^^^^^^^^ + +è¨é±ç±é¿æå°çµèçã叿åèéä¿¡çæ«é²æ¹å°æ½å¨è¨æ¶çå表ç¼éçµ¦é¿æçµï¼ä»¥ä¾¿ +é¿æçµå¯ä»¥é©èè¨é±è«æ±ã + +æ¯åè¨æ¶é½éè¦ééé»åéµä»¶åé¿æå°çµç¼éè¨é±è«æ±ãé»åéµä»¶å¿ é 使ç¨è¨é±ä¼ºæå¨ +çPGPå¯é°æS/MIMEèæ¸ç±¤åãå¦æä½¿ç¨PGPå¯é°ï¼åå¿ é å¾å ¬é°ä¼ºæå¨ç²å¾è©²å¯é°ï¼ +並ä¸çæ³æ æ³ä¸è©²å¯é°é£æ¥å°Linuxå §æ ¸çPGP信任網ãå¦è«åè¦: +https://www.kernel.org/signature.html. + +é¿æå°çµé©èè¨é±è ï¼ä¸¦å°è¨é±è æ·»å å°å表ä¸ãè¨é±å¾ï¼è¨é±è å°æ¶å°ä¾èªéµä»¶å表 +çé»åéµä»¶ï¼è©²éµä»¶å表使ç¨å表çPGPå¯é°æå表ç/MIMEèæ¸ç±¤åãè¨é±è çé»åéµä»¶ +客æ¶ç«¯å¯ä»¥å¾ç°½å䏿åPGPå¯é°æS/MIMEèæ¸ï¼ä»¥ä¾¿è¨é±è å¯ä»¥åå表ç¼éå å¯é»å +éµä»¶ã + diff --git a/Documentation/translations/zh_TW/process/howto.rst b/Documentation/translations/zh_TW/process/howto.rst new file mode 100644 index 0000000000000..2043691b92e35 --- /dev/null +++ b/Documentation/translations/zh_TW/process/howto.rst @@ -0,0 +1,500 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _tw_process_howto: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/howto.rst <process_howto>` + +è¯è :: + + è±æçç¶è·è ï¼ Greg Kroah-Hartman <greg@kroah.com> + 䏿çç¶è·è ï¼ æé½ Li Yang <leoyang.li@nxp.com> + 䏿çç¿»è¯è ï¼ æé½ Li Yang <leoyang.li@nxp.com> + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + ä¸æçæ ¡è¯è : + é¾å® TripleX Chung <xxx.phy@gmail.com> + é³ç¦ Maggie Chen <chenqi@beyondsoft.com> + çè° Wang Cong <xiyou.wangcong@gmail.com> + è¡çæ Hu Haowen <src.res@email.cn> + +å¦ä½åèLinuxå §æ ¸éç¼ +===================== + +鿝ä¸ç¯å°å¦ä½åèLinuxå §æ ¸éç¼çç¸éåé¡ä¸ç¶²æç¡ççµæ¥µç¥ç¬ãå®å°æå°ä½ +æç²ä¸åLinuxå §æ ¸éç¼è ï¼ä¸¦ä¸å¸æå¦ä½åLinuxå §æ ¸éç¼ç¤¾ååä½ãå®åå¯è½ä¸ +å æ¬ä»»ä½éæ¼å §æ ¸ç·¨ç¨çæè¡ç´°ç¯ï¼ä½æçµ¦ä½ æå¼ä¸æ¢ç²å¾éäºç¥èçæ£ç¢ºéå¾ã + +妿éç¯æç« ä¸çä»»ä½å §å®¹ä¸åé©ç¨ï¼è«çµ¦ææ«ååºçæä»¶ç¶è·è ç¼éè£ä¸ã + + +å ¥é +---- + +ä½ æ³äºè§£å¦ä½æç²ä¸åLinuxå §æ ¸éç¼è ï¼æè èéå©åä½ ã給éåè¨å寫åLinux +é© åç¨åºãï¼éç¯æç« çç®çå°±æ¯ææä½ éæéäºç®æ¨çå ¨é¨è¨£ç« ï¼å®å°æè¿°ä½ é +è¦ç¶éçæµç¨ä»¥å給åºå¦ä½åå §æ ¸ç¤¾ååä½çä¸äºæç¤ºãå®éå°è©¦åè§£éå §æ ¸ç¤¾å +ç²ä½é樣éä½ã + +Linuxå §æ ¸å¤§é¨åæ¯ç±Cèªè¨å¯«æçï¼ä¸äºé«ç³»çµæ§ç¸éç代碼ç¨å°äºå½ç·¨èªè¨ãè¦ +åèå §æ ¸éç¼ï¼ä½ å¿ é ç²¾éCèªè¨ãé¤éä½ æ³ç²æåæ¶æ§éç¼åºå±¤ä»£ç¢¼ï¼å¦åä½ ä¸¦ +ä¸éè¦äºè§£ï¼ä»»ä½é«ç³»çµæ§çï¼å½ç·¨èªè¨ãä¸é¢åèçæ¸ç±éç¶ä¸è½æ¿ä»£ç´®å¯¦çC +èªè¨æè²åå¤å¹´çéç¼ç¶é©ï¼ä½å¦æéè¦ç話ï¼åç²åè鿝ä¸é¯çï¼ + + - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall] + ãCç¨åºè¨è¨èªè¨ï¼ç¬¬2ç·æ°çï¼ãï¼å¾å¯¶æ æå¿ è¯ï¼[æ©æ¢°å·¥æ¥åºç社] + - "Practical C Programming" by Steve Oualline [O'Reilly] + ã實ç¨Cèªè¨ç·¨ç¨ï¼ç¬¬ä¸çï¼ãï¼é大海 è¯ï¼[ä¸åé»ååºç社] + - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] + ãCèªè¨åèæåï¼åæ¸ç¬¬5çï¼ãï¼é±ä»²æ½ çè¯ï¼[æ©æ¢°å·¥æ¥åºç社] + +Linuxå §æ ¸ä½¿ç¨GNU CåGNUå·¥å ·ééç¼ãéç¶å®éµå¾ªISO C89æ¨æºï¼ä½ä¹ç¨å°äºä¸äº +æ¨æºä¸æ²æå®ç¾©çæ´å±ãå §æ ¸æ¯èªçµ¦èªè¶³çCç°å¢ï¼ä¸ä¾è³´æ¼æ¨æºCåº«çæ¯æï¼æä»¥ +䏦䏿¯æCæ¨æºä¸çé¨åå®ç¾©ãæ¯å¦long longé¡åç大æ¸é¤æ³åæµ®é»éç®å°±ä¸å 許 +使ç¨ãææå確實å¾é£å¼æ¸ æ¥å §æ ¸å°å·¥å ·éçè¦æ±åå®æä½¿ç¨çæ´å±ï¼ä¸å¹¸çæ¯ç® +åéæ²ææç¢ºçåèè³æå¯ä»¥è§£éå®åãè«æ¥é±gccä¿¡æ¯é ï¼ä½¿ç¨ãinfo gccãå½ä»¤ +顯示ï¼ç²å¾ä¸äºéæ¹é¢ä¿¡æ¯ã + +è«è¨ä½ä½ æ¯å¨å¸ç¿æéº¼åå·²ç¶åå¨çéç¼ç¤¾åæäº¤éãå®ç±ä¸ç¾£å½¢å½¢è²è²çäººçµæï¼ +ä»åå°ä»£ç¢¼ãé¢¨æ ¼åéç¨æèå¾é«çæ¨æºãéäºæ¨æºæ¯å¨é·æå¯¦è¸ä¸ç¸½çµåºä¾çï¼ +驿æ¼å°çä¸åæ£ç大åéç¼åéãå®åå·²ç¶è¢«å¾å¥½å¾æ´çææªï¼å»ºè°ä½ å¨éç¼ +ä¹ååå¯è½å¤çå¸ç¿éäºæ¨æºï¼èä¸è¦ææå¥äººä¾é©æä½ æè ä½ å ¬å¸çè¡ç²æ¹å¼ã + + +æ³å¾åé¡ +-------- + +Linuxå §æ ¸åå§ç¢¼é½æ¯å¨GPLï¼éç¨å ¬å ±è¨±å¯èï¼çä¿è·ä¸ç¼å¸çãè¦äºè§£éç¨®è¨±å¯ +çç´°ç¯è«æ¥çåå§ç¢¼ä¸»ç®éä¸çCOPYINGæä»¶ãLinuxå §æ ¸è¨±å¯æºååå¦ä½ä½¿ç¨ +`SPDX <https://spdx.org/>` æ¨èªç¬¦èªªæå¨éåæä»¶ä¸ +:ref:`Documentation/translations/zh_TW/process/license-rules.rst <tw_kernel_licensing>` +å¦æä½ å°å®éææ´æ·±å ¥åé¡è«è¯ç¹«å¾å¸«ï¼èä¸è¦å¨Linuxå §æ ¸éµä»¶çµä¸æåãå ç² +éµä»¶çµè£¡çäººä¸¦ä¸æ¯å¾å¸«ï¼ä¸è¦ææä»åçè©±ææ³å¾æåã + +å°æ¼GPLç常è¦åé¡åè§£çï¼è«è¨ªå以ä¸é£çµï¼ + https://www.gnu.org/licenses/gpl-faq.html + + +ææª +---- + +Linuxå §æ ¸ä»£ç¢¼ä¸å 嫿大éçææªãéäºææªå°æ¼å¸ç¿å¦ä½èå §æ ¸ç¤¾åäºåæè +ä¸å¯ä¼°éçå¹å¼ãç¶ä¸åæ°çåè½è¢«å å ¥å §æ ¸ï¼æå¥½æè§£éå¦ä½ä½¿ç¨éååè½çæ +æªä¹æ¾é²å §æ ¸ãç¶å §æ ¸çæ¹åå°è´é¢åç¨æ¶ç©ºéçæ¥å£ç¼çè®åæï¼æå¥½å°ç¸éä¿¡ +æ¯ææåé (manpages)çè£ä¸ç¼å°mtk.manpages@gmail.comï¼ä»¥åæåé (manpages) +çç¶è·è è§£ééäºè®åã + +以䏿¯å §æ ¸ä»£ç¢¼ä¸éè¦é±è®çææªï¼ + :ref:`Documentation/admin-guide/README.rst <readme>` + æä»¶ç°¡è¦ä»ç´¹äºLinuxå §æ ¸çèæ¯ï¼ä¸¦ä¸æè¿°äºå¦ä½é ç½®åç·¨è¯å §æ ¸ãå §æ ¸ç + æ°ç¨æ¶æè©²å¾é裡éå§ã + + + :ref:`Documentation/process/changes.rst <changes>` + æä»¶çµ¦åºäºç¨ä¾ç·¨è¯å使ç¨å §æ ¸æéè¦çæå°è»é«å å表ã + + :ref:`Documentation/translations/zh_TW/process/coding-style.rst <tw_codingstyle>` + æè¿°Linuxå §æ ¸çä»£ç¢¼é¢¨æ ¼åçç±ãæææ°ä»£ç¢¼éè¦éµå®éç¯ææªä¸å®ç¾©çè¦ + èã大夿¸ç¶è·è åªææ¥æ¶ç¬¦åè¦å®çè£ä¸ï¼å¾å¤äººä¹åªæå¹«å¿æª¢æ¥ç¬¦åé¢¨æ ¼ + ç代碼ã + + :ref:`Documentation/translations/zh_TW/process/submitting-patches.rst <tw_submittingpatches>` + :ref:`Documentation/process/submitting-drivers.rst <submittingdrivers>` + + éå ©ä»½ææªæç¢ºæè¿°å¦ä½åµå»ºåç¼éè£ä¸ï¼å ¶ä¸å æ¬ï¼ä½ä¸å éæ¼)ï¼ + - éµä»¶å §å®¹ + - éµä»¶æ ¼å¼ + - 鏿æ¶ä»¶äºº + + éµå®éäºè¦å®ä¸¦ä¸è½ä¿èæäº¤æåï¼å ç²ææè£ä¸éè¦ééå´æ ¼çå §å®¹åé¢¨æ ¼ + 審æ¥ï¼ï¼ä½æ¯å¿½è¦ä»åå¹¾ä¹å°±æå³è失æã + + å ¶ä»éæ¼å¦ä½æ£ç¢ºå°çæè£ä¸çåªç§ææªå æ¬ï¼ + "The Perfect Patch" + + https://www.ozlabs.org/~akpm/stuff/tpp.txt + + "Linux kernel patch submission format" + + https://web.archive.org/web/20180829112450/http://linux.yyz.us/patch-format.html + + :ref:`Documentation/translations/zh_TW/process/stable-api-nonsense.rst <tw_stable_api_nonsense>` + è«èå §æ ¸ç²ä»éº¼ç¹æä¸å æ¬ç©©å®çå §æ ¸å §é¨APIï¼ä¹å°±æ¯èªªä¸å æ¬å鿍£çç¹ + æ§ï¼ + + - å系統ä¸é層ï¼ç²äºå ¼å®¹æ§ï¼ï¼ + - å¨ä¸å使¥ç³»çµ±éææ¼ç§»æ¤çé© åç¨åº + - æ¸ç·©ï¼çè³é»æ¢ï¼å §æ ¸ä»£ç¢¼çå¿«éè®å + + éç¯ææªå°æ¼çè§£Linuxçéç¼å²å¸è³ééè¦ãå°æ¼å°éç¼å¹³å°å¾å ¶ä»æä½ç³» + çµ±è½ç§»å°Linuxç人ä¾èªªä¹å¾éè¦ã + + :ref:`Documentation/admin-guide/security-bugs.rst <securitybugs>` + å¦æä½ èªç²èªå·±ç¼ç¾äºLinuxå §æ ¸çå®å ¨æ§åé¡ï¼è«æ ¹æéç¯ææªä¸çæ¥é©ä¾ + æéå ¶ä»å §æ ¸éç¼è 並幫å©è§£æ±ºéååé¡ã + + :ref:`Documentation/translations/zh_TW/process/management-style.rst <tw_managementstyle>` + + æè¿°å §æ ¸ç¶è·è ç工使¹æ³åå ¶å ±æç¹é»ãéå°æ¼ååæ¥è§¸å §æ ¸éç¼ï¼æè å° + 宿å°å¥½å¥ï¼ç人ä¾èªªå¾éè¦ï¼å ç²å®è§£éäºå¾å¤å°æ¼å §æ ¸ç¶è·è ç¨ç¹è¡ç²ç + æ®é誤解èè¿·æã + + :ref:`Documentation/process/stable-kernel-rules.rst <stable_kernel_rules>` + è§£éäºç©©å®çå §æ ¸ç¼å¸çè¦åï¼ä»¥åå¦ä½å°æ¹åæ¾å ¥éäºçæ¬çæ¥é©ã + + :ref:`Documentation/process/kernel-docs.rst <kernel_docs>` + æå©æ¼å §æ ¸éç¼çå¤é¨ææªå表ãå¦æä½ å¨å §æ ¸èªå¸¶çææªä¸æ²ææ¾å°ä½ æ³æ¾ + çå §å®¹ï¼å¯ä»¥æ¥çéäºææªã + + :ref:`Documentation/process/applying-patches.rst <applying_patches>` + éæ¼è£ä¸æ¯ä»éº¼ä»¥åå¦ä½å°å®æå¨ä¸åå §æ ¸éç¼åæ¯ä¸ç好ä»ç´¹ + +å §æ ¸éææå¤§éå¾ä»£ç¢¼èªåçææè å¾ ReStructuredText(ReST) æ¨è¨çæçææªï¼ +æ¯å¦éåææªï¼å®å å«å §æ ¸å §é¨APIçå ¨é¢ä»ç´¹ä»¥åå¦ä½å¦¥åèçå éçè¦åãææ +éäºææªé½å¯ä»¥éééè¡ä»¥ä¸å½ä»¤å¾å §æ ¸ä»£ç¢¼ä¸çæç²PDFæHTMLææª:: + + make pdfdocs + make htmldocs + +ReSTæ ¼å¼çææªæçæå¨ Documentation/output. ç®éä¸ã +å®åä¹å¯ä»¥ç¨ä¸åå½ä»¤çæ LaTeX å ePub æ ¼å¼ææª:: + + make latexdocs + make epubdocs + +å¦ä½æç²å §æ ¸éç¼è +------------------ +å¦æä½ å°Linuxå §æ ¸éç¼ä¸ç¡æç¥ï¼ä½ æè©²è¨ªåãLinuxå §æ ¸æ°æãè¨åï¼ + + https://kernelnewbies.org + +宿æä¸åå¯ä»¥åå種æåºæ¬çå §æ ¸éç¼åé¡çéµä»¶å表ï¼å¨æåä¹åä¸å®è¦è¨å¾ +æ¥æ¾å·²å¾çéµä»¶ï¼ç¢ºèªæ¯å¦æäººå·²ç¶åçéç¸åçåé¡ï¼ãå®éææä¸åå¯ä»¥ç²å¾ +實æåé¥çIRCèå¤©é »éï¼ä»¥å大éå°æ¼å¸ç¿Linuxå §æ ¸éç¼ç¸ç¶æå¹«å©çææªã + +ç¶²ç«ç°¡è¦ä»ç´¹äºåå§ç¢¼çµç¹çµæ§ãå系統åå以åç®åæ£å¨é²è¡çé ç®ï¼å æ¬å §æ ¸ +ä¸çåå®ç¨ç¶è·çï¼ãå®éæä¾äºä¸äºåºæ¬ç幫å©ä¿¡æ¯ï¼æ¯å¦å¦ä½ç·¨è¯å §æ ¸åæè£ +ä¸ã + +å¦æä½ æ³å å ¥å §æ ¸éç¼ç¤¾å並åå©å®æä¸äºä»»åï¼å»æ¾ä¸å°å¾åªè£¡éå§ï¼å¯ä»¥è¨ªå +ãLinuxå §æ ¸æ¿ç®¡å¡ãè¨åï¼ + + https://kernelnewbies.org/KernelJanitors + +éæ¯æ¥µä½³çèµ·é»ã宿ä¾ä¸åç¸å°ç°¡å®çä»»åå表ï¼ååºå §æ ¸ä»£ç¢¼ä¸éè¦è¢«éæ° +æ´çæè æ¹æ£çå°æ¹ãééåè² è²¬éåè¨åçéç¼è åä¸åå·¥ä½ï¼ä½ æå¸å°å°è£ä¸ +éæé²å §æ ¸çåºæ¬åçãå¦æéæ²ææ±ºå®ä¸ä¸æ¥è¦åä»éº¼ç話ï¼ä½ éå¯è½æå¾å°æ¹ +åæ§çæé»ã + +å¨çæ£åæä¿®æ¹å §æ ¸ä»£ç¢¼ä¹åï¼çè§£è¦ä¿®æ¹ç代碼å¦ä½é使¯å¿ éçãè¦éå°éå +ç®çï¼æ²ä»éº¼è¾¦æ³æ¯ç´æ¥è®ä»£ç¢¼æ´ææäºï¼å¤§å¤æ¸è±æé½ææç¸æç注éï¼ï¼èä¸ +ä¸äºç¹è£½çå·¥å ·éå¯ä»¥æä¾å¹«å©ãä¾å¦ï¼ãLinux代碼交åå¼ç¨ãé ç®å°±æ¯ä¸åå¼å¾ +ç¹å¥æ¨è¦ç幫å©å·¥å ·ï¼å®å°åå§ç¢¼é¡¯ç¤ºå¨æç·¨ç®åç´¢å¼çç¶²é ä¸ãå ¶ä¸ä¸åæ´æ°å +æçå §æ ¸æºç¢¼åº«ï¼å¯ä»¥éé以ä¸å°å訪åï¼ + + https://elixir.bootlin.com/ + + +éç¼æµç¨ +-------- + +ç®åLinuxå §æ ¸éç¼æµç¨å æ¬å¹¾åãä¸»å §æ ¸åæ¯ãåå¾å¤å系統ç¸éçå §æ ¸åæ¯ãé +äºåæ¯å æ¬ï¼ + + - Linus çå §æ ¸æºç¢¼æ¨¹ + - å¤å主è¦çæ¬çç©©å®çå §æ ¸æ¨¹ + - å系統ç¸éçå §æ ¸æ¨¹ + - linux-next éææ¸¬è©¦æ¨¹ + + +ä¸»ç·æ¨¹ +------ +ä¸»ç·æ¨¹æ¯ç±Linus Torvalds ç¶è·çãä½ å¯ä»¥å¨https://kernel.org ç¶²ç«æè 代碼 +庫ä¸ä¸æ¾å°å®ãå®çéç¼éµå¾ªä»¥ä¸æ¥é©ï¼ + + - æ¯ç¶ä¸åæ°çæ¬çå §æ ¸è¢«ç¼å¸ï¼ç²æå ©å¨çéæçªå£å°è¢«æéãå¨é段æé裡 + ç¶è·è å¯ä»¥åLinusæäº¤å¤§æ®µçä¿®æ¹ï¼é常éäºä¿®æ¹å·²ç¶è¢«æ¾å°-mmå §æ ¸ä¸å¹¾å + ææäºãæäº¤å¤§éä¿®æ¹çé¦é¸æ¹å¼æ¯ä½¿ç¨gitå·¥å ·ï¼å §æ ¸çä»£ç¢¼çæ¬ç®¡çå·¥å · + ï¼æ´å¤çä¿¡æ¯å¯ä»¥å¨ https://git-scm.com/ ç²åï¼ï¼ä¸éä½¿ç¨æ®éè£ä¸ä¹æ¯ + å¯ä»¥çã + - å ©åææä»¥å¾-rc1çæ¬å §æ ¸ç¼å¸ãä¹å¾åªæä¸å å«å¯è½å½±é¿æ´åå §æ ¸ç©©å®æ§ç + æ°åè½çè£ä¸æå¯è½è¢«æ¥åãè«æ³¨æä¸åå ¨æ°çé© åç¨åºï¼æè æä»¶ç³»çµ±ï¼æ + å¯è½å¨-rc1å¾è¢«æ¥åæ¯å ç²é樣çä¿®æ¹å®å ¨ç¨ç«ï¼ä¸æå½±é¿å ¶ä»çä»£ç¢¼ï¼æä»¥ + æ²æé æå §æ ¸éæ¥ç風éªãå¨-rc1以å¾ä¹å¯ä»¥ç¨gitåLinusæäº¤è£ä¸ï¼ä¸éæ + æçè£ä¸éè¦åæè¢«ç¼éå°ç¸æçå ¬è¡éµä»¶å表以徵詢æè¦ã + - ç¶Linusèªç²ç¶åçgitæºç¢¼æ¨¹å·²ç¶éå°ä¸ååçå¥å ¨ççæ è¶³ä»¥ç¼å¸ä¾äººæ¸¬è©¦ + æï¼ä¸åæ°ç-rcçæ¬å°±æè¢«ç¼å¸ãè¨åæ¯æ¯å¨é½ç¼å¸æ°ç-rcçæ¬ã + - éåéç¨ä¸ç´æçºä¸å»ç´å°å §æ ¸è¢«èªç²éå°è¶³å¤ ç©©å®ççæ ï¼æçºæéå¤§æ¦æ¯ + 6åææã + +éæ¼å §æ ¸ç¼å¸ï¼å¼å¾ä¸æçæ¯Andrew Mortonå¨linux-kerneléµä»¶å表ä¸å¦æ¯èªªï¼ + ãæ²æäººç¥éæ°å §æ ¸ä½ææè¢«ç¼å¸ï¼å ç²ç¼å¸æ¯æ ¹æå·²ç¥bugçæ æ³ä¾æ±ºå® + çï¼è䏿¯æ ¹æä¸åäºå å¶å®å¥½çæé表ãã + +å系統ç¹å®æ¨¹ +------------ + +åç¨®å §æ ¸å系統çç¶è·è ââ以å許å¤å §æ ¸å系統éç¼äººå¡ââå¨åå§ç¢¼åº«ä¸å ¬éäºä»å +ç¶åçéç¼çæ ã鿍£ï¼å ¶ä»äººå°±å¯ä»¥çå°å §æ ¸çä¸åååç¼çäºä»éº¼ãå¨éç¼é度 +å¾å¿«çé åï¼å¯è½æè¦æ±éç¼äººå¡å°æäº¤çå §å®¹å»ºç«å¨é樣çåç³»çµ±å §æ ¸æ¨¹ä¸ï¼é樣 +å°±é¿å äºæäº¤èå ¶ä»å·²ç¶é²è¡çå·¥ä½ä¹éçè¡çªã + +éäºåå²åº«ä¸ç大夿¸é½æ¯Git樹ï¼ä½æ¯ä¹æå ¶ä»çscmå¨ä½¿ç¨ï¼æè è£ä¸éå被ç¼å¸ +ç²Quiltç³»åãéäºå系統åå²åº«çå°ååå¨MAINTAINERSæä»¶ä¸ãå ¶ä¸è¨±å¤å¯ä»¥å¨ +https://git.kernel.org/ä¸ç覽ã + +å¨å°ä¸å建è°çè£ä¸æäº¤å°é樣çå系統樹ä¹åï¼éè¦å°å®é²è¡å¯©æ¥ï¼å¯©æ¥ä¸»è¦ç¼ç +å¨éµä»¶å表ä¸ï¼è«åè¦ä¸é¢ç¸æçé¨åï¼ãå°æ¼å¹¾åå §æ ¸å系統ï¼éå審æ¥éç¨æ¯é +éå·¥å ·è£ä¸è·è¹¤çãPatchworkæä¾äºä¸åWebçé¢ï¼é¡¯ç¤ºè£ä¸ç¼å¸ãå°è£ä¸çä»»ä½è© +è«æä¿®è¨ï¼ç¶è·äººå¡å¯ä»¥å°è£ä¸æ¨è¨ç²æ£å¨å¯©æ¥ãæ¥åææçµã大夿¸è£ä¸ç¶²ç«é½å +å¨ https://patchwork.kernel.org/ + +Linux-next éææ¸¬è©¦æ¨¹ +--------------------- + +å¨å°åç³»çµ±æ¨¹çæ´æ°åä½µå°ä¸»ç·æ¨¹ä¹åï¼éè¦å°å®åé²è¡éææ¸¬è©¦ãç²æ¤ï¼åå¨ä¸å +ç¹æ®ç測試åå²åº«ï¼å ¶ä¸å¹¾ä¹æ¯å¤©é½ææåææåç³»çµ±æ¨¹ï¼ + + https://git.kernel.org/ï¼p=linux/kernel/git/next/linux-next.git + +ééé種æ¹å¼ï¼Linux-next å°ä¸ä¸åå併鿮µå°é²å ¥ä¸»ç·å §æ ¸çå §å®¹çµ¦åºäºä¸åæ¦è¦ +屿ãé常æ¡åéªç測試è éè¡æ¸¬è©¦Linux-nextã + +å¤å主è¦çæ¬çç©©å®çå §æ ¸æ¨¹ +----------------------------------- +ç±3忏åçµæçå §æ ¸çæ¬èèªªææ¤å §æ ¸æ¯-stableçæ¬ãå®åå å«å §æ ¸çç¸å°è¼å°ä¸ +è³ééè¦çä¿®è£ï¼éäºä¿®è£éå°å®å ¨æ§å顿è å´éçå §æ ¸éæ¥ã + +éç¨®çæ¬çå §æ ¸é©ç¨æ¼é£äºææç²å¾ææ°çç©©å®çå §æ ¸ä¸¦ä¸ä¸æ³åèæ¸¬è©¦éç¼çæ +è 實é©ççç¨æ¶ã + +ç©©å®çå §æ ¸æ¨¹çæ¬ç±ãç©©å®çãå°çµï¼éµä»¶å°å<stable@vger.kernel.org>ï¼ç¶è·ï¼ä¸è¬ +éå¨ç¼å¸æ°çæ¬ã + +å §æ ¸æºç¢¼ä¸ç :ref:`Documentation/process/stable-kernel-rules.rst <stable_kernel_rules>` +æä»¶å ·é«æè¿°äºå¯è¢«ç©©å®çå §æ ¸æ¥åçä¿®æ¹é¡å以åç¼å¸çæµç¨ã + + +å ±åbug +------- + +bugzilla.kernel.orgæ¯Linuxå §æ ¸éç¼è åç¨ä¾è·è¹¤å §æ ¸Bugçç¶²ç«ãæåé¼åµç¨ +æ¶å¨éåå·¥å ·ä¸å ±åæ¾å°çææbugãå¦ä½ä½¿ç¨å §æ ¸bugzillaçç´°ç¯è«è¨ªåï¼ + + http://test.kernel.org/bugzilla/faq.html + +å §æ ¸æºç¢¼ä¸»ç®éä¸ç:ref:`admin-guide/reporting-bugs.rst <reportingbugs>` +æä»¶éæä¸åå¾å¥½ç模æ¿ã宿å°ç¨æ¶å¦ä½å ±åå¯è½çå §æ ¸bug以åéè¦æä¾åªäºä¿¡æ¯ +ä¾å¹«å©å §æ ¸éç¼è åæ¾å°åé¡çæ ¹æºã + + +å©ç¨bugå ±å +----------- + +ç·´ç¿å §æ ¸éç¼æè½çæå¥½è¾¦æ³å°±æ¯ä¿®æ¹å ¶ä»äººå ±åçbugãä½ ä¸å å¯ä»¥å¹«å©å §æ ¸è® +徿´å ç©©å®ï¼éå¯ä»¥å¸æå¦ä½è§£æ±ºå¯¦éåé¡å¾èæé«èªå·±çæè½ï¼ä¸¦ä¸è®å ¶ä»éç¼ +è æåå°ä½ çåå¨ãä¿®æ¹bugæ¯è´å¾å ¶ä»éç¼è è®è½çæå¥½è¾¦æ³ï¼å ç²ä¸¦ä¸æ¯å¾å¤ +人é½åæ¡æµªè²»æéå»ä¿®æ¹å¥äººå ±åçbugã + +è¦å試修æ¹å·²ç¥çbugï¼è«è¨ªå http://bugzilla.kernel.org ç¶²åã + + +éµä»¶å表 +-------- + +æ£å¦ä¸é¢çææªææè¿°ï¼å¤§å¤æ¸çéª¨å¹¹å §æ ¸éç¼è é½å å ¥äºLinux Kerneléµä»¶å +表ãå¦ä½è¨é±åéè¨å表çç´°ç¯å¯ä»¥å¨é裡æ¾å°ï¼ + + http://vger.kernel.org/vger-lists.html#linux-kernel + +ç¶²ä¸å¾å¤å°æ¹é½æéåéµä»¶å表çåæª(archive)ãå¯ä»¥ä½¿ç¨æå°å¼æä¾æ¾å°éäº +åæªãæ¯å¦ï¼ + + http://dir.gmane.org/gmane.linux.kernel + +å¨ç¼ä¿¡ä¹åï¼æåå¼·ç建è°ä½ å å¨åæªä¸æç´¢ä½ æ³è¦è¨è«çåé¡ãå¾å¤å·²ç¶è¢«è©³ç´° +è¨è«éçåé¡åªå¨éµä»¶å表çåæªä¸å¯ä»¥æ¾å°ã + +大夿¸å §æ ¸åç³»çµ±ä¹æèªå·±ç¨ç«çéµä»¶å表ä¾å調åèªçéç¼å·¥ä½ãå¾ +MAINTAINERSæä»¶ä¸å¯ä»¥æ¾å°ä¸å話é¡å°æçéµä»¶å表ã + +å¾å¤éµä»¶å表æ¶è¨å¨kernel.org伺æå¨ä¸ãéäºå表çä¿¡æ¯å¯ä»¥å¨é裡æ¾å°ï¼ + + http://vger.kernel.org/vger-lists.html + +å¨ä½¿ç¨éäºéµä»¶å表æï¼è«è¨ä½ä¿æè¯å¥½çè¡ç²ç¿æ £ãä¸é¢çé£çµæä¾äºèéäºå +è¡¨ï¼æä»»ä½å ¶å®éµä»¶å表ï¼äº¤æµçä¸äºç°¡å®è¦åï¼éç¶å §å®¹æé»æ¿«ç«½å æ¸ã + + http://www.albion.com/netiquette/ + +ç¶æå¾å¤äººåè¦ä½ çéµä»¶æï¼éµä»¶çæéå表æè®å¾å¾é·ãè«ä¸è¦å°ä»»ä½äººå¾æé +å表ä¸åªé¤ï¼é¤éä½ æè¶³å¤ ççç±é麼åãä¹ä¸è¦åªå復å°éµä»¶å表ãè«ç¿æ £æ¼å +ä¸å°éµä»¶æ¥æ¶å ©æ¬¡ï¼ä¸å°ä¾èªç¼éè ä¸å°ä¾èªéµä»¶å表ï¼ï¼èä¸è¦è©¦åééæ·»å ä¸ +äºå¥ç¹çéµä»¶é ä¾è§£æ±ºéååé¡ï¼äººå䏿忡çã + +è¨ä½ä¿çä½ æåå¾©å §å®¹çä¸ä¸æåæºé ãå¨ä½ åè¦éµä»¶çé é¨ä¿çãæææèªªå°â¦â¦ã +éå¹¾è¡ãå°ä½ çè©è«å å¨è¢«å¼ç¨ç段è½ä¹éèä¸è¦æ¾å¨éµä»¶çé é¨ã + +å¦æä½ å¨éµä»¶ä¸é帶è£ä¸ï¼è«ç¢ºèªå®åæ¯å¯ä»¥ç´æ¥é±è®çç´ææ¬ï¼å¦ +:ref:`Documentation/translations/zh_TW/process/submitting-patches.rst <tw_submittingpatches>` +ææªä¸æè¿°ï¼ãå §æ ¸éç¼è åä¸å¸æéå°éä»¶æè 被å£ç¸®äºçè£ä¸ãåªæéæ¨£æè½ +ä¿èä»åå¯ä»¥ç´æ¥è©è«ä½ çæ¯è¡ä»£ç¢¼ãè«ç¢ºä¿ä½ 使ç¨çéµä»¶ç¼éç¨åºä¸æä¿®æ¹ç©ºæ ¼ +åå¶è¡¨ç¬¦ãä¸åé²ç¯æ§çæ¸¬è©¦æ¹æ³æ¯å å°éµä»¶ç¼é給èªå·±ï¼ç¶å¾èªå·±å試æ¯å¦å¯ä»¥ +é å©å°æä¸æ¶å°çè£ä¸ãå¦ææ¸¬è©¦ä¸æåï¼è«èª¿æ´æè æ´æä½ çéµä»¶ç¼éç¨åºç´å° +宿£ç¢ºå·¥ä½ç²æ¢ã + +總èè¨ä¹ï¼è«å°éå ¶ä»çéµä»¶å表è¨é±è ã + + +åå §æ ¸ç¤¾ååä½ +---------------- + +å §æ ¸ç¤¾åçç®æ¨å°±æ¯æä¾ç¡åç¡ç¾çå §æ ¸ãæä»¥ç¶ä½ æäº¤è£ä¸ææè¢«æ¥åé²å §æ ¸ç +æåï¼å®çæè¡å¹å¼ä»¥åå ¶ä»æ¹é¢é½å°è¢«è©å¯©ãé£éº¼ä½ å¯è½æå¾å°ä»éº¼å¢ï¼ + + - æ¹è© + - è©è« + - è¦æ±ä¿®æ¹ + - è¦æ±èæä¿®æ¹çå¿ è¦æ§ + - æ²é» + +è¦è¨ä½ï¼éäºæ¯æè£ä¸æ¾é²å §æ ¸çæ£å¸¸æ æ³ãä½ å¿ é 叿è½åå°è£ä¸çæ¹è©åè©è«ï¼ +徿è¡å±¤é¢è©ä¼°å®åï¼ç¶å¾è¦éº¼éå¯«ä½ çè£ä¸è¦éº¼ç°¡ææ¼è¦å°è«èä¿®æ¹æ¯ä¸å¿ è¦ +çãå¦æä½ ç¼çéµä»¶æ²æå¾å°ä»»ä½åæï¼è«é幾天å¾åè©¦ä¸æ¬¡ï¼å ç²ææä¿¡ä»¶ææ¹® +æ²å¨è«è«ä¿¡æµ·ä¸ã + +ä½ ä¸æè©²åçäºæ ï¼ + + - ææèªå·±çè£ä¸ä¸åä»»ä½è³ªçå°±ç´æ¥è¢«æ¥å + - ç¿»è + - 忽ç¥å¥äººçè©è« + - æ²ææç §å¥äººçè¦æ±åä»»ä½ä¿®æ¹å°±éæ°æäº¤ + +å¨ä¸ååªåè¿½å°æå¥½æè¡æ¹æ¡ç社åéï¼å°æ¼ä¸åè£ä¸æå¤å°å¥½è總ææä¸åçè¦ +è§£ãä½ å¿ é è¦æ±èåä½çæ 度ï¼é¡ææ¹è®èªå·±çè§é»ä¾é©æå §æ ¸çé¢¨æ ¼ãæè è³å° +顿å»èæä½ çæ³æ³æ¯æå¹å¼çãè¨ä½ï¼ç¯é¯èª¤æ¯å 許çï¼åªè¦ä½ 顿æèæ£ç¢ºç +æ¹æ¡å»åªåã + +å¦æä½ ç第ä¸åè£ä¸æä¾çæ¯ä¸å ä¿®æ¹å»ºè°ï¼éæ¯å¾æ£å¸¸çãé並ä¸ä»£è¡¨ä½ çè£ä¸ +ä¸æè¢«æ¥åï¼ä¹ä¸æå³èæäººåä½ ä½å°ãä½ åªéè¦æ¹æ£æææåºçåé¡ç¶å¾éæ°ç¼ +éä½ çè£ä¸ã + +å §æ ¸ç¤¾ååå ¬å¸æåçå·®ç° +------------------------ + +å §æ ¸ç¤¾åç工使¨¡å¼å大夿¸å³çµ±å ¬å¸éç¼éä¼ç工使¨¡å¼ä¸¦ä¸ç¸åãä¸é¢éäºä¾ +åï¼å¯ä»¥å¹«å©ä½ é¿å æäºå¯è½ç¼çåé¡ï¼ +ç¨éäºè©±ä»ç´¹ä½ çä¿®æ¹ææ¡ææå¥½èï¼ + + - å®åæè§£æ±ºäºå¤ååé¡ + - å®åªé¤äº2000è¡ä»£ç¢¼ + - 鿝è£ä¸ï¼å®å·²ç¶è§£éäºææ³è¦èªªæç + - æå¨5種ä¸åçé«ç³»çµæ§ä¸æ¸¬è©¦éå®â¦â¦ + - 鿝ä¸ç³»åå°è£ä¸ç¨ä¾â¦â¦ + - éåä¿®æ¹æé«äºæ®éæ©å¨çæ§è½â¦â¦ + +æè©²é¿å å¦ä¸ç說æ³ï¼ + + - æåå¨AIX/ptx/Solariså°±æ¯é麼åçï¼æä»¥é麼åè¯å®æ¯å¥½çâ¦â¦ + - æåéè¡å·²ç¶20å¹´äºï¼æä»¥â¦â¦ + - ç²äºæåå ¬å¸è³ºé¢èæ ®å¿ é é麼å + - 鿝æåç伿¥ç¢åç·æéè¦ç + - éè£¡æ¯æè¿°æè§é»ç1000é è¨è¨ææª + - 鿝ä¸å5000è¡çè£ä¸ç¨ä¾â¦â¦ + - æé寫äºç¾å¨äºä¸å «ç³ç代碼ï¼éå°±æ¯â¦â¦ + - æè¢«è¦å®äºæå¾æéï¼æä»¥éåè£ä¸éè¦ç«å»è¢«æ¥å + +å¦å¤ä¸åå §æ ¸ç¤¾åè大é¨åå³çµ±å ¬å¸çè»é«éç¼éä¼ä¸åçå°æ¹æ¯ç¡æ³é¢å°é¢å°äº¤ +æµã使ç¨é»åéµä»¶åIRCèå¤©å·¥å ·åç²ä¸»è¦æºéå·¥å ·çä¸åå¥½èæ¯æ§å¥åç¨®ææ§è¦ +å°ææ´å°ãLinuxå §æ ¸çå·¥ä½ç°å¢æ´è½æ¥å婦女åå°æ¸æç¾£ï¼å ç²æ¯å人å¨å¥äººç¼ +éåªæ¯ä¸åéµä»¶å°åãåéåä¹å¹«å©äºå ¬å¹³ç實ç¾ï¼å ç²ä½ ç¡æ³ééå§åä¾å¤æ·äºº +çæ§å¥ãç·äººæå¯è½å«æéºï¼å¥³äººä¹æå¯è½å«çåã大夿¸å¨Linuxå §æ ¸ä¸å·¥ä½é +並表ééçæ³ç女æ§å°å¨linuxä¸å·¥ä½çç¶æ·é½çµ¦åºäºæ£é¢çè©å¹ã + +å°æ¼ä¸äºä¸ç¿æ £ä½¿ç¨è±èªç人ä¾èªªï¼èªè¨å¯è½æ¯ä¸åå¼èµ·åé¡çéç¤ãå¨éµä»¶å表 +ä¸è¦æ£ç¢ºå°è¡¨éæ³æ³å¿ éè¯å¥½å°ææ¡èªè¨ï¼æä»¥å»ºè°ä½ å¨ç¼ééµä»¶ä¹åæå¥½æª¢æ¥ä¸ +ä¸è±æå¯«å¾æ¯å¦æ£ç¢ºã + + +æåä¿®æ¹ +-------- + +Linuxå §æ ¸ç¤¾å並ä¸åæ¡ä¸ä¸æ¥æ¶å¤§æ®µç代碼ãä¿®æ¹éè¦è¢«æ°ç¶å°ä»ç´¹ãè¨è«ä¸¦ä¸ +æåæç¨ç«çå°æ®µãéå¹¾ä¹å®å ¨åå ¬å¸ä¸çç¿æ £èéè馳ãä½ çæ³æ³æè©²å¨éç¼æ +éå§çéæ®µå°±è®å¤§å®¶ç¥éï¼éæ¨£ä½ å°±å¯ä»¥åæç²å¾å°ä½ æ£å¨é²è¡çéç¼çåé¥ãé +æ¨£ä¹æè®ç¤¾å覺å¾ä½ æ¯å¨åä»ååä½ï¼è䏿¯å å æä»åç¶ä½å¾é·æ°åè½çå°è±¡ã +ç¡è«å¦ä½ï¼ä½ ä¸è¦ä¸æ¬¡æ§å°åéµä»¶å表ç¼é50å°ä¿¡ï¼ä½ çè£ä¸åºåæè©²æ°¸é ç¨ä¸å° +é麼å¤ã + +å°è£ä¸æéçåå å¦ä¸ï¼ + +1) å°çè£ä¸æ´æå¯è½è¢«æ¥åï¼å ç²å®åä¸éè¦å¤ªå¤çæéåç²¾åå»é©èå ¶æ£ç¢ºæ§ã + ä¸å5è¡çè£ä¸ï¼å¯è½å¨ç¶è·è çäºä¸ç¼ä»¥å¾å°±æè¢«æ¥åãè500è¡çè£ä¸å + éè¦æ¸åå°æä¾å¯©æ¥å ¶æ£ç¢ºæ§ï¼æéæéé¨è£ä¸å¤§å°å¢å 大ç´åææ¸ç´å¢é·ï¼ã + + ç¶åºäºåé¡çæåï¼å°çè£ä¸ä¹æè®èª¿è©¦è®å¾é常容æãä¸åä¸åè£ä¸å°å溯 + å°ææ¯ä»ç´°åæä¸å被æä¸ç大è£ä¸ï¼éåè£ä¸ç ´å£äºå ¶ä»æ±è¥¿ï¼å®¹æå¾å¤ã + +2ï¼ä¸å ç¼éå°çè£ä¸å¾éè¦ï¼å¨æäº¤ä¹åéæ°ç·¨æãåç°¡ï¼æè å å éæ°æåï¼ + è£ä¸ä¹æ¯å¾éè¦çã + +é裡æå §æ ¸éç¼è Al Viroæçä¸åæ¯æ¹ï¼ + ãæ³åä¸åè師æ£å¨çµ¦å¸çæ¹æ¹æ¸å¸ä½æ¥ãè師並ä¸å¸æçå°å¸çç²äºå¾ + å°æ£ç¢ºè§£æ³æé²è¡çå試åç¢ççé¯èª¤ãä»å¸æçå°çæ¯æä¹¾æ·¨æåªé ç + è§£çã好å¸çäºè§£éé»ï¼çµä¸æææçµè§£æ±ºä¹åçä¸éæ¹æ¡æäº¤ä¸å»ãã + + å §æ ¸éç¼ä¹æ¯é樣ãç¶è·è åè©å¯©è ä¸å¸æçå°ä¸å人å¨è§£æ±ºåé¡æçæ + èéç¨ãä»ååªå¸æçå°ç°¡å®ååªé çè§£æ±ºæ¹æ¡ã + +ç´æ¥çµ¦åºä¸æµçè§£æ±ºæ¹æ¡ï¼å社åä¸èµ·åä½è¨è«å°æªå®æçå·¥ä½ï¼éå ©è ä¹éä¼¼ä¹ +å¾é£æ¾å°ä¸å平衡é»ãæä»¥æå¥½åæ©éå§æ¶éæå©æ¼ä½ é²è¡æ¹é²çåé¥ï¼åæä¹è¦ +ä¿èä¿®æ¹åæå¾å¤å°å¡ï¼éæ¨£å¨æ´åé ç®é½æºå好被å å«é²å §æ ¸ä¹åï¼å ¶ä¸çä¸é¨ +åå¯è½æå è¢«æ¥æ¶ã + +å¿ é äºè§£éæ¨£åæ¯ä¸å¯æ¥åçï¼è©¦åå°æªå®æçå·¥ä½æäº¤é²å §æ ¸ï¼ç¶å¾åæ¾æéä¿® +復ã + + +èæä¿®æ¹çå¿ è¦æ§ +---------------- +é¤äºå°è£ä¸ææå°å¡ï¼å¾éè¦çä¸é»æ¯è®Linux社åäºè§£ä»åç²ä»éº¼éè¦é樣修æ¹ã +ä½ å¿ é èææ°åè½æ¯æäººéè¦ç䏦䏿¯æç¨çã + + +è¨éä¿®æ¹ +-------- + +ç¶ä½ ç¼éè£ä¸çæåï¼éè¦ç¹å¥çæéµä»¶æ£æçå §å®¹ãå ç²é裡çä¿¡æ¯å°æåç²è£ +ä¸çä¿®æ¹è¨é(ChangeLog)ï¼æè¢«ä¸ç´ä¿ç以å大家æ¥é±ãå®éè¦å®å ¨å°æè¿°è£ä¸ï¼ +å æ¬ï¼ + + - ç²ä»éº¼éè¦éåä¿®æ¹ + - è£ä¸ç總é«è¨è¨ + - 實ç¾ç´°ç¯ + - æ¸¬è©¦çµæ + +æ³äºè§£å®å ·é«æè©²çèµ·ä¾åä»éº¼ï¼è«æ¥é±ä»¥ä¸ææªä¸çãChangeLogãç« ç¯ï¼ + ãThe Perfect Patchã + https://www.ozlabs.org/~akpm/stuff/tpp.txt + + +éäºäºæ ææååèµ·ä¾å¾é£ãè¦å¨ä»»ä½æ¹é¢é½åå°å®ç¾å¯è½éè¦å¥½å¹¾å¹´æéã鿝 +ä¸åæçºæé«çéç¨ï¼å®éè¦å¤§éçèå¿å決å¿ãåªè¦ä¸æ¾æ£ï¼ä½ ä¸å®å¯ä»¥åå°ã +å¾å¤äººå·²ç¶åå°äºï¼èä»å齿¾ç¶åç¾å¨çä½ ç«å¨å樣çèµ·é»ä¸ã + + +æè¬ +---- +æè¬Paolo Ciarrocchiå 許ãéç¼æµç¨ãé¨ååºæ¼ä»æå¯«çæç« +(http://www.kerneltravel.net/newbie/2.6-development_process)ï¼æè¬Randy +DunlapåGerrit Huizengaå®åäºæè©²èªªåä¸è©²èªªçå表ãæè¬Pat Mochel, Hanna +Linder, Randy Dunlap, Kay Sievers, Vojtech Pavlik, Jan Kara, Josh Boyer, +Kees Cook, Andrew Morton, Andi Kleen, Vadim Lobanov, Jesper Juhl, Adrian +Bunk, Keri Harris, Frans Pop, David A. Wheeler, Junio Hamano, Michael +KerriskåAlex Shepardçè©å¯©ã建è°åè²¢ç»ãæ²æä»åç幫å©ï¼éç¯ææªæ¯ä¸å¯ +è½å®æçã + + + +è±æçç¶è·è ï¼ Greg Kroah-Hartman <greg@kroah.com> + diff --git a/Documentation/translations/zh_TW/process/index.rst b/Documentation/translations/zh_TW/process/index.rst new file mode 100644 index 0000000000000..ec7ad14bfd137 --- /dev/null +++ b/Documentation/translations/zh_TW/process/index.rst @@ -0,0 +1,67 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. raw:: latex + + \renewcommand\thesection* + \renewcommand\thesubsection* + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/index.rst <process_index>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +.. _tw_process_index: + +èLinux å §æ ¸ç¤¾åä¸èµ·å·¥ä½ +======================== + +ä½ æ³æç²Linuxå §æ ¸éç¼äººå¡åï¼æ¡è¿ä¹è³ï¼å¨å¸ç¿è¨±å¤éæ¼å §æ ¸çæè¡ç¥èçåæï¼ +äºè§£æå社åç工使¹å¼ä¹å¾éè¦ãé±è®éäºææªå¯ä»¥è®æ¨ä»¥æ´è¼é¬çãéº»ç ©æ´å°ç +æ¹å¼å°æ´æ¹åä½µå°å §æ ¸ã + +以䏿¯æ¯ä½éç¼äººå¡é½æé±è®çåºæ¬æåï¼ + +.. toctree:: + :maxdepth: 1 + + howto + code-of-conduct + code-of-conduct-interpretation + submitting-patches + programming-language + coding-style + development-process + email-clients + license-rules + kernel-enforcement-statement + kernel-driver-statement + +å ¶å®å¤§å¤æ¸éç¼äººå¡æèè¶£ç社åæåï¼ + + +.. toctree:: + :maxdepth: 1 + + submitting-drivers + submit-checklist + stable-api-nonsense + stable-kernel-rules + management-style + embargoed-hardware-issues + +éäºæ¯ä¸äºç¸½é«æ§æè¡æåï¼ç±æ¼ä¸å¤§å¥½åé¡èæ¾å¨éè£¡ï¼ + +.. toctree:: + :maxdepth: 1 + + magic-number + volatile-considered-harmful + +.. only:: subproject and html + + ç®é + ==== + + * :ref:`genindex` + diff --git a/Documentation/translations/zh_TW/process/kernel-driver-statement.rst b/Documentation/translations/zh_TW/process/kernel-driver-statement.rst new file mode 100644 index 0000000000000..8f225379b12c7 --- /dev/null +++ b/Documentation/translations/zh_TW/process/kernel-driver-statement.rst @@ -0,0 +1,203 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _zh_process_statement_driver: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/kernel-driver-statement.rst <process_statement_driver>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +å §æ ¸é© åè²æ +------------ + +éæ¼Linuxå §æ ¸æ¨¡å¡çç«å ´è²æ +=========================== + +æåï¼ä»¥ä¸ç½²åçLinuxå §æ ¸éç¼äººå¡ï¼èªç²ä»»ä½å°éæºLinuxå §æ ¸æ¨¡å¡æé© åç¨åºé½æ¯ +æå®³çåä¸å¯åçãæåå·²ç¶ä¸åç¼ç¾å®åå°Linuxç¨æ¶ï¼ä¼æ¥åæ´å¤§çLinuxçæ ç³»çµ± +æå®³ã鿍£ç模å¡å¦å®äºLinuxéç¼æ¨¡åçéæ¾æ§ï¼ç©©å®æ§ï¼éæ´»æ§åå¯ç¶è·æ§ï¼ä¸¦ä½¿ +ä»åçç¨æ¶ç¡æ³ä½¿ç¨Linux社åçå°æ¥ç¥èãæä¾éæºå §æ ¸æ¨¡å¡ç便åè¿«ä½¿å ¶å®¢æ¶ +æ¾æ£Linuxç主è¦åªå¢æé¸ææ°ç便åãå æ¤ï¼ç²äºå åå©ç¨éæºææä¾çææ¬ç¯çå +å ±äº«æ¯æåªå¢ï¼æåæ¦ä¿ä¾æåæ¡åæªæ½ï¼ä»¥éæºå §æ ¸ä»£ç¢¼å¨Linuxä¸ç²å ¶å®¢æ¶æä¾æ¯æã + +æååªç²èªå·±èªªè©±ï¼è䏿¯æåä»å¤©å¯è½æç²ä¹å·¥ä½ï¼é廿å°ä¾æç²ä¹å·¥ä½çä»»ä½å ¬å¸ã + + - Dave Airlie + - Nick Andrew + - Jens Axboe + - Ralf Baechle + - Felipe Balbi + - Ohad Ben-Cohen + - Muli Ben-Yehuda + - Jiri Benc + - Arnd Bergmann + - Thomas Bogendoerfer + - Vitaly Bordug + - James Bottomley + - Josh Boyer + - Neil Brown + - Mark Brown + - David Brownell + - Michael Buesch + - Franck Bui-Huu + - Adrian Bunk + - François Cami + - Ralph Campbell + - Luiz Fernando N. Capitulino + - Mauro Carvalho Chehab + - Denis Cheng + - Jonathan Corbet + - Glauber Costa + - Alan Cox + - Magnus Damm + - Ahmed S. Darwish + - Robert P. J. Day + - Hans de Goede + - Arnaldo Carvalho de Melo + - Helge Deller + - Jean Delvare + - Mathieu Desnoyers + - Sven-Thorsten Dietrich + - Alexey Dobriyan + - Daniel Drake + - Alex Dubov + - Randy Dunlap + - Michael Ellerman + - Pekka Enberg + - Jan Engelhardt + - Mark Fasheh + - J. Bruce Fields + - Larry Finger + - Jeremy Fitzhardinge + - Mike Frysinger + - Kumar Gala + - Robin Getz + - Liam Girdwood + - Jan-Benedict Glaw + - Thomas Gleixner + - Brice Goglin + - Cyrill Gorcunov + - Andy Gospodarek + - Thomas Graf + - Krzysztof Halasa + - Harvey Harrison + - Stephen Hemminger + - Michael Hennerich + - Tejun Heo + - Benjamin Herrenschmidt + - Kristian Høgsberg + - Henrique de Moraes Holschuh + - Marcel Holtmann + - Mike Isely + - Takashi Iwai + - Olof Johansson + - Dave Jones + - Jesper Juhl + - Matthias Kaehlcke + - Kenji Kaneshige + - Jan Kara + - Jeremy Kerr + - Russell King + - Olaf Kirch + - Roel Kluin + - Hans-Jürgen Koch + - Auke Kok + - Peter Korsgaard + - Jiri Kosina + - Aaro Koskinen + - Mariusz Kozlowski + - Greg Kroah-Hartman + - Michael Krufky + - Aneesh Kumar + - Clemens Ladisch + - Christoph Lameter + - Gunnar Larisch + - Anders Larsen + - Grant Likely + - John W. Linville + - Yinghai Lu + - Tony Luck + - Pavel Machek + - Matt Mackall + - Paul Mackerras + - Roland McGrath + - Patrick McHardy + - Kyle McMartin + - Paul Menage + - Thierry Merle + - Eric Miao + - Akinobu Mita + - Ingo Molnar + - James Morris + - Andrew Morton + - Paul Mundt + - Oleg Nesterov + - Luca Olivetti + - S.ÃaÄlar Onur + - Pierre Ossman + - Keith Owens + - Venkatesh Pallipadi + - Nick Piggin + - Nicolas Pitre + - Evgeniy Polyakov + - Richard Purdie + - Mike Rapoport + - Sam Ravnborg + - Gerrit Renker + - Stefan Richter + - David Rientjes + - Luis R. Rodriguez + - Stefan Roese + - Francois Romieu + - Rami Rosen + - Stephen Rothwell + - Maciej W. Rozycki + - Mark Salyzyn + - Yoshinori Sato + - Deepak Saxena + - Holger Schurig + - Amit Shah + - Yoshihiro Shimoda + - Sergei Shtylyov + - Kay Sievers + - Sebastian Siewior + - Rik Snel + - Jes Sorensen + - Alexey Starikovskiy + - Alan Stern + - Timur Tabi + - Hirokazu Takata + - Eliezer Tamir + - Eugene Teo + - Doug Thompson + - FUJITA Tomonori + - Dmitry Torokhov + - Marcelo Tosatti + - Steven Toth + - Theodore Tso + - Matthias Urlichs + - Geert Uytterhoeven + - Arjan van de Ven + - Ivo van Doorn + - Rik van Riel + - Wim Van Sebroeck + - Hans Verkuil + - Horst H. von Brand + - Dmitri Vorobiev + - Anton Vorontsov + - Daniel Walker + - Johannes Weiner + - Harald Welte + - Matthew Wilcox + - Dan J. Williams + - Darrick J. Wong + - David Woodhouse + - Chris Wright + - Bryan Wu + - Rafael J. Wysocki + - Herbert Xu + - Vlad Yasevich + - Peter Zijlstra + - Bartlomiej Zolnierkiewicz + diff --git a/Documentation/translations/zh_TW/process/kernel-enforcement-statement.rst b/Documentation/translations/zh_TW/process/kernel-enforcement-statement.rst new file mode 100644 index 0000000000000..99e21d22800df --- /dev/null +++ b/Documentation/translations/zh_TW/process/kernel-enforcement-statement.rst @@ -0,0 +1,155 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _tw_process_statement_kernel: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/kernel-enforcement-statement.rst <process_statement_kernel>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +Linux å §æ ¸å·è¡è²æ +------------------ + +ä½ç²Linuxå §æ ¸çéç¼äººå¡ï¼æåå°å¦ä½ä½¿ç¨æåçè»é«ä»¥åå¦ä½å¯¦æ½è»é«è¨±å¯èæè +æ¿åçèè¶£ãéµå®GPL-2.0çäºæ å ±äº«ç¾©åå°æåè»é«å社åçé·æå¯æçºæ§è³ééè¦ã + +éç¶ææ¬å¼·å¶å·è¡å°æå社åçè²¢ç»ä¸çå®ç¨çæ¬æ¬çï¼ä½æåæå ±åçå©çï¼å³ç¢ºä¿ +å人強å¶å·è¡è¡åçæ¹å¼æå©æ¼æåç社åï¼ä¸æå°æåè»é«çæ 系統çå¥åº·åå¢é· +ç¢çæå¤çè² é¢å½±é¿ãç²äºé»æ¢ç¡ççå·æ³è¡åï¼æååæä»£è¡¨æåèªå·±åæåçæ¬ +å©ççä»»ä½ç¹¼æ¿äººå°Linuxå §æ ¸ç¨æ¶ä½åºä»¥ä¸ç¬¦åæåéç¼ç¤¾åæå¤§å©ççæ¿è«¾: + + å管æGPL-2.0ççµæ¢æ¢æ¬¾ï¼æååæï¼æ¡ç¨ä»¥ä¸GPL-3.0æ¢æ¬¾ä½ç²æå許å¯èä¸ç + éå 許å¯ï¼ä½ç²ä»»ä½å°è¨±å¯è䏿¬å©çéé²ç¦¦æ§ä¸»å¼µï¼é符åæåéç¼ç¤¾åçæä½³ + å©çã + + 使¯ï¼å¦ææ¨åæ¢ææéåæ¬è¨±å¯èçè¡ç²ï¼åæ¨å¾ç¹å®çæ¬ææäººèç²å¾ç + 許å¯èå°è¢«æ¢å¾©ï¼ï¼aï¼æ«ææ¢å¾©ï¼é¤éçæ¬ææäººæç¢ºä¸¦æçµçµæ¢æ¨ç許å¯èï¼ + 以åï¼bï¼æ°¸ä¹ æ¢å¾©, å¦æçæ¬ææäººæªè½å¨ä½ çµæ¢éåå¾60å¤©å §ä»¥åçæ¹å¼ + éç¥æ¨éåæ¬è¨±å¯èçè¡ç²ï¼åæ°¸ä¹ æ¢å¾©æ¨ç許å¯èã + + æ¤å¤ï¼å¦æçæ¬ææè 以æç¨®åççæ¹å¼éç¥æ¨éåäºæ¬è¨±å¯ï¼éæ¯æ¨ç¬¬ä¸æ¬¡ + å¾è©²çæ¬ææè èæ¶å°éåæ¬è¨±å¯çéç¥ï¼å°æ¼ä»»ä½ä½åï¼ï¼ä¸¦ä¸æ¨å¨æ¶å°éç¥ + å¾ç30å¤©å §ç³¾æ£éè¦è¡ç²ã忍å¾ç¹å®çæ¬ææè èç²å¾ç許å¯å°æ°¸ä¹ æ¢å¾©. + +æåæä¾éäºä¿èçç®çæ¯é¼åµæ´å¤å°ä½¿ç¨è©²è»é«ãæåå¸æå ¬å¸åå人使ç¨ãä¿®æ¹å +åç¼æ¤è»é«ãæåå¸æä»¥å ¬éåéæçæ¹å¼èç¨æ¶åä½ï¼ä»¥æ¶é¤æåå°æ³è¦éµå¾æ§æå¼·å¶ +å·è¡çä»»ä½ä¸ç¢ºå®æ§ï¼éäºä¸ç¢ºå®æ§å¯è½æéå¶æåè»é«çæ¡ç¨ãæåå°æ³å¾è¡åè¦ç² +æå¾ææ®µï¼åªæå¨å ¶ä»ç¤¾ååªåæªè½è§£æ±ºéä¸åé¡æææ¡åè¡åã + +æå¾ï¼ä¸æ¦ä¸åä¸åè¦åé¡å¾å°è§£æ±ºï¼æåå¸æç¨æ¶ææå°æ¡è¿ï¼å å ¥æåç²ä¹åªåç +éåé ç®ãå ±ååªåï¼æåææ´å¼·å¤§ã + +é¤äºä¸é¢æå°ç以å¤ï¼æååªç²èªå·±èªªè©±ï¼è䏿¯ç²ä»å¤©ãé廿å°ä¾å¯è½ç²ä¹å·¥ä½ç +ä»»ä½å ¬å¸èªªè©±ã + + - Laura Abbott + - Bjorn Andersson (Linaro) + - Andrea Arcangeli + - Neil Armstrong + - Jens Axboe + - Pablo Neira Ayuso + - Khalid Aziz + - Ralf Baechle + - Felipe Balbi + - Arnd Bergmann + - Ard Biesheuvel + - Tim Bird + - Paolo Bonzini + - Christian Borntraeger + - Mark Brown (Linaro) + - Paul Burton + - Javier Martinez Canillas + - Rob Clark + - Kees Cook (Google) + - Jonathan Corbet + - Dennis Dalessandro + - Vivien Didelot (Savoir-faire Linux) + - Hans de Goede + - Mel Gorman (SUSE) + - Sven Eckelmann + - Alex Elder (Linaro) + - Fabio Estevam + - Larry Finger + - Bhumika Goyal + - Andy Gross + - Juergen Gross + - Shawn Guo + - Ulf Hansson + - Stephen Hemminger (Microsoft) + - Tejun Heo + - Rob Herring + - Masami Hiramatsu + - Michal Hocko + - Simon Horman + - Johan Hovold (Hovold Consulting AB) + - Christophe JAILLET + - Olof Johansson + - Lee Jones (Linaro) + - Heiner Kallweit + - Srinivas Kandagatla + - Jan Kara + - Shuah Khan (Samsung) + - David Kershner + - Jaegeuk Kim + - Namhyung Kim + - Colin Ian King + - Jeff Kirsher + - Greg Kroah-Hartman (Linux Foundation) + - Christian König + - Vinod Koul + - Krzysztof Kozlowski + - Viresh Kumar + - Aneesh Kumar K.V + - Julia Lawall + - Doug Ledford + - Chuck Lever (Oracle) + - Daniel Lezcano + - Shaohua Li + - Xin Long + - Tony Luck + - Catalin Marinas (Arm Ltd) + - Mike Marshall + - Chris Mason + - Paul E. McKenney + - Arnaldo Carvalho de Melo + - David S. Miller + - Ingo Molnar + - Kuninori Morimoto + - Trond Myklebust + - Martin K. Petersen (Oracle) + - Borislav Petkov + - Jiri Pirko + - Josh Poimboeuf + - Sebastian Reichel (Collabora) + - Guenter Roeck + - Joerg Roedel + - Leon Romanovsky + - Steven Rostedt (VMware) + - Frank Rowand + - Ivan Safonov + - Anna Schumaker + - Jes Sorensen + - K.Y. Srinivasan + - David Sterba (SUSE) + - Heiko Stuebner + - Jiri Kosina (SUSE) + - Willy Tarreau + - Dmitry Torokhov + - Linus Torvalds + - Thierry Reding + - Rik van Riel + - Luis R. Rodriguez + - Geert Uytterhoeven (Glider bvba) + - Eduardo Valentin (Amazon.com) + - Daniel Vetter + - Linus Walleij + - Richard Weinberger + - Dan Williams + - Rafael J. Wysocki + - Arvind Yadav + - Masahiro Yamada + - Wei Yongjun + - Lv Zheng + - Marc Zyngier (Arm Ltd) + diff --git a/Documentation/translations/zh_TW/process/license-rules.rst b/Documentation/translations/zh_TW/process/license-rules.rst new file mode 100644 index 0000000000000..ad2b80f971232 --- /dev/null +++ b/Documentation/translations/zh_TW/process/license-rules.rst @@ -0,0 +1,374 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/license-rules.rst <kernel_licensing>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +.. _tw_kernel_licensing: + +Linuxå §æ ¸è¨±å¯è¦å +================= + +Linuxå §æ ¸æ ¹æLICENSES/preferred/GPL-2.0䏿ä¾çGNUéç¨å ¬å ±è¨±å¯èçæ¬2 +ï¼GPL-2.0ï¼çæ¢æ¬¾æä¾ï¼ä¸¦å¨LICENSES/exceptions/Linux-syscall-noteä¸é¡¯å¼ +æè¿°äºä¾å¤ç系統調ç¨ï¼å¦COPYINGæä»¶ä¸æè¿°ã + +æ¤ææªæä»¶æä¾äºå¦ä½å°æ¯åæºæä»¶é²è¡æ³¨éä»¥ä½¿å ¶è¨±å¯èæ¸ æ°æç¢ºç說æã +å®ä¸æåä»£å §æ ¸ç許å¯èã + +å §æ ¸åå§ç¢¼ä½ç²ä¸åæ´é«é©ç¨æ¼COPYINGæä»¶ä¸æè¿°ç許å¯èï¼ä½æ¯å®åæºæä»¶å¯ä»¥ +å ·æä¸åçèGPL-20å ¼å®¹ç許å¯è:: + + GPL-1.0+ : GNUéç¨å ¬å ±è¨±å¯èv1.0ææ´é«çæ¬ + GPL-2.0+ : GNUéç¨å ¬å ±è¨±å¯èv2.0ææ´é«çæ¬ + LGPL-2.0 : å éGNU庫éç¨å ¬å ±è¨±å¯èv2 + LGPL-2.0+: GNU 庫éç¨å ¬å ±è¨±å¯èv2ææ´é«çæ¬ + LGPL-2.1 : å éGNU寬éç¨å ¬å ±è¨±å¯èv2.1 + LGPL-2.1+: GNU寬éç¨å ¬å ±è¨±å¯èv2.1ææ´é«çæ¬ + +餿¤ä¹å¤ï¼å人æä»¶å¯ä»¥å¨éé許å¯ä¸æä¾ï¼ä¾å¦ä¸åå ¼å®¹çGPLè®é«ï¼æè BSDï¼ +MITç許å¯ã + +ç¨æ¶ç©ºéAPIï¼UAPIï¼é æä»¶æè¿°äºç¨æ¶ç©ºéç¨åºèå §æ ¸çæ¥å£ï¼éæ¯ä¸ç¨®ç¹æ®æ æ³ã +æ ¹æå §æ ¸COPYINGæä»¶ä¸ç注éï¼syscallæ¥å£æ¯ä¸åæç¢ºçéçï¼å®ä¸æå°GPLè¦æ± +æ´å±å°ä»»ä½ä½¿ç¨å®èå §æ ¸éä¿¡çè»é«ãç±æ¼UAPIé æä»¶å¿ é å å«å¨åµå»ºå¨Linuxå §æ ¸ +ä¸éè¡çå¯å·è¡æä»¶ç任使ºæä»¶ä¸ï¼å æ¤æ¤ä¾å¤å¿ é è¨éå¨ç¹å¥ç許å¯è表述ä¸ã + +è¡¨éæºæä»¶è¨±å¯èçå¸¸ç¨æ¹æ³æ¯å°å¹é çæ¨£æ¿ææ¬æ·»å å°æä»¶çé 鍿³¨éä¸ãç±æ¼ +æ ¼å¼ï¼æ¼å¯«é¯èª¤çï¼éäºã樣æ¿ãå¾é£ééé£äºå¨ä¸ä¸æä¸ä½¿ç¨çé©è許å¯èåè¦æ§ +çå·¥å ·ã + +æ¨£æ¿ææ¬çæ¿ä»£æ¹æ³æ¯å¨æ¯åæºæä»¶ä¸ä½¿ç¨è»é«å æ¸æäº¤æï¼SPDXï¼è¨±å¯èæ¨è符ã +SPDX許å¯èæ¨èç¬¦æ¯æ©å¨å¯è§£æçï¼ä¸¦ä¸æ¯ç¨æ¼æä¾æä»¶å §å®¹ç許å¯èç精確縮寫ã +SPDX許å¯èæ¨è符ç±Linux åºéæçSPDX å·¥ä½çµç®¡çï¼ä¸¦å¾å°äºæ´åè¡æ¥ï¼å·¥å · +便ååæ³å¾åéçåä½å¤¥ä¼´çä¸è´åæãæé詳細信æ¯ï¼è«åé± +https://spdx.org/ + +Linuxå §æ ¸éè¦æææºæä»¶ä¸ç精確SPDXæ¨è符ãå §æ ¸ä¸ä½¿ç¨çæææ¨èç¬¦å¨ +`è¨±å¯æ¨è符`_ ä¸ç¯ä¸é²è¡äºè§£éï¼ä¸¦ä¸å·²å¯ä»¥å¨ +https://spdx.org/licenses/ ä¸ç宿¹SPDX許å¯èåè¡¨ä¸æª¢ç´¢ï¼ä¸¦é帶許å¯è +ææ¬ã + +è¨±å¯æ¨èç¬¦èªæ³ +-------------- + +1.å®ç½®: + +Â Â Â å §æ ¸æä»¶ä¸çSPDX許å¯èæ¨èç¬¦ææ·»å å°å¯å 嫿³¨éçæä»¶ä¸ç第ä¸è¡ãå°æ¼å¤§å¤ + æ¸æä»¶ï¼éæ¯ç¬¬ä¸è¡ï¼é¤äºé£äºå¨ç¬¬ä¸è¡ä¸éè¦'#!PATH_TO_INTERPRETER'çè ³æ¬ã + å°æ¼éäºè ³æ¬ï¼SPDXæ¨è符é²å ¥ç¬¬äºè¡ã + +| + +2. é¢¨æ ¼: + + SPDX許å¯èæ¨è符以注éç形弿·»å ãæ³¨é樣å¼åæ±ºæ¼æä»¶é¡å:: + + C source: // SPDX-License-Identifier: <SPDX License Expression> + C header: /* SPDX-License-Identifier: <SPDX License Expression> */ + ASM: /* SPDX-License-Identifier: <SPDX License Expression> */ + scripts: # SPDX-License-Identifier: <SPDX License Expression> + .rst: .. SPDX-License-Identifier: <SPDX License Expression> + .dts{i}: // SPDX-License-Identifier: <SPDX License Expression> + + 妿ç¹å®å·¥å ·ç¡æ³èçæ¨æºæ³¨é樣å¼ï¼åæä½¿ç¨å·¥å ·æ¥åçç¸ææ³¨éæ©å¶ãéæ¯å¨ + C é æä»¶ä¸ä½¿ç¨ã/\*\*/ãæ¨£å¼æ³¨éçåå ãéå»å¨ä½¿ç¨çæç.ldsæä»¶ä¸è§å¯å° + æ§å»ºè¢«ç ´å£ï¼å ¶ä¸'ld'ç¡æ³è§£æC++注éãç¾å¨å·²ç¶è§£æ±ºäºéååé¡ï¼ä½ä»ç¶æè¼ + èçå½ç·¨ç¨åºå·¥å ·ç¡æ³èçC++樣å¼ç注éã + +| + +3. 奿³: + + <SPDX許å¯è表éå¼>æ¯SPDX許å¯èå表ä¸çSPDXçæ ¼å¼è¨±å¯èæ¨èç¬¦ï¼æè å¨è¨±å¯ + èä¾å¤é©ç¨æç±ãWITHãåéçå ©åSPDXçæ ¼å¼è¨±å¯èæ¨è符ççµåãç¶æç¨å¤å許 + å¯èæï¼è¡¨éå¼ç±åéå表éå¼çééµåãANDãï¼ãORãçµæï¼ä¸¦ç±ãï¼ãï¼ãï¼ãå åã + + 帶æãææ´é«ãé¸é ç[L]GPLç許å¯èç許å¯èæ¨è符éé使ç¨ã+ãä¾è¡¨ç¤ºãææ´é«ã + é¸é 便§å»ºã:: + + // SPDX-License-Identifier: GPL-2.0+ + // SPDX-License-Identifier: LGPL-2.1+ + + ç¶éè¦ä¿®æ£ç許å¯èæï¼æä½¿ç¨WITHã ä¾å¦ï¼linuxå §æ ¸UAPIæä»¶ä½¿ç¨è¡¨éå¼:: + + // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note + // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note + + å ¶å®å¨å §æ ¸ä¸ä½¿ç¨WITHä¾å¤çäºä¾å¦ä¸:: + + // SPDX-License-Identifier: GPL-2.0 WITH mif-exception + // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 + + ä¾å¤åªè½èç¹å®ç許å¯èæ¨è符ä¸èµ·ä½¿ç¨ãææç許å¯èæ¨è符åå¨ç°å¸¸ææ¬æä»¶ + çæ¨è¨ä¸ãæé詳細信æ¯ï¼è«åé± `è¨±å¯æ¨è符`_ ä¸ç« ä¸ç `ä¾å¤`_ ã + + 妿æä»¶æ¯éé許å¯ä¸åªé¸æä¸å許å¯èï¼åæä½¿ç¨ORãä¾å¦ï¼ä¸äºdtsiæä»¶å¨é + 許å¯ä¸å¯ç¨:: + + // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause + + å §æ ¸ä¸éè¨±å¯æä»¶ä¸è¨±å¯è¡¨éå¼ç示ä¾:: + + // SPDX-License-Identifier: GPL-2.0 OR MIT + // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause + // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 + // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 + // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT + // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL + + 妿æä»¶å ·æå¤å許å¯èï¼å ¶æ¢æ¬¾å ¨é¨é©ç¨æ¼ä½¿ç¨è©²æä»¶ï¼åæä½¿ç¨ANDãä¾å¦ï¼ + å¦æä»£ç¢¼æ¯å¾å¦ä¸åé ç®ç¹¼æ¿çï¼ä¸¦ä¸å·²ç¶æäºäºå°å ¶æ¾å ¥å §æ ¸çæ¬éï¼ä½åå§ + è¨±å¯æ¢æ¬¾éè¦ä¿æææ:: + + // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT + + å¦ä¸åéè¦éµå®å ©å¥è¨±å¯æ¢æ¬¾çä¾åæ¯:: + + // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+ + +è¨±å¯æ¨è符 +---------- + +ç¶å使ç¨ç許å¯è以忷»å å°å §æ ¸ç代碼許å¯èå¯ä»¥åè§£ç²ï¼ + +1. _`åªå 許å¯`: + + æåå¯è½ä½¿ç¨éäºè¨±å¯èï¼å ç²å®åå·²ç¥å®å ¨å ¼å®¹ä¸¦å»£æ³ä½¿ç¨ãéäºè¨±å¯èå¨å §æ ¸ + ç®é:: + + LICENSES/preferred/ + + æ¤ç®éä¸çæä»¶å å«å®æ´ç許å¯èææ¬å `å æ¨è¨`_ ãæä»¶åèSPDX許å¯èæ¨è + 符ç¸åï¼å¾è æç¨æ¼æºæä»¶ä¸ç許å¯èã + + ä¾å¦:: + + LICENSES/preferred/GPL-2.0 + + å å«GPLv2許å¯èææ¬åæéçå æ¨ç±¤:: + + LICENSES/preferred/MIT + + å å«MIT許å¯èææ¬åæéçå æ¨è¨ + + _`å æ¨è¨`: + + 許å¯èæä»¶ä¸å¿ é å å«ä»¥ä¸å æ¨è¨ï¼ + + - Valid-License-Identifier: + +   ä¸è¡æå¤è¡, è²æé£äºè¨±å¯æ¨è符å¨é ç®å §ææ, 以å¼ç¨æ¤ç¹å®è¨±å¯çææ¬ãé + 叏鿝ä¸åææçæ¨è符ï¼ä½æ¯ä¾å¦å°æ¼å¸¶æ'ææ´é«'é¸é ç許å¯èï¼å ©åæ¨è + ç¬¦é½ææã + + - SPDX-URL: + + SPDXé é¢çURLï¼å ¶ä¸å å«è許å¯èç¸éçå ¶ä»ä¿¡æ¯. + + - Usage-Guidance: + + 使ç¨å»ºè°çèªç±æ ¼å¼ææ¬ãè©²ææ¬å¿ é å å«SPDX許å¯èæ¨èç¬¦çæ£ç¢ºç¤ºä¾ï¼å ç² + å®åææ ¹æ `è¨±å¯æ¨èç¬¦èªæ³`_ æåæ¾å ¥æºæä»¶ä¸ã + + - License-Text: + + æ¤æ¨è¨ä¹å¾çææææ¬é½è¢«è¦ç²åå§è¨±å¯ææ¬ + + æä»¶æ ¼å¼ç¤ºä¾:: + + Valid-License-Identifier: GPL-2.0 + Valid-License-Identifier: GPL-2.0+ + SPDX-URL: https://spdx.org/licenses/GPL-2.0.html + Usage-Guide: + To use this license in source code, put one of the following SPDX + tag/value pairs into a comment according to the placement + guidelines in the licensing rules documentation. + For 'GNU General Public License (GPL) version 2 only' use: + SPDX-License-Identifier: GPL-2.0 + For 'GNU General Public License (GPL) version 2 or any later version' use: + SPDX-License-Identifier: GPL-2.0+ + License-Text: + Full license text + + :: + + SPDX-License-Identifier: MIT + SPDX-URL: https://spdx.org/licenses/MIT.html + Usage-Guide: + To use this license in source code, put the following SPDX + tag/value pair into a comment according to the placement + guidelines in the licensing rules documentation. + SPDX-License-Identifier: MIT + License-Text: + Full license text + +| + +2. 䏿¨è¦ç許å¯è: + + éäºè¨±å¯èåªæç¨æ¼ç¾æä»£ç¢¼æå¾å ¶ä»é ç®å°å ¥ä»£ç¢¼ãéäºè¨±å¯èå¨å §æ ¸ç®é:: + + LICENSES/other/ + + æ¤ç®éä¸çæä»¶å å«å®æ´ç許å¯èææ¬å `å æ¨è¨`_ ãæä»¶åèSPDX許å¯èæ¨è + 符ç¸åï¼å¾è æç¨æ¼æºæä»¶ä¸ç許å¯èã + + ä¾å¦:: + + LICENSES/other/ISC + + å å«åé系統è¯åè¨±å¯ææ¬åæéçå æ¨ç±¤:: + + LICENSES/other/ZLib + + å å«ZLIBè¨±å¯ææ¬åæéçå æ¨ç±¤. + + å æ¨ç±¤: + + ãå ¶ä»ã許å¯èçå æ¨ç±¤è¦æ±è `åªå 許å¯`_ çè¦æ±ç¸åã + + æä»¶æ ¼å¼ç¤ºä¾:: + + Valid-License-Identifier: ISC + SPDX-URL: https://spdx.org/licenses/ISC.html + Usage-Guide: + Usage of this license in the kernel for new code is discouraged + and it should solely be used for importing code from an already + existing project. + To use this license in source code, put the following SPDX + tag/value pair into a comment according to the placement + guidelines in the licensing rules documentation. + SPDX-License-Identifier: ISC + License-Text: + Full license text + +| + +3. _`ä¾å¤`: + + æäºè¨±å¯èå¯ä»¥ä¿®æ¹ï¼ä¸¦å 許åå§è¨±å¯èä¸å ·æçæäºä¾å¤æ¬å©ãéäºä¾å¤å¨ + å §æ ¸ç®é:: + + LICENSES/exceptions/ + + æ¤ç®éä¸çæä»¶å å«å®æ´çä¾å¤ææ¬åæéç `ä¾å¤å æ¨è¨`_ ã + + ä¾å¦:: + + LICENSES/exceptions/Linux-syscall-note + + å å«Linuxå §æ ¸çCOPYINGæä»¶ä¸è¨éçLinux系統調ç¨ä¾å¤ï¼è©²æä»¶ç¨æ¼UAPI + é æä»¶ãä¾å¦:: + + LICENSES/exceptions/GCC-exception-2.0 + + å å«GCC'é£çµä¾å¤'ï¼å®å 許ç¨ç«æ¼å ¶è¨±å¯èçä»»ä½äºé²ä½æä»¶èæ¨è¨ææ¤ä¾å¤ç + æä»¶çç·¨è¯çæ¬é£çµã鿝å¾GPLä¸å ¼å®¹åå§ç¢¼åµå»ºå¯éè¡çå¯å·è¡æä»¶æå¿ éçã + + _`ä¾å¤å æ¨è¨`: + + 以ä¸å æ¨è¨å¿ é å¨ä¾å¤æä»¶ä¸å¯ç¨ï¼ + + - SPDX-Exception-Identifier: + +   ä¸åå¯èSPDX許å¯èæ¨è符ä¸èµ·ä½¿ç¨çä¾å¤æ¨è符ã + + - SPDX-URL: + + SPDXé é¢çURLï¼å ¶ä¸å å«èä¾å¤ç¸éçå ¶ä»ä¿¡æ¯ã + + - SPDX-Licenses: + +   以éèåéçä¾å¤å¯ç¨çSPDX許å¯èæ¨è符å表ã + + - Usage-Guidance: + + 使ç¨å»ºè°çèªç±æ ¼å¼ææ¬ãå¿ é 卿æ¬å¾é¢å ä¸SPDX許å¯èæ¨èç¬¦çæ£ç¢ºç¤ºä¾ï¼ + å ç²å®åææ ¹æ `è¨±å¯æ¨èç¬¦èªæ³`_ æåæ¾å ¥æºæä»¶ä¸ã + + - Exception-Text: + + æ¤æ¨è¨ä¹å¾çææææ¬é½è¢«è¦ç²åå§ç°å¸¸ææ¬ + + æä»¶æ ¼å¼ç¤ºä¾:: + + SPDX-Exception-Identifier: Linux-syscall-note + SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html + SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+ + Usage-Guidance: + This exception is used together with one of the above SPDX-Licenses + to mark user-space API (uapi) header files so they can be included + into non GPL compliant user-space application code. + To use this exception add it with the keyword WITH to one of the + identifiers in the SPDX-Licenses tag: + SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note + Exception-Text: + Full exception text + + :: + + SPDX-Exception-Identifier: GCC-exception-2.0 + SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html + SPDX-Licenses: GPL-2.0, GPL-2.0+ + Usage-Guidance: + The "GCC Runtime Library exception 2.0" is used together with one + of the above SPDX-Licenses for code imported from the GCC runtime + library. + To use this exception add it with the keyword WITH to one of the + identifiers in the SPDX-Licenses tag: + SPDX-License-Identifier: <SPDX-License> WITH GCC-exception-2.0 + Exception-Text: + Full exception text + + +ææSPDX許å¯èæ¨è符åä¾å¤é½å¿ é å¨LICENSESåç®éä¸å ·æç¸æçæä»¶ã鿝å 許 +å·¥å ·é©èï¼ä¾å¦checkpatch.plï¼ä»¥åæºå好徿ºè®ååæå許å¯èæå¿ éç, 鿝 +å種FOSSçµç¹æ¨è¦çï¼ä¾å¦ `FSFE REUSE initiative <https://reuse.software/>`_. + +_`模å¡è¨±å¯` +----------------- + + å¯å è¼å §æ ¸æ¨¡å¡ééè¦MODULE_LICENSEï¼ï¼æ¨è¨ãæ¤æ¨è¨æ¢ä¸æ¿ä»£æ£ç¢ºçåå§ç¢¼ + 許å¯èä¿¡æ¯ï¼SPDX-License-Identifierï¼ï¼ä¹ä¸ä»¥ä»»ä½æ¹å¼è¡¨ç¤ºæç¢ºå®æä¾æ¨¡å¡ + åå§ç¢¼ç確å許å¯èã + + æ¤æ¨è¨çå¯ä¸ç®çæ¯æä¾è¶³å¤ çä¿¡æ¯ï¼è©²æ¨¡å¡æ¯å¦æ¯èªç±è»é«æè æ¯å §æ ¸æ¨¡å¡å + è¼å¨åç¨æ¶ç©ºéå·¥å ·çå°ææ¨¡å¡ã + + MODULE_LICENSEï¼ï¼çææè¨±å¯èå符串æ¯: + + ============================= ============================================= + "GPL" æ¨¡å¡æ¯æ ¹æGPLçæ¬2許å¯çãé並ä¸è¡¨ç¤ºå éæ¼ + GPL-2.0æGPL-2.0ææ´é«çæ¬ä¹éçä»»ä½åå¥ã + ææ£ç¢ºè¨±å¯èä¿¡æ¯åªè½ééç¸ææºæä»¶ä¸ç許å¯è + ä¿¡æ¯ä¾ç¢ºå® + + "GPL v2" å"GPL"ç¸åï¼å®çå卿¯å ç²æ·å²åå ã + + "GPL and additional rights" è¡¨ç¤ºæ¨¡å¡æºå¨GPL v2è®é«åMIT許å¯ä¸éé許å¯ç + æ·å²è®é«ãè«ä¸è¦å¨æ°ä»£ç¢¼ä¸ä½¿ç¨ã + + "Dual MIT/GPL" 表é該模å¡å¨GPL v2è®é«æMIT許å¯è鏿ä¸éé + 許å¯çæ£ç¢ºæ¹å¼ã + + "Dual BSD/GPL" è©²æ¨¡å¡æ ¹æGPL v2è®é«æBSD許å¯è鏿é²è¡éé + 許å¯ã BSD許å¯èç確åè®é«åªè½ééç¸ææºæä»¶ + ä¸ç許å¯èä¿¡æ¯ä¾ç¢ºå®ã + + "Dual MPL/GPL" è©²æ¨¡å¡æ ¹æGPL v2è®é«æMozilla Public License + ï¼MPLï¼é¸é é²è¡éé許å¯ã MPL許å¯èç確åè®é« + åªè½ééç¸æçæºæä»¶ä¸ç許å¯èä¿¡æ¯ä¾ç¢ºå®ã + + "Proprietary" 該模å¡å±¬æ¼å°æè¨±å¯ãæ¤å符串å ç¨æ¼å°æçç¬¬ä¸ + æ¹æ¨¡å¡ï¼ä¸è½ç¨æ¼å¨å §æ ¸æ¨¹ä¸å ·æåå§ç¢¼ç模å¡ã + 以é種æ¹å¼æ¨è¨ç模å¡å¨å è¼ææä½¿ç¨'P'æ¨è¨æ± + æå §æ ¸ï¼ä¸¦ä¸å §æ ¸æ¨¡å¡å è¼å¨æçµå°éäºæ¨¡å¡é£çµ + å°ä½¿ç¨EXPORT_SYMBOL_GPLï¼ï¼å°åºç符èã + ============================= ============================================= + + diff --git a/Documentation/translations/zh_TW/process/magic-number.rst b/Documentation/translations/zh_TW/process/magic-number.rst new file mode 100644 index 0000000000000..ae321a9aaece2 --- /dev/null +++ b/Documentation/translations/zh_TW/process/magic-number.rst @@ -0,0 +1,148 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _tw_magicnumbers: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/magic-number.rst <magicnumbers>` + +妿æ³è©è«ææ´æ°æ¬æçå §å®¹ï¼è«ç´æ¥ç¼ä¿¡å°LKMLãå¦æä½ ä½¿ç¨è±æäº¤æµæå°é£ç話ï¼ä¹å¯ +以å䏿çç¶è·è æ±å©ã妿æ¬ç¿»è¯æ´æ°ä¸åææè ç¿»è¯åå¨åé¡ï¼è«è¯ç¹«ä¸æçç¶è·è :: + + 䏿çç¶è·è ï¼ è³å¨å¨ Jia Wei Wei <harryxiyou@gmail.com> + 䏿çç¿»è¯è ï¼ è³å¨å¨ Jia Wei Wei <harryxiyou@gmail.com> + ä¸æçæ ¡è¯è ï¼ è³å¨å¨ Jia Wei Wei <harryxiyou@gmail.com> + è¡çæ Hu Haowen <src.res@email.cn> + +Linux éè¡æ¸ +============ + +éåæä»¶æ¯æéç¶å使ç¨çéè¡å¼è¨»å表ãç¶ä½ 給ä¸åçµæ§æ·»å äºä¸åéè¡å¼ï¼ä½ ä¹æè©²æéåéè¡å¼æ·»å å°éåæä»¶ï¼å ç²æåæå¥½æç¨æ¼åç¨®çµæ§çéè¡å¼çµ±ä¸èµ·ä¾ã + +使ç¨éè¡å¼ä¾ä¿è·å §æ ¸æ¸æçµæ§æ¯ä¸åé常好ç主æãéå°±å è¨±ä½ å¨éè¡ææª¢æ¥(a)ä¸åçµæ§æ¯å¦å·²ç¶è¢«æ»æï¼æè (b)ä½ å·²ç¶çµ¦ä¸åä¾è¡ç¨åºééäºä¸åé¯èª¤ççµæ§ãå¾ä¸ç¨®æ æ³ç¹å¥å°æç¨---ç¹å¥æ¯ç¶ä½ ééä¸å空æéæåçµæ§é«çæåãttyæºç¢¼ï¼ä¾å¦ï¼ç¶å¸¸ééç¹å®é© å使ç¨éç¨®æ¹æ³ä¸¦ä¸åè¦å°æåç¹å®æ¹é¢ççµæ§ã + +使ç¨éè¡å¼çæ¹æ³æ¯å¨çµæ§çéå§èè²æçï¼å¦ä¸:: + + struct tty_ldisc { + int magic; + ... + }; + +ç¶ä½ 以å¾çµ¦å §æ ¸æ·»å å¢å¼·åè½çæåï¼è«éµå®éæ¢è¦åï¼é樣就æç¯çæ¸ä¸æ¸ ç調試æéï¼ç¹å¥æ¯ä¸äºå¤æªçæ æ³ï¼ä¾å¦ï¼æ¸çµè¶ åºç¯å並ä¸éæ°å¯«äºè¶ åºé¨åãéµå®éåè¦åï¼âªéäºæ æ³å¯ä»¥è¢«å¿«éå°ï¼å®å ¨å°é¿å ã + + Theodore Ts'o + 31 Mar 94 + +給ç¶åçLinux 2.1.55æ·»å éè¡è¡¨ã + + Michael Chastain + <mailto:mec@shout.net> + 22 Sep 1997 + +ç¾å¨æè©²ææ°çLinux 2.1.112.å ç²å¨ç¹æ§åçµæéï¼ä¸è½å¨2.2.xåæ¹è®ä»»ä½æ±è¥¿ãéäºæ¢ç®è¢«æ¸åææåºã + + Krzysztof G.Baranowski + <mailto: kgb@knm.org.pl> + 29 Jul 1998 + +æ´æ°éè¡è¡¨å°Linux 2.5.45ãå好è¶éç¹æ§åçµï¼ä½æ¯æå¯è½éææä¸äºæ°çéè¡å¼å¨2.6.xä¹åèå ¥å°å §æ ¸ä¸ã + + Petr Baudis + <pasky@ucw.cz> + 03 Nov 2002 + +æ´æ°éè¡è¡¨å°Linux 2.5.74ã + + Fabian Frederick + <ffrederick@users.sourceforge.net> + 09 Jul 2003 + +===================== ================ ======================== ========================================== +éè¡æ¸å æ¸å çµæ§ æä»¶ +===================== ================ ======================== ========================================== +PG_MAGIC 'P' pg_{read,write}_hdr ``include/linux/pg.h`` +CMAGIC 0x0111 user ``include/linux/a.out.h`` +MKISS_DRIVER_MAGIC 0x04bf mkiss_channel ``drivers/net/mkiss.h`` +HDLC_MAGIC 0x239e n_hdlc ``drivers/char/n_hdlc.c`` +APM_BIOS_MAGIC 0x4101 apm_user ``arch/x86/kernel/apm_32.c`` +DB_MAGIC 0x4442 fc_info ``drivers/net/iph5526_novram.c`` +DL_MAGIC 0x444d fc_info ``drivers/net/iph5526_novram.c`` +FASYNC_MAGIC 0x4601 fasync_struct ``include/linux/fs.h`` +FF_MAGIC 0x4646 fc_info ``drivers/net/iph5526_novram.c`` +PTY_MAGIC 0x5001 ``drivers/char/pty.c`` +PPP_MAGIC 0x5002 ppp ``include/linux/if_pppvar.h`` +SSTATE_MAGIC 0x5302 serial_state ``include/linux/serial.h`` +SLIP_MAGIC 0x5302 slip ``drivers/net/slip.h`` +STRIP_MAGIC 0x5303 strip ``drivers/net/strip.c`` +SIXPACK_MAGIC 0x5304 sixpack ``drivers/net/hamradio/6pack.h`` +AX25_MAGIC 0x5316 ax_disp ``drivers/net/mkiss.h`` +TTY_MAGIC 0x5401 tty_struct ``include/linux/tty.h`` +MGSL_MAGIC 0x5401 mgsl_info ``drivers/char/synclink.c`` +TTY_DRIVER_MAGIC 0x5402 tty_driver ``include/linux/tty_driver.h`` +MGSLPC_MAGIC 0x5402 mgslpc_info ``drivers/char/pcmcia/synclink_cs.c`` +USB_SERIAL_MAGIC 0x6702 usb_serial ``drivers/usb/serial/usb-serial.h`` +FULL_DUPLEX_MAGIC 0x6969 ``drivers/net/ethernet/dec/tulip/de2104x.c`` +USB_BLUETOOTH_MAGIC 0x6d02 usb_bluetooth ``drivers/usb/class/bluetty.c`` +RFCOMM_TTY_MAGIC 0x6d02 ``net/bluetooth/rfcomm/tty.c`` +USB_SERIAL_PORT_MAGIC 0x7301 usb_serial_port ``drivers/usb/serial/usb-serial.h`` +CG_MAGIC 0x00090255 ufs_cylinder_group ``include/linux/ufs_fs.h`` +LSEMAGIC 0x05091998 lse ``drivers/fc4/fc.c`` +GDTIOCTL_MAGIC 0x06030f07 gdth_iowr_str ``drivers/scsi/gdth_ioctl.h`` +RIEBL_MAGIC 0x09051990 ``drivers/net/atarilance.c`` +NBD_REQUEST_MAGIC 0x12560953 nbd_request ``include/linux/nbd.h`` +RED_MAGIC2 0x170fc2a5 (any) ``mm/slab.c`` +BAYCOM_MAGIC 0x19730510 baycom_state ``drivers/net/baycom_epp.c`` +ISDN_X25IFACE_MAGIC 0x1e75a2b9 isdn_x25iface_proto_data ``drivers/isdn/isdn_x25iface.h`` +ECP_MAGIC 0x21504345 cdkecpsig ``include/linux/cdk.h`` +LSOMAGIC 0x27091997 lso ``drivers/fc4/fc.c`` +LSMAGIC 0x2a3b4d2a ls ``drivers/fc4/fc.c`` +WANPIPE_MAGIC 0x414C4453 sdla_{dump,exec} ``include/linux/wanpipe.h`` +CS_CARD_MAGIC 0x43525553 cs_card ``sound/oss/cs46xx.c`` +LABELCL_MAGIC 0x4857434c labelcl_info_s ``include/asm/ia64/sn/labelcl.h`` +ISDN_ASYNC_MAGIC 0x49344C01 modem_info ``include/linux/isdn.h`` +CTC_ASYNC_MAGIC 0x49344C01 ctc_tty_info ``drivers/s390/net/ctctty.c`` +ISDN_NET_MAGIC 0x49344C02 isdn_net_local_s ``drivers/isdn/i4l/isdn_net_lib.h`` +SAVEKMSG_MAGIC2 0x4B4D5347 savekmsg ``arch/*/amiga/config.c`` +CS_STATE_MAGIC 0x4c4f4749 cs_state ``sound/oss/cs46xx.c`` +SLAB_C_MAGIC 0x4f17a36d kmem_cache ``mm/slab.c`` +COW_MAGIC 0x4f4f4f4d cow_header_v1 ``arch/um/drivers/ubd_user.c`` +I810_CARD_MAGIC 0x5072696E i810_card ``sound/oss/i810_audio.c`` +TRIDENT_CARD_MAGIC 0x5072696E trident_card ``sound/oss/trident.c`` +ROUTER_MAGIC 0x524d4157 wan_device [in ``wanrouter.h`` pre 3.9] +SAVEKMSG_MAGIC1 0x53415645 savekmsg ``arch/*/amiga/config.c`` +GDA_MAGIC 0x58464552 gda ``arch/mips/include/asm/sn/gda.h`` +RED_MAGIC1 0x5a2cf071 (any) ``mm/slab.c`` +EEPROM_MAGIC_VALUE 0x5ab478d2 lanai_dev ``drivers/atm/lanai.c`` +HDLCDRV_MAGIC 0x5ac6e778 hdlcdrv_state ``include/linux/hdlcdrv.h`` +PCXX_MAGIC 0x5c6df104 channel ``drivers/char/pcxx.h`` +KV_MAGIC 0x5f4b565f kernel_vars_s ``arch/mips/include/asm/sn/klkernvars.h`` +I810_STATE_MAGIC 0x63657373 i810_state ``sound/oss/i810_audio.c`` +TRIDENT_STATE_MAGIC 0x63657373 trient_state ``sound/oss/trident.c`` +M3_CARD_MAGIC 0x646e6f50 m3_card ``sound/oss/maestro3.c`` +FW_HEADER_MAGIC 0x65726F66 fw_header ``drivers/atm/fore200e.h`` +SLOT_MAGIC 0x67267321 slot ``drivers/hotplug/cpqphp.h`` +SLOT_MAGIC 0x67267322 slot ``drivers/hotplug/acpiphp.h`` +LO_MAGIC 0x68797548 nbd_device ``include/linux/nbd.h`` +M3_STATE_MAGIC 0x734d724d m3_state ``sound/oss/maestro3.c`` +VMALLOC_MAGIC 0x87654320 snd_alloc_track ``sound/core/memory.c`` +KMALLOC_MAGIC 0x87654321 snd_alloc_track ``sound/core/memory.c`` +PWC_MAGIC 0x89DC10AB pwc_device ``drivers/usb/media/pwc.h`` +NBD_REPLY_MAGIC 0x96744668 nbd_reply ``include/linux/nbd.h`` +ENI155_MAGIC 0xa54b872d midway_eprom ``drivers/atm/eni.h`` +CODA_MAGIC 0xC0DAC0DA coda_file_info ``fs/coda/coda_fs_i.h`` +DPMEM_MAGIC 0xc0ffee11 gdt_pci_sram ``drivers/scsi/gdth.h`` +YAM_MAGIC 0xF10A7654 yam_port ``drivers/net/hamradio/yam.c`` +CCB_MAGIC 0xf2691ad2 ccb ``drivers/scsi/ncr53c8xx.c`` +QUEUE_MAGIC_FREE 0xf7e1c9a3 queue_entry ``drivers/scsi/arm/queue.c`` +QUEUE_MAGIC_USED 0xf7e1cc33 queue_entry ``drivers/scsi/arm/queue.c`` +HTB_CMAGIC 0xFEFAFEF1 htb_class ``net/sched/sch_htb.c`` +NMI_MAGIC 0x48414d4d455201 nmi_s ``arch/mips/include/asm/sn/nmi.h`` +===================== ================ ======================== ========================================== + + +è«æ³¨æï¼å¨è²é³è¨æ¶ç®¡çä¸ä»ç¶æä¸äºç¹æ®çç²æ¯åé© åå®ç¾©çéè¡å¼ãæ¥çinclude/sound/sndmagic.hä¾ç²åä»å宿´çå表信æ¯ãå¾å¤OSSè²é³é© åææèªå·±å¾é³æå¡PCI IDæ§å»ºçéè¡å¼-ä»å乿²æè¢«åå¨é裡ã + +IrDAå系統ä¹ä½¿ç¨äºå¤§éçèªå·±çéè¡å¼ï¼æ¥çinclude/net/irda/irda.hä¾ç²åä»å宿´çä¿¡æ¯ã + +HFSæ¯å¦å¤ä¸åæ¯è¼å¤§ç使ç¨éè¡å¼çæä»¶ç³»çµ±-ä½ å¯ä»¥å¨fs/hfs/hfs.h䏿¾å°ä»åã + diff --git a/Documentation/translations/zh_TW/process/management-style.rst b/Documentation/translations/zh_TW/process/management-style.rst new file mode 100644 index 0000000000000..dce2484700633 --- /dev/null +++ b/Documentation/translations/zh_TW/process/management-style.rst @@ -0,0 +1,211 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/management-style.rst <managementstyle>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +.. _tw_managementstyle: + +Linuxå §æ ¸ç®¡çé¢¨æ ¼ +================= + +鿝ä¸åç°¡ççææªï¼æè¿°äºLinuxå §æ ¸é¦é¸çï¼æè¡ç·¨çï¼åæ±ºæ¼æ¨å誰ï¼ç®¡çé¢¨æ ¼ã +å®çç®çæ¯å¨æç¨®ç¨åº¦ä¸åç § :ref:`process/coding-style.rst <codingstyle>` +ä¸»è¦æ¯ç²äºé¿å åè¦åç [#cnf1]_ ç¸åï¼æé¡ä¼¼ï¼çåé¡ã + +管çé¢¨æ ¼æ¯é常å人åçï¼æ¯ç°¡å®çç·¨ç¢¼é¢¨æ ¼è¦åæ´é£ä»¥éåï¼å æ¤æ¬ææªå¯è½è實 +éæ æ³æéï¼ä¹å¯è½èå¯¦éæ æ³ç¡éãèµ·å宿¯ä¸åç©ç¬ï¼ä½é䏦䏿å³èå®å¯è½ä¸ +æ¯ççãä½ å¾èªå·±æ±ºå®ã + +é 便說ä¸å¥ï¼å¨è«å°ãæ ¸å¿ç®¡çè ãæï¼ä¸»è¦æ¯æè¡è² 責人ï¼è䏿¯å¨å ¬å¸å §é¨é²è¡å³ +統管çç人ãå¦æä½ ç°½ç½²äºæ¡è³¼è¨å®æè å°ä½ çåéçé ç®æä»»ä½äºè§£ï¼ä½ å¹¾ä¹è¯å® +䏿¯ä¸åæ ¸å¿ç®¡çè ãéäºå»ºè°å¯è½é©ç¨æ¼æ¨ï¼ä¹å¯è½ä¸é©ç¨æ¼æ¨ã + +é¦å ï¼æå»ºè°ä½ 購買ãé«æäººçä¸åç¿æ £ãï¼è䏿¯é±è®å®ãçäºå®ï¼éæ¯ä¸åå大ç +象徵æ§å§¿æ ã + +.. [#cnf1] æ¬æä»¶ä¸¦ä¸æ¯ééåçåé¡ï¼èæ¯ééè®æåè çè¦å°æç½ï¼æåä¸ç¥é + çæ¡æ¯ä»éº¼ã + +ä¸ç®¡ææ¨£ï¼é裡æ¯ï¼ + +.. _tw_decisions: + +1ï¼æ±ºç +------- + +æ¯å人é½èªç²ç®¡çè åæ±ºå®ï¼è䏿±ºçå¾éè¦ã決å®è¶å¤§è¶çè¦ï¼ç®¡çè å°±å¿ é è¶é«ç´ã +é徿顝ï¼ä½äºå¯¦ä¸¦é妿¤ã + +éæ²çå忝 **é¿å ** ååºæ±ºå®ãå°¤å ¶æ¯ï¼å¦ææäººåè¨´ä½ ã鏿ï¼aï¼æï¼bï¼ï¼ +æåççéè¦ä½ ä¾å決å®ãï¼ä½ å°±æ¯é·å ¥éº»ç ©ç管çè ãä½ ç®¡çç人æ¯ä½ æ´äºè§£ç´°ç¯ï¼ +æä»¥å¦æä»å便¾ä½ åæè¡æ±ºçï¼ä½ å®èäºãä½ é¡¯ç¶æ²æè½åç²ä»ååéåæ±ºå®ã + +ï¼æ¨è«ï¼å¦æä½ 管ççäººä¸æ¯ä½ æ´äºè§£ç´°ç¯ï¼ä½ ä¹æè¢«æç ¸ï¼å管åå å®å ¨ä¸åã +ä¹å°±æ¯èªªï¼ä½ ç工使¯é¯çï¼ä»åæè©²ç®¡çä½ çææºï¼ + +æä»¥éæ²çå忝 **é¿å ** ååºæ±ºå®ï¼è³å°æ¯é£äºå¤§èçè¦ç決å®ãåä¸äºå°ç +åéçµææ§çæ±ºå®æ¯å¾å¥½çï¼ä¸¦ä¸ä½¿æ¨çèµ·ä¾å¥½åç¥éèªå·±å¨åä»éº¼ï¼æä»¥å §æ ¸ç®¡çè +éè¦åçæ¯å°é£äºå¤§çåçè¦ç決å®è®æé£äºæ²æäººçæ£éå¿çå°äºæ ã + +éæå©æ¼èªèå°ä¸åå¤§çæ±ºå®åä¸åå°ç決å®ä¹éçééµå奿¯ä½ æ¯å¦å¯ä»¥å¨äºå¾ä¿®æ£ +ä½ çæ±ºå®ã任使±ºå®é½å¯ä»¥ééå§çµç¢ºä¿å¦æä½ é¯äºï¼èä¸ä½ ä¸å®æé¯ï¼ï¼ä½ 以å¾ç¸½æ¯ +å¯ä»¥ééåæº¯ä¾å½è£æå¤±ãçªç¶éï¼ä½ å°±è¦åå ©åç¡éç·è¦ç決å®ï¼ä¸åæ¯é¯èª¤çï¼å¦ +ä¸åæ¯æ£ç¢ºçã + +人åçè³æèªç²éæ¯çæ£çé å°è½åï¼å³ï¼è¡èªªï¼å³ï¼ã + +å æ¤ï¼é¿å é大決ççééµå¨æ¼é¿å åé£äºç¡æ³æ½åçäºæ ãä¸è¦è¢«å¼å°å°ä¸åä½ ç¡æ³ +éé¢çè§è½ãèµ°æç¡è·¯çèé¼ å¯è½å¾å±éªââèµ°æç¡è·¯ç管çè ç坿ã + +äºå¯¦èæï¼ç±æ¼æ²æäººææè ¢å°è®å §æ ¸ç®¡çè æ¿æå·¨å¤§ç財æ¿è²¬ä»»ï¼æä»¥é常å¾å®¹æ +åæº¯ãæ¢ç¶ä½ ä¸å¯è½æµªè²»æä½ ç¡æ³åéçå·¨é¡è³éï¼ä½ å¯ä¸å¯ä»¥å溯çå°±æ¯æè¡æ±ºçï¼ +èåæº¯å¾å®¹æï¼åªè¦åè¨´å¤§å®¶ä½ æ¯åä¸ç¨±è·çå»çï¼èªªå°ä¸èµ·ï¼ç¶å¾æ¤é·ä½ å»å¹´è®å¥ +人æåçæ¯«ç¡å¹å¼çå·¥ä½ãçªç¶éï¼ä½ ä¸å¹´ååçæ±ºå®ä¸å¨æ¯ä¸åéå¤§çæ±ºå®ï¼å ç² +å®å¾å®¹æè¢«æ¨ç¿»ã + +äºå¯¦èæï¼æäºäººå°æ¥åéç¨®æ¹æ³æå°é£ï¼åå æå ©åï¼ + + - æ¿èªä½ æ¯åç½ç¡æ¯çèµ·ä¾æ´é£ãæåé½åæ¡ä¿æå½¢è±¡ï¼å¨å ¬å ±å ´åèªªä½ é¯äºææ + 確實å¾é£ã + - 妿æäººåè¨´ä½ ï¼ä½ å»å¹´æåçå·¥ä½çµç©¶æ¯ä¸å¼å¾çï¼é£éº¼å°é£äºå¯æçä½ç´å·¥ + ç¨å¸«ä¾èªªä¹æ¯å¾å°é£çï¼éç¶å¯¦éç **å·¥ä½** å¾å®¹æåªé¤ï¼ä½ä½ å¯è½å·²ç¶ä¸å¯ + æ½åå°å¤±å»äºå·¥ç¨å¸«çä¿¡ä»»ãè¨ä½ï¼ãä¸å¯æ¤é·ãæ¯æåä¸éå§å°±è©¦åé¿å çï¼ + èä½ çæ±ºå®çµç©¶æ¯ä¸åéå¤§çæ±ºå®ã + +ä»¤äººæ¬£æ °çæ¯ï¼éå ©ååå é½å¯ä»¥ééé å æ¿èªä½ æ²æä»»ä½ç·ç´¢ï¼æåå訴人åä½ ç +決å®å®å ¨æ¯åæ¥çï¼èä¸å¯è½æ¯é¯èª¤çäºæ 便æå°ç·©è§£ãä½ æè©²å§çµä¿çæ¹è®ä¸»æ +çæ¬å©ï¼ä¸¦è®äººå **æè** å°éä¸é»ãç¶ä½ **éæ²æ** åéçæ£æè ¢çäºæ çæ +åï¼æ¿èªèªå·±æ¯æè ¢çè¦å®¹æå¾å¤ã + +ç¶å¾ï¼ç¶å®ççè¢«èææ¯æè ¢çæåï¼äººåå°±è½åä»åçç¼ç 說ãååï¼ä¸æ¬¡ä¸è¦äºãã + +é種å°ä¸ç¨±è·çå ç¼å¶äººçæ¿èªï¼ä¹å¯è½ä½¿çæ£åéé å·¥ä½çäººä¹æä¸ææ¯å¦å¼å¾åã +ç¢ç«ï¼å¦æä»åä¸ç¢ºå®éæ¯å¦æ¯ä¸å好主æï¼ä½ è¯å®ä¸æè©²ééåä»åä¿èä»åæå +çå·¥ä½å°æé²å ¥ï¼å §æ ¸ï¼é¼åµä»åãå¨ä»åéå§ä¸é 巨大çåªåä¹åï¼è³å°è®ä»åä¸ +æèå¾è¡ã + +è¨ä½ï¼ä»åæå¥½æ¯ä½ æ´äºè§£ç´°ç¯ï¼èä¸ä»åé常èªç²ä»åå°æ¯ä»¶äºé½æçæ¡ãä½ç²ä¸ +å管çè ï¼ä½ è½åçæå¥½çäºæ 䏿¯ç輸èªä¿¡ï¼èæ¯å°ä»åæåçäºæ é²è¡å¥åº·çæ¹ +夿§æèã + +é 便說ä¸å¥ï¼å¦ä¸ç¨®é¿å ååºæ±ºå®çæ¹æ³æ¯çèµ·ä¾å¾å¯æçæ±æ¨ ãæåä¸è½å ©è å ¼ +å¾åï¼ã ç¸ä¿¡æï¼å®æ¯ææçã妿䏿¸ æ¥åªç¨®æ¹æ³æ´å¥½ï¼ä»åæçµæå¼æ¸ æ¥çã +æçµççæ¡å¯è½æ¯å ©ååé齿å ç²éç¨®æ æ³èæå°æ²®åªï¼ä»¥è³æ¼ä»åæ¾æ£äºã + +éè½èµ·ä¾åæ¯ä¸å失æï¼ä½éé常æ¯ä¸å跡象ï¼è¡¨æå ©åé ç®é½æåé¡ï¼èåèå ¶ä¸ +ç人ä¸è½å決å®çåå æ¯ä»å齿¯é¯èª¤çãä½ æçµæèå°ç«ç°çå³éï¼ä½ é¿å äºå¦ä¸ +åä½ æ¬å¯ä»¥æç ¸ç決å®ã + +2ï¼äºº +----- + +大夿¸äººé½æ¯ç½ç¡ï¼åä¸å管çè æå³èä½ å¿ é èç好éä»¶äºï¼ä¹è¨±æ´éè¦çæ¯, +**ä»å** å¿ é èçå¥½ä½ ã + +äºå¯¦èæï¼éç¶å¾å®¹æç³¾æ£æè¡é¯èª¤ï¼ä½ä¸å®¹æç³¾æ£äººæ ¼éç¤ãä½ åªè½åä»åçå +ä½ çï¼äººæ ¼éç¤ï¼å ±èã + +使¯ï¼ç²äºå好ä½ç²å §æ ¸ç®¡çè çæºåï¼æå¥½è¨ä½ä¸è¦çæä»»ä½æ©æ¨ï¼ä¸è¦è½ç¸ä»»ä½ +ç¡è¾çææ°ï¼ä¹ä¸è¦çé 太å¤çå §æ ¸éç¼äººå¡ãäºå¯¦èæï¼çé 人æ¯ç¸ç¶å®¹æçï¼è +親è¿ä¸åçé ç人æ¯å¾é£çãå æ¤ï¼ãçé ãç«å³å±¬æ¼ãä¸å¯éãçç¯çï¼ä¸¦æ ¹æ +:ref:`tw_decisions` æç²çµä¸å¯ä»¥åçäºæ ã + +éè£¡åªæå¹¾åç°¡å®çè¦åï¼ + + (1) ä¸è¦å«äººç¬¨èï¼è³å°ä¸è¦å¨å ¬å ±å ´åï¼ + (2) å¸ç¿å¦ä½å¨å¿è¨è¦å(1)æéæ + +åé¡å¨æ¼ #1 å¾å®¹æå»åï¼å ç²ä½ å¯ä»¥ç¨æ¸ç¾è¬ç¨®ä¸åçæ¹å¼èªªãä½ æ¯ä¸å笨èã [#cnf2]_ +ææçè³æ²ææèå°ï¼èä¸å¹¾ä¹ç¸½æ¯å¸¶èä¸ç¨®ç½ç±åç信念ï¼èªç²ä½ æ¯å°çã + +ä½ è¶ç¢ºä¿¡èªå·±æ¯å°çï¼è®æåé¢å°ç¾å¯¦å§ï¼ä½ å¯ä»¥æå¹¾ä¹ææäººé½ç¨±ç²å£äººï¼èä¸ä½ +ç¶å¸¸æ¯å°çï¼ï¼äºå¾éæå°±è¶é£ã + +è¦è§£æ±ºæ¤åé¡ï¼æ¨å¯¦éä¸åªæå ©åé¸é ï¼ + + - é常æ é·éæ + - æãæãåå»å°æ£éï¼æ²æäººæçæ£æè¦ºå°èªå·±è¢«ä¸å ¬å¹³å°çæºäºãè®å®æè¶³å¤ ç + åµé æ§ï¼ä»åçè³å¯è½æè¦ºå¾å¥½ç¬ã + +é¸ææ°¸é ä¿æç¦®è²æ¯ä¸åå¨çãæ²æäººæç¸ä¿¡ä¸å妿¤æé¡¯å°é±èäºä»åçå¯¦æ§æ ¼ç人ã + +.. [#cnf2] ä¿ç¾ Â·è¥¿èæ¼å±äºãé¢éæäººç50ç¨®æ¹æ³ãï¼å ç²å¦çå°èªªï¼ãå訴éç¼è + ä»åæ¯D*CKHEAD" ç100è¬ç¨®æ¹æ³é½ç¡æ³ç¢ºèªãä½æç¢ºä¿¡ä»å·²ç¶é麼æ³äºã + +3ï¼äºº2 - 好人 +------------- + +éç¶å¤§å¤æ¸äººé½æ¯ç½ç¡ï¼ä½ä¸å¹¸çæ¯ï¼ææ¤æ¨è«ä½ 乿¯ç½ç¡ï¼å管æåé½èªææè¦ºè¯ +å¥½ï¼æåæ¯æ®é人æ´å¥½ï¼è®æåé¢å°ç¾å¯¦å§ï¼æ²æäººç¸ä¿¡ä»åæ¯æ®é人æä½æ¼æ®é人ï¼ï¼ +æåä¹æè©²æ¿èªæå䏿¯æéå©çåï¼è䏿æå ¶ä»äººæ¯ä½ æ´ä¸åç½ç¡ã + +æäºäººå°è°æäººåæä¸å¥½ãå ¶ä»äººå©ç¨å®åã + +ä½ç²å §æ ¸ç¶è·äººå¡ï¼ç¢ºä¿æ¨å¨ç¬¬äºçµä¸ãæ¥åä»åï¼å ç²ä»åæè®ä½ ç工使´å®¹æã +ç¹å¥æ¯ï¼ä»åè½å¤ ç²ä½ åæ±ºå®ï¼éå°±æ¯éæ²çå ¨é¨å §å®¹ã + +æä»¥ç¶ä½ ç¼ç¾ä¸åæ¯ä½ è°æç人æï¼å°±é å ¶èªç¶å§ãä½ ç管çè·è²¬å¨å¾å¤§ç¨åº¦ä¸è®æ +äºãè½èµ·ä¾åæ¯å好主æââå»å試å§ãï¼æè ãè½èµ·ä¾ä¸é¯ï¼ä½æ¯XXXå¢ï¼ããã第äºåç +æ¬å°¤å ¶æ¯ä¸åå¾å¥½çæ¹æ³ï¼è¦éº¼å¸ç¿ä¸äºéæ¼ãXXXãçæ°æ±è¥¿ï¼è¦éº¼ééæåºä¸äºè°æ +äººæ²ææ³å°çæ±è¥¿ä¾é¡¯å¾æ´å ·ç®¡çæ§ãç¡è«åªç¨®æ æ³ï¼ä½ 齿è´ã + +è¦æ³¨æçä¸ä»¶äºæ¯èªèå°ä¸åé åçå大ä¸ä¸å®æè½åç²å ¶ä»é åãæä»¥ä½ å¯è½æå +ç¹å®çæ¹ååºæ¿äººåï¼ä½è®æåé¢å°ç¾å¯¦å§ï¼ä»åå¯è½æ é·ä»åæåçäºæ ï¼èä¸å° +å ¶ä»äºæ é½å¾å·®åãå¥½æ¶æ¯æ¯ï¼äººåå¾å¾æèªç¶èç¶å°éæ¾ä»åæ é·çæ±è¥¿ï¼æä»¥ç¶ +ä½ åæåæ¹ååºæ¿ä»åæï¼ä½ 䏦䏿¯å¨åä¸å¯éè½çäºæ ï¼åªæ¯ä¸è¦ç¨åæ¨ã + +4ï¼è²¬å +------- + +äºæ æåºåé¡çï¼äººå叿å»è²¬å人ãè²¼æ¨ç±¤ï¼ä½ å°±æ¯å責åç人ã + +äºå¯¦ä¸ï¼æ¥å責å並ä¸é£ï¼å°¤å ¶æ¯ç¶äººåæèå°éä¸ **å ¨æ¯** ä½ çé靿ãéè®æ +åæ¾å°äºæ¿æè²¬ä»»çæä½³æ¹å¼ï¼ç²å¥äººæ¿æéä»¶äºãä½ ææè¦ºå¾å¥½ï¼ä»åææè¦ºå¾å¥½ï¼ +æ²æåå°æè²¬. é£èª°ï¼å¤±å»äºä»åçå ¨é¨36GBè²æ æ¶èç人ï¼å ç²ä½ çç¡è½å°åå¼·æ¿ +èªï¼ä½ è³å°æ²æè©¦åéé¿è²¬ä»»ã + +ç¶å¾è®çæ£æç ¸äºçéç¼äººå¡ï¼å¦æä½ è½æ¾å°ä»åï¼ç§ä¸ç¥éä»åæç ¸äºãä¸å æ¯ç² +äºå°ä¾å¯ä»¥é¿å ï¼èä¸ç²äºè®ä»åç¥éä»åæ¬ ä½ ä¸å人æ ãèä¸ï¼ä¹è¨±æ´éè¦çæ¯ï¼ +ä»åä¹å¯è½æ¯è½å¤ 解決åé¡ç人ãå ç²ï¼è®æåé¢å°ç¾å¯¦å§ï¼è¯å®ä¸æ¯ä½ ã + +æ¿æè²¬ä»»ä¹æ¯ä½ é¦å æç²ç®¡çè çåå ã鿝è®äººåä¿¡ä»»ä½ ï¼è®ä½ ç²å¾æ½å¨ç榮èç +ä¸é¨åï¼å ç²ä½ å°±æ¯é£åæèªªãææç ¸äºãç人ãå¦æä½ å·²ç¶éµå¾ªäºä»¥åçè¦åï¼ä½ ç¾ +å¨å·²ç¶å¾æ é·èªªäºã + +5ï¼æé¿å çäºæ +--------------- + +æä¸ä»¶äºäººåçè³æ¯è¢«ç¨±ç²ã笨èãæ´è¨åï¼é£å°±æ¯å¨ä¸åç¥èçè²é³ä¸è¢«ç¨±ç²ã笨èãã +第ä¸åä½ å¯ä»¥éæï¼ç¬¬äºåä½ ä¸æçæ£å¾å°æ©æãå³ä½¿ä½ åå¾å¾å¥½ï¼ä»åä¹å¯è½ä¸å +å¾è½ã + +æåé½èªç²èªå·±æ¯å¥äººå¼·ï¼éæå³èç¶å¥äººè£è ä½å¢æï¼éæè®æå徿±ç«ãä½ ä¹è¨± +å¨éå¾·åæºå䏿¯ä½ å¨åçæ¯å人é½åªè¶ï¼ä½ä¸è¦è©¦å太æé¡¯ï¼é¤éä½ ççæç®æ¿æ +æäºº [#cnf3]_ + +忍£ï¼ä¸è¦å°äºæ 太客氣æå¤ªå¾®å¦ã禮è²å¾å®¹æè½å¾è½è±æµæ°´ï¼æåé¡é±èèµ·ä¾ï¼ +æ£å¦ä»åæèªªï¼ãå¨ç¶²é網路ä¸ï¼æ²äººè½è½å°ä½ çå«èããç¨ä¸åé卿éä¸é»éé²å»ï¼ +å ç²ä½ ä¸è½ççä¾é å¥äººä¾ç²å¾ä½ çè§é»ã + +ä¸äºå¹½é»å¯ä»¥å¹«å©ç·©åç´çåéå¾·åãé度å°è謬çå°æ¥ï¼å¯ä»¥ç輸ä¸åè§é»ï¼èä¸ +æè®æ¥åè æå°çè¦ï¼ä»ååªæ¯èªç²ä½ æ¯æè ¢çãå æ¤ï¼å®å¯ä»¥å¹«å©æåæºè«å°æ¹è© +çå人å¿çéç¤ã + +.. [#cnf3] æç¤ºï¼èä½ ç工使²æç´æ¥éä¿ç網絡æ°èçµæ¯æ¶é¤ä½ å°ä»äººä¸æ»¿ç好 + æ¹æ³ãå¶ç¾å¯«äºä¾®è¾±æ§çå¸åï¼æåå´åï¼è®ä½ çæ ç·å¾å°æ·¨åã奿ç¢é¨·å¸¶åå®¶ + +6ï¼ç²ä»éº¼æ¯æï¼ +--------------- + +æ¢ç¶ä½ ç主è¦è²¬ä»»ä¼¼ä¹æ¯ç²å¥äººçé¯èª¤æ¿æè²¬ä»»ï¼ä¸¦ä¸è®å¥äººçè¦å°æç½ä½ æ¯ä¸ç¨±è· +çï¼é£éº¼é¡¯èæè¦çåé¡ä¹ä¸å°±è®æäºç²ä»éº¼é¦å è¦é樣åã + +é¦å ï¼éç¶ä½ å¯è½ææå¯è½ä¸æè½å°åå¹¾æ²å¥³å©ï¼æç·å©ï¼è®æåä¸è¦å¨é裡è©å¤æ +æ§å¥æ§è¦ï¼æ²ä½ çæ´è¡£å®¤éï¼ä½ æå¾å°ä¸å巨大çå人æå°±æç²ãè² è²¬ããå¥ä»æä½ ç +çå¨é å°å¥äººï¼ä½ è¦è·ä¸å¥äººï¼åå¯è½å¿«å°è¿½è¶ä»åãæ¯åäººé½æèªç²ä½ æ¯è² 責人ã + +å¦æä½ å¯ä»¥åå°éåï¼ éæ¯åå大çå·¥ä½ï¼ + diff --git a/Documentation/translations/zh_TW/process/programming-language.rst b/Documentation/translations/zh_TW/process/programming-language.rst new file mode 100644 index 0000000000000..54e3699eadf85 --- /dev/null +++ b/Documentation/translations/zh_TW/process/programming-language.rst @@ -0,0 +1,76 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/programming-language.rst <programming_language>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +.. _tw_programming_language: + +ç¨åºè¨è¨èªè¨ +============ + +å §æ ¸æ¯ç¨Cèªè¨ :ref:`c-language <tw_c-language>` 編寫çãæ´æºç¢ºå°èªªï¼å §æ ¸é常æ¯ç¨ :ref:`gcc <tw_gcc>` +å¨ ``-std=gnu89`` :ref:`gcc-c-dialect-options <tw_gcc-c-dialect-options>` ä¸ç·¨è¯çï¼ISO C90ç GNU æ¹è¨ï¼ +å æ¬ä¸äºC99ç¹æ§ï¼ + +é種æ¹è¨å å«å°èªè¨ :ref:`gnu-extensions <tw_gnu-extensions>` çè¨±å¤æ´å±ï¼ç¶ç¶ï¼å®å許å¤é½å¨å §æ ¸ä¸ä½¿ç¨ã + +å°æ¼ä¸äºé«ç³»çµæ§ï¼æä¸äºä½¿ç¨ :ref:`clang <tw_clang>` å :ref:`icc <tw_icc>` ç·¨è¯å §æ ¸ +çæ¯æï¼å管å¨ç·¨å¯«æ¤ææªæéæ²æå®æï¼ä»éè¦ç¬¬ä¸æ¹è£ä¸ã + +å±¬æ§ +---- + +卿´åå §æ ¸ä¸ä½¿ç¨çä¸åå¸¸è¦æ´å±æ¯å±¬æ§ï¼attributesï¼ :ref:`gcc-attribute-syntax <tw_gcc-attribute-syntax>` +屬æ§å 許å°å¯¦ç¾å®ç¾©çèªç¾©å¼å ¥èªè¨å¯¦é«ï¼å¦è®éã彿¸æé¡åï¼ï¼èç¡éå°èªè¨é²è¡ +é大çèªæ³æ´æ¹ï¼ä¾å¦æ·»å æ°ééµåï¼ :ref:`n2049 <tw_n2049>` + +å¨æäºæ æ³ä¸ï¼å±¬æ§æ¯å¯é¸çï¼å³ä¸æ¯æéäºå±¬æ§çç·¨è¯å¨ä»ç¶æè©²çææ£ç¢ºçä»£ç¢¼ï¼ +å³ä½¿å ¶éåº¦è¼æ ¢æå·è¡çç·¨è¯ææª¢æ¥/è¨ºæ·æ¬¡æ¸ä¸å¤ ï¼ + +å §æ ¸å®ç¾©äºåééµåï¼ä¾å¦ï¼ ``pure`` ï¼ï¼è䏿¯ç´æ¥ä½¿ç¨GNU屬æ§èªæ³ï¼ä¾å¦, +``__attribute__((__pure__))`` ï¼ï¼ä»¥æª¢æ¸¬å¯ä»¥ä½¿ç¨åªäºééµåå/æç¸®ç代碼, å ·é« +è«åé± ``include/linux/compiler_attributes.h`` + +.. _tw_c-language: + +c-language + http://www.open-std.org/jtc1/sc22/wg14/www/standards + +.. _tw_gcc: + +gcc + https://gcc.gnu.org + +.. _tw_clang: + +clang + https://clang.llvm.org + +.. _tw_icc: + +icc + https://software.intel.com/en-us/c-compilers + +.. _tw_gcc-c-dialect-options: + +c-dialect-options + https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html + +.. _tw_gnu-extensions: + +gnu-extensions + https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html + +.. _tw_gcc-attribute-syntax: + +gcc-attribute-syntax + https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html + +.. _tw_n2049: + +n2049 + http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf + diff --git a/Documentation/translations/zh_TW/process/stable-api-nonsense.rst b/Documentation/translations/zh_TW/process/stable-api-nonsense.rst new file mode 100644 index 0000000000000..22caa5b8d4223 --- /dev/null +++ b/Documentation/translations/zh_TW/process/stable-api-nonsense.rst @@ -0,0 +1,159 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _tw_stable_api_nonsense: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/stable-api-nonsense.rst + <stable_api_nonsense>` + +è¯è :: + + 䏿çç¶è·è ï¼ é¾å® TripleX Chung <xxx.phy@gmail.com> + 䏿çç¿»è¯è ï¼ é¾å® TripleX Chung <xxx.phy@gmail.com> + ä¸æçæ ¡è¯è ï¼ æé½ Li Yang <leoyang.li@nxp.com> + è¡çæ Hu Haowen <src.res@email.cn> + +Linux å §æ ¸é© åæ¥å£ +================== + +坫使¬ææªçç®çï¼æ¯ç²äºè§£éç²ä»éº¼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> + diff --git a/Documentation/translations/zh_TW/process/stable-kernel-rules.rst b/Documentation/translations/zh_TW/process/stable-kernel-rules.rst new file mode 100644 index 0000000000000..9bb0d9b4f3acb --- /dev/null +++ b/Documentation/translations/zh_TW/process/stable-kernel-rules.rst @@ -0,0 +1,68 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _tw_stable_kernel_rules: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/stable-kernel-rules.rst <stable_kernel_rules>` + +妿æ³è©è«ææ´æ°æ¬æçå §å®¹ï¼è«ç´æ¥è¯ç¹«åææªçç¶è·è ãå¦æä½ ä½¿ç¨è±æ +äº¤æµæå°é£ç話ï¼ä¹å¯ä»¥å䏿çç¶è·è æ±å©ã妿æ¬ç¿»è¯æ´æ°ä¸åææè ç¿» +è¯åå¨åé¡ï¼è«è¯ç¹«ä¸æçç¶è·è :: + + 䏿çç¶è·è ï¼ é¾å® TripleX Chung <xxx.phy@gmail.com> + 䏿çç¿»è¯è ï¼ é¾å® TripleX Chung <xxx.phy@gmail.com> + ä¸æçæ ¡è¯è ï¼ + - æé½ Li Yang <leoyang.li@nxp.com> + - Kangkai Yin <e12051@motorola.com> + - è¡çæ Hu Haowen <src.res@email.cn> + +ææä½ æ³ç¥éçäºæ - éæ¼linuxç©©å®çç¼å¸ +======================================== + +éæ¼Linux 2.6ç©©å®çç¼å¸ï¼ææä½ æ³ç¥éçäºæ ã + +éæ¼åªäºé¡åçè£ä¸å¯ä»¥è¢«æ¥æ¶é²å ¥ç©©å®ç代碼樹ï¼åªäºä¸å¯ä»¥çè¦åï¼ +---------------------------------------------------------------- + + - å¿ é æ¯é¡¯èæè¦çæ£ç¢ºï¼ä¸¦ä¸ç¶é測試çã + - é£åä¸ä¸æï¼ä¸è½å¤§æ¼100è¡ã + - å¿ é åªä¿®æ£ä¸ä»¶äºæ ã + - å¿ é ä¿®æ£äºä¸å給大家帶ä¾éº»ç ©ççæ£çbugï¼ä¸æ¯ãéä¹è¨±æ¯ä¸ååé¡...ã + 飿¨£çæ±è¥¿ï¼ã + - å¿ é ä¿®æ£å¸¶ä¾å¦ä¸å¾æçåé¡ï¼ç·¨è¯é¯èª¤ï¼å°è¢«æ¨è¨ç²CONFIG_BROKENçä¾å¤ï¼ï¼ + å §æ ¸å´©æ½°ï¼æèµ·ï¼æ¸ææå£ï¼çæ£çå®å ¨åé¡ï¼æè ä¸äºé¡ä¼¼ãå¦ï¼éä¸ + 好ãçåé¡ãç°¡çç說ï¼å°±æ¯ä¸äºè´å½çåé¡ã + - æ²æãçè«ä¸çç«¶çæ¢ä»¶ãï¼é¤éè½çµ¦åºç«¶çæ¢ä»¶å¦ä½è¢«å©ç¨çè§£éã + - ä¸è½åå¨ä»»ä½çãç£ç¢çãä¿®æ£ï¼æ¼å¯«ä¿®æ£ï¼å»æå¤é¤ç©ºæ ¼ä¹é¡çï¼ã + - å¿ é 被ç¸éå系統çç¶è·è æ¥åã + - å¿ é éµå¾ªDocumentation/translations/zh_TW/process/submitting-patches.rstéçè¦åã + +åç©©å®ç代碼樹æäº¤è£ä¸çéç¨ï¼ +------------------------------ + + - å¨ç¢ºèªäºè£ä¸ç¬¦å以ä¸çè¦åå¾ï¼å°è£ä¸ç¼éå°stable@vger.kernel.orgã + - 妿è£ä¸è¢«æ¥åå°éåéï¼ç¼éè ææ¶å°ä¸åACKå復ï¼å¦ææ²æè¢«æ¥åï¼æ¶ + å°çæ¯NAKå復ãå復éè¦å¹¾å¤©çæéï¼éåæ±ºæ¼éç¼è çæé宿ã + - 被æ¥åçè£ä¸æè¢«å å°ç©©å®çæ¬éåéï¼çå¾ å ¶ä»éç¼è ç審æ¥ã + - å®å ¨æ¹é¢çè£ä¸ä¸è¦ç¼å°éååè¡¨ï¼æè©²ç¼éå°security@kernel.orgã + +審æ¥å¨æï¼ +---------- + + - ç¶ç©©å®ççç¶è·è 決å®éå§ä¸å審æ¥å¨æï¼è£ä¸å°è¢«ç¼éå°å¯©æ¥å§å¡æï¼ä»¥ + å被è£ä¸å½±é¿çé åçç¶è·è ï¼é¤éæäº¤è å°±æ¯è©²é åçç¶è·è ï¼ä¸¦ä¸æé + å°linux-kerneléµä»¶å表ã + - 審æ¥å§å¡ææ48å°æçæéï¼ç¨ä¾æ±ºå®çµ¦è©²è£ä¸å復ACK鿝NAKã + - 妿å§å¡æä¸ææå¡æçµéåè£ä¸ï¼æè linux-kernelåè¡¨ä¸æäººåå°éå + è£ä¸ï¼ä¸¦æåºç¶è·è å審æ¥å§å¡æä¹åæ²ææèå°çåé¡ï¼è£ä¸æå¾éåä¸ + 䏿£ã + - å¨å¯©æ¥å¨æçµæçæåï¼é£äºå¾å°ACKåæçè£ä¸å°æè¢«å å ¥å°ææ°çç©©å®ç + ç¼å¸ä¸ï¼ä¸åæ°çç©©å®çç¼å¸å°±æ¤ç¢çã + - å®å ¨æ§è£ä¸å°å¾å §æ ¸å®å ¨å°çµé£è£¡ç´æ¥æ¥æ¶å°ç©©å®ç代碼樹ä¸ï¼è䏿¯éé + é常ç審æ¥å¨æãè«è¯ç¹«å §æ ¸å®å ¨å°çµä»¥ç²å¾éæ¼éåéç¨çæ´å¤ç´°ç¯ã + +審æ¥å§å¡æï¼ +------------ + - ç±ä¸äºèªé¡æ¿æéé ä»»åçå §æ ¸éç¼è ï¼åå¹¾åéå¿é¡ççµæã + diff --git a/Documentation/translations/zh_TW/process/submit-checklist.rst b/Documentation/translations/zh_TW/process/submit-checklist.rst new file mode 100644 index 0000000000000..ff2f89cba83fa --- /dev/null +++ b/Documentation/translations/zh_TW/process/submit-checklist.rst @@ -0,0 +1,109 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/submit-checklist.rst <submitchecklist>` +:Translator: Alex Shi <alex.shi@linux.alibaba.com> + Hu Haowen <src.res@email.cn> + +.. _tw_submitchecklist: + +Linuxå §æ ¸è£ä¸æäº¤æ¸ å® +~~~~~~~~~~~~~~~~~~~~~ + +妿éç¼äººå¡å¸æçå°ä»åçå §æ ¸è£ä¸æäº¤æ´å¿«å°è¢«æ¥åï¼é£éº¼ä»åæè©²åä¸äºåºæ¬ +çäºæ ã + +éäºé½æ¯å¨ +:ref:`Documentation/translations/zh_TW/process/submitting-patches.rst <tw_submittingpatches>` +åå ¶ä»æéæäº¤Linuxå §æ ¸è£ä¸çææªä¸æä¾çã + +1) å¦æä½¿ç¨å·¥å ·ï¼åå æ¬å®ç¾©/è²æè©²å·¥å ·çæä»¶ãä¸è¦ä¾è³´æ¼å ¶ä»é æä»¶æå ¥æ¨ä½¿ç¨ + çé æä»¶ã + +2) 乾淨çç·¨è¯ï¼ + + a) 使ç¨é©ç¨æä¿®æ¹ç ``CONFIG`` é¸é ``=y``ã``=m`` å ``=n`` ãæ²æGCC + è¦å/é¯èª¤ï¼æ²æé£çµå¨è¦å/é¯èª¤ã + + b) ééallnoconfigãallmodconfig + + c) ä½¿ç¨ ``O=builddir`` æå¯ä»¥æåç·¨è¯ + +3) ééä½¿ç¨æ¬å°äº¤åç·¨è¯å·¥å ·æå ¶ä»ä¸äºæ§å»ºå ´å¨å¤åCPUé«ç³»çµæ§ä¸æ§å»ºã + +4) PPC64æ¯ä¸ç¨®å¾å¥½ç交åç·¨è¯æª¢æ¥é«ç³»çµæ§ï¼å ç²å®å¾åæ¼å°64ä½çæ¸ä½¿ç¨ç¡ç¬¦è + é·æ´åã + +5) å¦ä¸æè¿° :ref:`Documentation/translations/zh_TW/process/coding-style.rst <tw_codingstyle>`. + æª¢æ¥æ¨çè£ä¸æ¯å¦ç²å¸¸è¦æ¨£å¼ãå¨æäº¤ï¼ ``scripts/check patch.pl`` ï¼ä¹åï¼ + 使ç¨è£ä¸æ¨£å¼æª¢æ¥å¨æª¢æ¥æ¯å¦æè¼å¾®çè¡çªãæ¨æè©²è½å¤ èçæ¨çè£ä¸ä¸åå¨çææ + éè¦è¡ç²ã + +6) 任使°çæä¿®æ¹éç ``CONFIG`` é¸é é½ä¸æå¼é«é ç½®èå®ï¼ä¸¦é»èªç²ééï¼é¤é + å®å符å ``Documentation/kbuild/kconfig-language.rst`` ä¸è¨éçç°å¸¸æ¢ä»¶, + èå®å±¬æ§ï¼é»èªå¼. + +7) æææ°ç ``kconfig`` é¸é 齿幫婿æ¬ã + +8) å·²ä»ç´°å¯©æ¥äºç¸éç ``Kconfig`` çµåãéå¾é£ç¨æ¸¬è©¦ä¾ç³¾æ£ââè ¦åå¨éè£¡æ¯æ + åå ±çã + +9) ç¨ sparse 檢æ¥ä¹¾æ·¨ã + +10) ä½¿ç¨ ``make checkstack`` å ``make namespacecheck`` 並修復ä»åç¼ç¾çä»»ä½ + åé¡ã + + .. note:: + + ``checkstack`` ä¸¦æ²ææç¢ºæåºåé¡ï¼ä½æ¯ä»»ä½ä¸åå¨å 棧ä¸ä½¿ç¨è¶ é512 + åç¯ç彿¸é½å¯ä»¥é²è¡æ´æ¹ã + +11) å æ¬ :ref:`kernel-doc <kernel_doc>` å §æ ¸ææªä»¥è¨éå ¨å±å §æ ¸APIãï¼éæ 彿¸ + ä¸éè¦ï¼ä½ä¹å¯ä»¥ãï¼ä½¿ç¨ ``make htmldocs`` æ ``make pdfdocs`` æª¢æ¥ + :ref:`kernel-doc <kernel_doc>` 並修復任ä½åé¡ã + +12) éé以ä¸é¸é åæåç¨ç測試 ``CONFIG_PREEMPT``, ``CONFIG_DEBUG_PREEMPT``, + ``CONFIG_DEBUG_SLAB``, ``CONFIG_DEBUG_PAGEALLOC``, ``CONFIG_DEBUG_MUTEXES``, + ``CONFIG_DEBUG_SPINLOCK``, ``CONFIG_DEBUG_ATOMIC_SLEEP``, + ``CONFIG_PROVE_RCU`` and ``CONFIG_DEBUG_OBJECTS_RCU_HEAD`` + +13) å·²ç¶éæ§å»ºåéè¡ææ¸¬è©¦ï¼å æ¬æææ²æ ``CONFIG_SMP``, ``CONFIG_PREEMPT``. + +14) 妿è£ä¸ç¨åºå½±é¿IO/ç£ç¢çï¼ä½¿ç¨æä¸ä½¿ç¨ ``CONFIG_LBDAF`` é²è¡æ¸¬è©¦ã + +15) ææä»£ç¢¼è·¯å¾é½å·²å¨åç¨æælockdepåè½çæ æ³ä¸éè¡ã + +16) æææ°ç/procæ¢ç®é½è¨éå¨ ``Documentation/`` + +17) æææ°çå §æ ¸å¼å°åæ¸é½è¨éå¨ + Documentation/admin-guide/kernel-parameters.rst ä¸ã + +18) æææ°ç模å¡åæ¸é½è¨éå¨ ``MODULE_PARM_DESC()`` + +19) æææ°çç¨æ¶ç©ºéæ¥å£é½è¨éå¨ ``Documentation/ABI/`` ä¸ãæé詳細信æ¯ï¼ + è«åé± ``Documentation/ABI/README`` ãæ´æ¹ç¨æ¶ç©ºéæ¥å£çè£ä¸æè©²æé + linux-api@vger.kernel.orgã + +20) å·²ééè³å°æ³¨å ¥slabåpageåé 失æé²è¡æª¢æ¥ãè«åé± ``Documentation/fault-injection/`` + 妿æ°ä»£ç¢¼æ¯å¯¦è³ªæ§çï¼é£éº¼æ·»å å系統ç¹å®çæ éæ³¨å ¥å¯è½æ¯åé©çã + +21) æ°æ·»å ç代碼已ç¶ç¨ ``gcc -W`` ç·¨è¯ï¼ä½¿ç¨ ``make EXTRA-CFLAGS=-W`` ï¼ãé + å°ç¢ç大éåªè²ï¼ä½å°æ¼æ¥æ¾è«¸å¦ãè¦åï¼æç¬¦èåç¡ç¬¦èä¹éçæ¯è¼ãä¹é¡çé¯èª¤ + 徿ç¨ã + +22) å¨å®è¢«åä½µå°-mmè£ä¸éä¸ä¹å¾é²è¡æ¸¬è©¦ï¼ä»¥ç¢ºä¿å®ä»ç¶èææå ¶ä»æéçè£ä¸ä»¥ + åVMãVFSåå ¶ä»å系統ä¸çåç¨®æ´æ¹ä¸èµ·å·¥ä½ã + +23) ææå §åå±éä¾å¦ ``barrier()``, ``rmb()``, ``wmb()`` é½éè¦åå§ç¢¼ä¸ç注 + éä¾è§£éå®åæ£å¨å·è¡çæä½åå ¶åå çé輯ã + +24) 妿è£ä¸æ·»å äºä»»ä½ioctlï¼é£éº¼ä¹è¦æ´æ° ``Documentation/userspace-api/ioctl/ioctl-number.rst`` + +25) å¦æä¿®æ¹å¾çåå§ç¢¼ä¾è³´æä½¿ç¨èä»¥ä¸ ``Kconfig`` 符èç¸éçä»»ä½å §æ ¸APIæ + åè½ï¼åå¨ç¦ç¨ç¸é ``Kconfig`` 符èå/æ ``=m`` ï¼å¦æè©²é¸é å¯ç¨ï¼çæ æ³ + 䏿¸¬è©¦ä»¥ä¸å¤åæ§å»º[䏦鿿éäºé½åæåå¨ï¼åªæ¯å®åçå種/鍿©çµå]ï¼ + + ``CONFIG_SMP``, ``CONFIG_SYSFS``, ``CONFIG_PROC_FS``, ``CONFIG_INPUT``, ``CONFIG_PCI``, ``CONFIG_BLOCK``, ``CONFIG_PM``, ``CONFIG_MAGIC_SYSRQ``, + ``CONFIG_NET``, ``CONFIG_INET=n`` (使¯å¾è ä¼´é¨ ``CONFIG_NET=y``). + diff --git a/Documentation/translations/zh_TW/process/submitting-drivers.rst b/Documentation/translations/zh_TW/process/submitting-drivers.rst new file mode 100644 index 0000000000000..2fdd742318ba8 --- /dev/null +++ b/Documentation/translations/zh_TW/process/submitting-drivers.rst @@ -0,0 +1,164 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _tw_submittingdrivers: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/submitting-drivers.rst + <submittingdrivers>` + +妿æ³è©è«ææ´æ°æ¬æçå §å®¹ï¼è«ç´æ¥è¯ç¹«åææªçç¶è·è ãå¦æä½ ä½¿ç¨è±æ +äº¤æµæå°é£ç話ï¼ä¹å¯ä»¥å䏿çç¶è·è æ±å©ã妿æ¬ç¿»è¯æ´æ°ä¸åææè ç¿» +è¯åå¨åé¡ï¼è«è¯ç¹«ä¸æçç¶è·è :: + + 䏿çç¶è·è ï¼ æé½ Li Yang <leoyang.li@nxp.com> + 䏿çç¿»è¯è ï¼ æé½ Li Yang <leoyang.li@nxp.com> + ä¸æçæ ¡è¯è ï¼ é³ç¦ Maggie Chen <chenqi@beyondsoft.com> + çè° Wang Cong <xiyou.wangcong@gmail.com> + å¼µå· Zhang Wei <wezhang@outlook.com> + è¡çæ Hu Haowen <src.res@email.cn> + +å¦ä½å Linux å §æ ¸æäº¤é© åç¨åº +============================= + +éç¯ææªå°æè§£éå¦ä½åä¸åçå §æ ¸æºç¢¼æ¨¹æäº¤è¨åé© åç¨åºãè«æ³¨æï¼å¦æä½ æ +èè¶£çæ¯é¡¯å¡é© åç¨åºï¼ä½ ä¹è¨±æè©²è¨ªå XFree86 é ç®(https://www.xfree86.org/) +åï¼æ X.org é ç® (https://x.org)ã + +å¦è«åé± Documentation/translations/zh_TW/process/submitting-patches.rst ææªã + + +åé è¨åè +---------- + +å¡è¨ååå符è¨åç主è¨åèèå¾è¨åèæ¯ç± Linux å½åç·¨èåé æ¬å¨ LANANAï¼ +ç¾å¨æ¯ Torben Mathiasenï¼è² 責åé ãç³è«çç¶²åæ¯ https://www.lanana.org/ã +å³ä½¿ä¸æºåæäº¤å°ä¸»æµå §æ ¸çè¨åé© åä¹éè¦å¨é裡åé è¨åèãæé詳細信æ¯ï¼ +è«åé± Documentation/admin-guide/devices.rstã + +å¦æä½ ä½¿ç¨ç䏿¯å·²ç¶åé çè¨åèï¼é£éº¼ç¶ä½ æäº¤è¨åé© åçæåï¼å®å°æè¢«å¼· +å¶åé ä¸åæ°çè¨åèï¼å³ä¾¿éåè¨åèåä½ ä¹åç¼çµ¦å®¢æ¶çæªç¶ä¸åã + +è¨åé© åçæäº¤å°è±¡ +------------------ + +Linux 2.0: + æ¤å §æ ¸æºç¢¼æ¨¹ä¸æ¥åæ°çé© åç¨åºã + +Linux 2.2: + æ¤å §æ ¸æºç¢¼æ¨¹ä¸æ¥åæ°çé© åç¨åºã + +Linux 2.4: + 妿æå±¬ç代碼é åå¨å §æ ¸ç MAINTAINERS æä»¶ä¸åæä¸å總ç¶è·è ï¼ + é£éº¼è«å°é© åç¨åºæäº¤çµ¦ä»ã妿æ¤ç¶è·è æ²æåææè ä½ æ¾ä¸å°æ°ç¶ç + ç¶è·è ï¼é£éº¼è«è¯ç¹« Willy Tarreau <w@1wt.eu>ã + +Linux 2.6: + é¤äºéµå¾ªå 2.4 çå §æ ¸åæ¨£çè¦åå¤ï¼ä½ ééè¦å¨ linux-kernel éµä»¶ + å表ä¸è·è¹¤ææ°ç API è®åãå Linux 2.6 å §æ ¸æäº¤é© åçé ç´è¯ç¹«äºº + æ¯ Andrew Morton <akpm@linux-foundation.org>ã + +決å®è¨åé© åè½å¦è¢«æ¥åçæ¢ä»¶ +---------------------------- + +許å¯ï¼ ä»£ç¢¼å¿ é ä½¿ç¨ GNU éç¨å ¬é許å¯è (GPL) æäº¤çµ¦ Linuxï¼ä½æ¯ + æå並ä¸è¦æ± GPL æ¯å¯ä¸ç許å¯ãä½ æè¨±æå¸æåæä½¿ç¨å¤ç¨® + 許å¯èç¼å¸ï¼å¦æå¸æé© åç¨åºå¯ä»¥è¢«å ¶ä»éæºç¤¾åï¼æ¯å¦BSDï¼ + 使ç¨ãè«åè include/linux/module.h æä»¶ä¸æååºçå¯è¢« + æ¥åå ±åç許å¯ã + +çæ¬ï¼ çæ¬ææè å¿ é åæä½¿ç¨ GPL 許å¯ãæå¥½æäº¤è åçæ¬ææè + æ¯ç¸åå人æå¯¦é«ãå¦åï¼å¿ éååºææ¬ä½¿ç¨ GPL ççæ¬ææ + 人æå¯¦é«ï¼ä»¥åé©èä¹éã + +æ¥å£ï¼ å¦æä½ çé© åç¨åºä½¿ç¨ç¾æçæ¥å£ä¸¦ä¸åå ¶ä»åé¡çé© åç¨åºè¡ + ç²ç¸ä¼¼ï¼è䏿¯å»ç¼æç¡è¬çæ°æ¥å£ï¼é£éº¼å®å°ææ´å®¹æè¢«æ¥åã + å¦æä½ éè¦ä¸å Linux å NT çéç¨é© 忥å£ï¼é£éº¼è«å¨ç¨ + æ¶ç©ºé實ç¾å®ã + +ä»£ç¢¼ï¼ è«ä½¿ç¨ Documentation/process/coding-style.rst 䏿æè¿°ç Linux 代碼風 + æ ¼ãå¦æä½ çæäºä»£ç¢¼æ®µï¼ä¾å¦é£äºè Windows é© åç¨åºå å ± + 享ç代碼段ï¼éè¦ä½¿ç¨å ¶ä»æ ¼å¼ï¼èä½ å»åªå¸æç¶è·ä¸ä»½ä»£ç¢¼ï¼ + é£éº¼è«å°å®åå¾å¥½å°åååºä¾ï¼ä¸¦ä¸è¨»æåå ã + +å¯ç§»æ¤æ§ï¼ è«æ³¨æï¼æé䏦䏿°¸é æ¯ 32 ä½çï¼ä¸æ¯ææçè¨ç®æ©é½ä½¿ç¨å° + å°¾æ¨¡å¼ (little endian) å岿¸æï¼ä¸æ¯ææçäººé½æææµ®é» + å®å ï¼ä¸è¦é¨ä¾¿å¨ä½ çé© åç¨åºéåµå ¥ x86 å½ç·¨æä»¤ãåªè½å¨ + x86 ä¸éè¡çé© åç¨åºä¸è¬æ¯ä¸åæ¡è¿çãéç¶ä½ å¯è½åªæ x86 + 硬é«ï¼å¾é£æ¸¬è©¦é© åç¨åºå¨å ¶ä»å¹³å°ä¸æ¯å¦å¯ç¨ï¼ä½æ¯ç¢ºä¿ä»£ç¢¼ + å¯ä»¥è¢«è¼é¬å°ç§»æ¤å»æ¯å¾ç°¡å®çã + +æ¸ æ°åº¦ï¼ åå°ææäººé½è½ä¿®è£éåé© åç¨åºå°æå¾æå¥½èï¼å ç²éæ¨£ä½ å° + æç´æ¥æ¶å°ä¿®å¾©çè£ä¸è䏿¯ bug å ±åãå¦æä½ æäº¤ä¸å試å + é±è硬é«å·¥ä½æ©ççé© åç¨åºï¼é£éº¼å®å°æè¢«æé²å»¢ç´ç°ã + +黿ºç®¡çï¼ å ç² Linux æ£å¨è¢«å¾å¤è¡åè£ç½®åæ¡é¢ç³»çµ±ä½¿ç¨ï¼æä»¥ä½ çé© + åç¨åºä¹å¾æå¯è½è¢«ä½¿ç¨å¨éäºè¨åä¸ãå®æè©²æ¯ææåºæ¬çé» + æºç®¡çï¼å³å¨éè¦çæ æ³ä¸å¯¦ç¾ç³»çµ±ç´ä¼ç ååéè¦ç¨å°ç + .suspend å .resume 彿¸ãä½ æè©²æª¢æ¥ä½ çé© åç¨åºæ¯å¦è½æ£ + 確å°èçä¼ç èåéï¼å¦æå¯¦å¨ç¡æ³ç¢ºèªï¼è«è³å°æ .suspend + 彿¸å®ç¾©æè¿å -ENOSYSï¼åè½æªå¯¦ç¾ï¼é¯èª¤ãä½ éæè©²å試確 + ä¿ä½ çé© åå¨ä»éº¼é½ä¸ä¹¾çæ æ³ä¸å°èé»éå°æä½ãè¦ç²å¾é© å + ç¨åºæ¸¬è©¦çæå°ï¼è«åé± + Documentation/power/drivers-testing.rstãæéé© åç¨åºé» + æºç®¡çåé¡ç¸å°å ¨é¢çæ¦è¿°ï¼è«åé± + Documentation/driver-api/pm/devices.rstã + +管çï¼ å¦æä¸åé© åç¨åºçä½è éå¨é²è¡ææçç¶è·ï¼é£éº¼é常é¤äºé£ + äºæé¡¯æ£ç¢ºä¸ä¸éè¦ä»»ä½æª¢æ¥çè£ä¸ä»¥å¤ï¼å ¶ä»ææçè£ä¸é½æ + 被è½ç¼çµ¦ä½è ãå¦æä½ å¸ææç²é© åç¨åºçè¯ç¹«äººåæ´æ°è ï¼æ + 好å¨ä»£ç¢¼æ³¨éä¸å¯«æä¸¦ä¸å¨ MAINTAINERS æä»¶ä¸å å ¥éåé© å + ç¨åºçæ¢ç®ã + +ä¸å½±é¿è¨åé© åè½å¦è¢«æ¥åçæ¢ä»¶ +------------------------------ + +便åï¼ ç±ç¡¬é«ä¾æåä¾ç¶è·é© åç¨åºé常æ¯ä¸ä»¶å¥½äºãä¸éï¼å¦ææºç¢¼ + 樹éå·²ç¶æå ¶ä»äººæä¾äºå¯ç©©å®å·¥ä½çé© åç¨åºï¼é£éº¼è«ä¸è¦æ + æãææ¯ä¾æåãææç²å §æ ¸æ¹ç¨ä½ çé© åç¨åºççç±ãçæ³çæ + æ³æ¯ï¼ä¾æåèç¾æé© åç¨åºçä½è åä½ï¼æ§å»ºä¸åçµ±ä¸å®ç¾ç + é© åç¨åºã + +ä½è ï¼ é© åç¨åºæ¯ç±å¤§ç Linux å ¬å¸ç ç¼éæ¯ç±ä½ å人編寫ï¼ä¸¦ä¸å½± + é¿å ¶æ¯å¦è½è¢«å §æ ¸æ¥åãæ²æäººå°å §æ ¸æºç¢¼æ¨¹äº«æç¹æ¬ãåªè¦ä½ + å åäºè§£å §æ ¸ç¤¾åï¼ä½ å°±æç¼ç¾éä¸é»ã + + +è³æºå表 +-------- + +Linux å §æ ¸ä¸»æºç¢¼æ¨¹ï¼ + ftp.??.kernel.org:/pub/linux/kernel/... + ?? == ä½ çå家代碼ï¼ä¾å¦ "cn"ã"us"ã"uk"ã"fr" çç + +Linux å §æ ¸éµä»¶åè¡¨ï¼ + linux-kernel@vger.kernel.org + [å¯ééåmajordomo@vger.kernel.orgç¼éµä»¶ä¾è¨é±] + +Linux è¨åé© åç¨åºï¼ç¬¬ä¸çï¼æ¢è¨ 2.6.10 çå §æ ¸ï¼ï¼ + https://lwn.net/Kernel/LDD3/ ï¼å è²»çï¼ + +LWN.net: + æ¯å¨å §æ ¸éç¼æ´»åæè¦ - https://lwn.net/ + + 2.6 çä¸ API çè®æ´ï¼ + + https://lwn.net/Articles/2.6-kernel-api/ + + å°èçå §æ ¸çé© åç¨åºç§»æ¤å° 2.6 çï¼ + + https://lwn.net/Articles/driver-porting/ + +å §æ ¸æ°æ(KernelNewbies): + ç²æ°çå §æ ¸éç¼è æä¾ææªåå¹«å© + https://kernelnewbies.org/ + +Linux USBé ç®ï¼ + http://www.linux-usb.org/ + +å¯«å §æ ¸é© åçãä¸è¦ãï¼Arjan van de Venèï¼: + http://www.fenrus.org/how-to-not-write-a-device-driver-paper.pdf + +å §æ ¸æ¸ æ½å·¥ (Kernel Janitor): + https://kernelnewbies.org/KernelJanitors + diff --git a/Documentation/translations/zh_TW/process/submitting-patches.rst b/Documentation/translations/zh_TW/process/submitting-patches.rst new file mode 100644 index 0000000000000..cdf0b52e4a987 --- /dev/null +++ b/Documentation/translations/zh_TW/process/submitting-patches.rst @@ -0,0 +1,686 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _tw_submittingpatches: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/submitting-patches.rst <submittingpatches>` + +è¯è :: + + 䏿çç¶è·è ï¼ é¾å® TripleX Chung <xxx.phy@gmail.com> + 䏿çç¿»è¯è ï¼ é¾å® TripleX Chung <xxx.phy@gmail.com> + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + ä¸æçæ ¡è¯è ï¼ æé½ Li Yang <leoyang.li@nxp.com> + çè° Wang Cong <xiyou.wangcong@gmail.com> + è¡çæ Hu Haowen <src.res@email.cn> + + +å¦ä½è®ä½ çæ¹åé²å ¥å §æ ¸ +====================== + +å°æ¼æ³è¦å°æ¹åæäº¤å° Linux å §æ ¸çå人æè å ¬å¸ä¾èªªï¼å¦æä¸çæãè¦ç©ãï¼ +æäº¤çæµç¨æè®äººçæ¼ãæ¬ææªæ¶éäºä¸ç³»å建è°ï¼éäºå»ºè°å¯ä»¥å¤§å¤§çæé«ä½ +çæ¹å被æ¥åçæ©æ. + +以䏿æªå«æå¤§éç°¡æ½ç建è°ï¼ å ·é«è«è¦ï¼ +:ref:`Documentation/process <development_process_main>` +忍£ï¼:ref:`Documentation/translations/zh_TW/process/submit-checklist.rst <tw_submitchecklist>` +給åºå¨æäº¤ä»£ç¢¼åéè¦æª¢æ¥çé ç®çå表ãå¦æä½ å¨æäº¤ä¸åé© åç¨åºï¼é£éº¼ +åæé±è®ä¸ä¸: +:ref:`Documentation/process/submitting-drivers.rst <submittingdrivers>` + +å ¶ä¸è¨±å¤æ¥é©æè¿°äºGitçæ¬æ§å¶ç³»çµ±çé»èªè¡ç²ï¼å¦ææ¨ä½¿ç¨Git便ºåè£ä¸ï¼ +æ¨å°ç¼ç¾å®ç²æ¨å®æç大é¨åæ©æ¢°å·¥ä½ï¼å管æ¨ä»ç¶éè¦æºååè¨éä¸çµåçç +è£ä¸ãä¸è¬ä¾èªªï¼ä½¿ç¨gitå°ä½¿æ¨ä½ç²å §æ ¸éç¼äººå¡ççæ´»æ´è¼é¬ã + + +0) ç²åç¶åæºç¢¼æ¨¹ +----------------- + +å¦ææ¨æ²æä¸åå¯ä»¥ä½¿ç¨ç¶åå §æ ¸åå§ç¢¼çåå²åº«ï¼è«ä½¿ç¨gitç²åä¸åãæ¨å°è¦ +å¾ä¸»ç·åå²åº«éå§ï¼å®å¯ä»¥éé以䏿¹å¼ç²å:: + + git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git + +使¯ï¼è«æ³¨æï¼æ¨å¯è½ä¸å¸æç´æ¥éå°ä¸»ç·æ¨¹é²è¡éç¼ã大夿¸å系統ç¶è·äººå¡é +è¡èªå·±ç樹ï¼ä¸¦å¸æçå°éå°éäºæ¨¹æºåçè£ä¸ãè«åè¦MAINTAINERSæä»¶ä¸åç³» +çµ±ç **T:** é ä»¥æ¥æ¾è©²æ¨¹ï¼æè ç°¡å®å°è©¢åç¶è·è 該樹æ¯å¦æªå¨å ¶ä¸ååºã + +ä»ç¶å¯ä»¥éétarballsä¸è¼å §æ ¸çæ¬ï¼å¦ä¸ä¸ç¯æè¿°ï¼ï¼ä½éæ¯é²è¡å §æ ¸éç¼ç +ä¸ç¨®å°é£çæ¹å¼ã + +1) "diff -up" +------------- + +ä½¿ç¨ "diff -up" æè "diff -uprN" ä¾åµå»ºè£ä¸ã + +ææå §æ ¸çæ¹åï¼é½æ¯ä»¥è£ä¸çå½¢å¼åç¾çï¼è£ä¸ç± diff(1) çæãåµå»ºè£ä¸ç +æåï¼è¦ç¢ºèªå®æ¯ä»¥ "unified diff" æ ¼å¼åµå»ºçï¼éç¨®æ ¼å¼ç± diff(1) ç '-u' +忏çæãèä¸ï¼è«ä½¿ç¨ '-p' 忏ï¼é£æ¨£æé¡¯ç¤ºæ¯åæ¹åæå¨çC彿¸ï¼ä½¿å¾ +ç¢ççè£ä¸å®¹æè®å¾å¤ãè£ä¸æè©²åºæ¼å §æ ¸åå§ç¢¼æ¨¹çæ ¹ç®éï¼è䏿¯è£¡éçä»» +ä½åç®éã + +ç²ä¸åå®ç¨çæä»¶åµå»ºè£ä¸ï¼ä¸è¬ä¾èªªé樣åå°±å¤ äº:: + + SRCTREE=linux + MYFILE=drivers/net/mydriver.c + + cd $SRCTREE + cp $MYFILE $MYFILE.orig + vi $MYFILE # make your change + cd .. + diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch + +ç²å¤åæä»¶åµå»ºè£ä¸ï¼ä½ å¯ä»¥è§£éä¸åæ²æä¿®æ¹éçå §æ ¸åå§ç¢¼æ¨¹ï¼ç¶å¾åä½ èª +å·±ç代碼樹ä¹éå diff ãä¾å¦:: + + MYSRC=/devel/linux + + tar xvfz linux-3.19.tar.gz + mv linux-3.19 linux-3.19-vanilla + diff -uprN -X linux-3.19-vanilla/Documentation/dontdiff \ + linux-3.19-vanilla $MYSRC > /tmp/patch + +"dontdiff" æ¯å §æ ¸å¨ç·¨è¯çæåç¢ççæä»¶çå表ï¼å表ä¸çæä»¶å¨ diff(1) +ç¢ççè£ä¸éæè¢«è·³éã + +確å®ä½ çè£ä¸éæ²æå å«ä»»ä½ä¸å±¬æ¼é次è£ä¸æäº¤çé¡å¤æä»¶ãè¨å¾å¨ç¨diff(1) +çæè£ä¸ä¹å¾ï¼å¯©é±ä¸æ¬¡è£ä¸ï¼ä»¥ç¢ºä¿æºç¢ºã + +å¦æä½ çæ¹å徿£äºï¼ä½ æè©²ç ç©¶ä¸ä¸å¦ä½å°è£ä¸å岿ç¨ç«çé¨åï¼å°æ¹åå +岿ä¸ç³»ååä¹éè¼¯çæ¥é©ã鿍£æ´å®¹æè®å ¶ä»å §æ ¸éç¼è å¯©æ ¸ï¼å¦æä½ æ³ä½ ç +è£ä¸è¢«æ¥åï¼éæ¯å¾éè¦çãè«åé±ï¼ +:ref:`tw_split_changes` + +å¦æä½ ç¨ ``git`` , ``git rebase -i`` å¯ä»¥å¹«å©ä½ éä¸é»ãå¦æä½ ä¸ç¨ ``git``, +``quilt`` <https://savannah.nongnu.org/projects/quilt> å¦å¤ä¸åæµè¡ç鏿ã + +.. _tw_describe_changes: + +2) æè¿°ä½ çæ¹å +--------------- + +æè¿°ä½ çåé¡ãç¡è«æ¨çè£ä¸æ¯ä¸è¡é¯èª¤ä¿®å¾©éæ¯5000è¡æ°åè½ï¼é½å¿ é æä¸åæ½å¨ +çå顿¿åµæ¨å®æéé å·¥ä½ãè®å¯©ç¨¿äººç¸ä¿¡æä¸ååé¡å¼å¾è§£æ±ºï¼è®ä»åè®å®ç¬¬ä¸æ®µ +æ¯ææç¾©çã + +æè¿°ç¨æ¶å¯è¦çå½±é¿ãç´æ¥å´©æ½°åé宿¯ç¸ç¶æèªªæåçï¼ä½ä¸¦ä¸æ¯ææçé¯èª¤é½é£éº¼ +æç®å¼µèãå³ä½¿å¨ä»£ç¢¼å¯©æ¥æéç¼ç¾äºéååé¡ï¼ä¹è¦æè¿°ä¸ä¸æ¨èªç²å®å¯è½å°ç¨æ¶ç¢ +ççå½±é¿ãè«è¨ä½ï¼å¤§å¤æ¸Linuxå®è£éè¡çå §æ ¸ä¾èªäºç´ç©©å®æ¨¹æç¹å®æ¼ä¾æå/ç¢å +çæ¨¹ï¼åªå¾ä¸æ¸¸ç²¾é¸ç¹å®çè£ä¸ï¼å æ¤è«å å«ä»»ä½å¯ä»¥å¹«å©æ¨å°æ´æ¹å®ä½å°ä¸æ¸¸çå §å®¹ï¼ +觸ç¼çå ´æ¯ãDMESGçæéãå´©æ½°æè¿°ãæ§è½åæ¸ãå»¶é²å°å³¯ãéå®çã + +éååªååæ¬è¡¡ã妿æ¨è²ç¨±å¨æ§è½ãå §åæ¶èãå æ£§å ç¨ç©ºéæäºé²ä½å¤§å°æ¹é¢ææ +æ¹é²ï¼è«å æ¬æ¯æå®åçæ¸åãä½ä¹è¦æè¿°ä¸æé¡¯çææ¬ãåªåé叏䏿¯å è²»çï¼èæ¯ +å¨CPUãå §ååå¯è®æ§ä¹éé²è¡æ¬è¡¡ï¼æè ï¼æ¢ç´¢æ§çå·¥ä½ï¼å¨ä¸åçå·¥ä½è² è¼ä¹éé² +è¡æ¬è¡¡ãè«æè¿°åªåçé æç¼ºé»ï¼ä»¥ä¾¿å¯©é±è å¯ä»¥æ¬è¡¡ææ¬åæ¶çã + +䏿¦åé¡å»ºç«èµ·ä¾ï¼å°±è¦è©³ç´°å°æè¿°ä¸ä¸æ¨å¯¦éå¨åä»éº¼ãå°æ¼å¯©é±è ä¾èªªï¼ç¨ç°¡å®ç +è±èªæè¿°ä»£ç¢¼çè®åæ¯å¾éè¦çï¼ä»¥é©è代碼çè¡ç²æ¯å¦ç¬¦åæ¨çæé¡ã + +妿æ¨å°è£ä¸æè¿°å¯«å¨ä¸å表å®ä¸ï¼éå表å®å¯ä»¥å¾å®¹æå°ä½ç²ãæäº¤æ¥èªãæ¾å ¥Linux +çåå§ç¢¼ç®¡ç系統gitä¸ï¼é£éº¼ç¶è·äººå¡å°é常æè¬æ¨ãè¦ :ref:`tw_explicit_in_reply_to`. + +æ¯åè£ä¸åªè§£æ±ºä¸ååé¡ãå¦æä½ çæè¿°éå§è®é·ï¼é就表æä½ å¯è½éè¦æåä½ çè£ä¸ã +è«è¦ :ref:`tw_split_changes` + +æäº¤æéæ°æäº¤ä¿®è£ç¨åºæä¿®è£ç¨åºç³»åæï¼è«å æ¬å®æ´çä¿®è£ç¨åºèªªæåçç±ãä¸è¦ +åªèªªéæ¯è£ä¸ï¼ç³»åï¼ç第幾çãä¸è¦ææå系統ç¶è·äººå¡å¼ç¨æ´æ©çè£ä¸çæ¬æå¼ç¨ +URL便¥æ¾è£ä¸æè¿°ä¸¦å°å ¶æ¾å ¥è£ä¸ä¸ãä¹å°±æ¯èªªï¼è£ä¸ï¼ç³»åï¼åå ¶æè¿°æè©²æ¯ç¨ç«çã +éå°ç¶è·äººå¡å審æ¥äººå¡é½æå¥½èãä¸äºè©å¯©è å¯è½çè³æ²ææ¶å°è£ä¸çæ©æçæ¬ã + +æè¿°ä½ å¨å½ä»¤èªæ°£ä¸çè®åï¼ä¾å¦ãmake xyzzy do frotzãè䏿¯ã[éåè£ä¸]make +xyzzy do frotzãæã[æ]changed xyzzy to do frotzãï¼å°±å¥½åä½ å¨å½ä»¤ä»£ç¢¼åº«æ¹è® +å®çè¡ç²ä¸æ¨£ã + +å¦æä¿®è£ç¨åºä¿®å¾©äºä¸åè¨éçbugæ¢ç®ï¼è«æç·¨èåURLå¼ç¨è©²bugæ¢ç®ã妿è£ä¸ä¾ +èªéµä»¶å表è¨è«ï¼è«çµ¦åºéµä»¶åè¡¨åæªçURLï¼ä½¿ç¨å¸¶æ ``Message-ID`` ç +https://lkml.kernel.org/ éå®åï¼ä»¥ç¢ºä¿é£çµä¸æéæã + +使¯ï¼å¨æ²æå¤é¨è³æºçæ æ³ä¸ï¼åéè®ä½ çè§£éå¯çè§£ãé¤äºæä¾éµä»¶åè¡¨åæªæ +bugçURLä¹å¤ï¼éè¦ç¸½çµéè¦æäº¤è£ä¸çç¸éè¨è«è¦é»ã + +å¦ææ¨æ³è¦å¼ç¨ä¸åç¹å®çæäº¤ï¼ä¸è¦åªå¼ç¨æäº¤ç SHA-1 IDãéè«å æ¬æäº¤çä¸è¡ +æè¦ï¼ä»¥ä¾¿æ¼å¯©é±è äºè§£å®æ¯éæ¼ä»éº¼çãä¾å¦:: + + Commit e21d2170f36602ae2708 ("video: remove unnecessary + platform_set_drvdata()") removed the unnecessary + platform_set_drvdata(), but left the variable "dev" unused, + delete it. + +æ¨éæè©²ç¢ºä¿è³å°ä½¿ç¨å12ä½ SHA-1 ID. å §æ ¸åå²åº«å å«*許å¤*å°è±¡ï¼ä½¿èè¼ççID +ç¼çè¡çªçå¯è½æ§å¾å¤§ãè¨ä½ï¼å³ä½¿ç¾å¨ä¸æèæ¨çå åå符IDç¼çè¡çªï¼éç¨®æ æ³ +å¯è½äºå¹´å¾æ¹è®ã + +å¦æä¿®è£ç¨åºä¿®å¾©äºç¹å®æäº¤ä¸çé¯èª¤ï¼ä¾å¦ï¼ä½¿ç¨ ``git bisct`` ï¼è«ä½¿ç¨å¸¶æå +12åå符SHA-1 ID ç"Fixes:"æ¨è¨åå®è¡æè¦ãç²äºç°¡åä¸è¦å°æ¨è¨æåç²å¤åï¼ +è¡ãæ¨è¨ä¸ååæè ³æ¬ã75åæè¡ãè¦åçéå¶ãä¾å¦:: + + Fixes: 54a4f0239f2e ("KVM: MMU: make kvm_mmu_zap_page() return the number of pages it actually freed") + +ä¸å ``git config`` è¨ç½®å¯ä»¥æ·»å è® ``git log``, ``git show`` æ¼äº®çé¡¯ç¤ºæ ¼å¼:: + + [core] + abbrev = 12 + [pretty] + fixes = Fixes: %h (\"%s\") + +.. _tw_split_changes: + +3) æåä½ çæ¹å +--------------- + +å°æ¯åéè¼¯æ´æ¹åéæä¸åå®ç¨çè£ä¸ã + +ä¾å¦ï¼å¦æä½ çæ¹åéåææbugä¿®æ£åæ§è½åªåï¼é£éº¼æéäºæ¹åæåå°å ©åæ +è æ´å¤çè£ä¸æä»¶ä¸ãå¦æä½ çæ¹åå å«å°APIçä¿®æ¹ï¼ä¸¦ä¸ä¿®æ¹äºé© åç¨åºä¾é© +æéäºæ°çAPIï¼é£éº¼æéäºä¿®æ¹åæå ©åè£ä¸ã + +å¦ä¸æ¹é¢ï¼å¦æä½ å°ä¸åå®ç¨çæ¹ååæå¤åè£ä¸æä»¶ï¼é£éº¼å°å®ååä½µæä¸å +å®ç¨çè£ä¸æä»¶ã鿍£ä¸åé輯ä¸å®ç¨çæ¹ååªè¢«å å«å¨ä¸åè£ä¸æä»¶éã + +妿æä¸åè£ä¸ä¾è³´å¦å¤ä¸åè£ä¸ä¾å®æå®çæ¹åï¼é£æ²åé¡ãç°¡å®çå¨ä½ çè£ +ä¸æè¿°éæåºãéåè£ä¸ä¾è³´æè£ä¸ã就好äºã + +å¨å°æ¨çæ´æ¹ååç²ä¸ç³»åè£ä¸æï¼è¦ç¹å¥æ³¨æç¢ºä¿å §æ ¸å¨ç³»åä¸çæ¯åè£ä¸ä¹å¾ +é½è½æ£å¸¸æ§å»ºåéè¡ãä½¿ç¨ ``git bisect`` ä¾è¿½è¹¤åé¡çéç¼è å¯è½æå¨ä»»ä½æ +ååå²ä½ çè£ä¸ç³»åï¼å¦æä½ å¨ä¸éå¼å ¥é¯èª¤ï¼ä»å䏿æè¬ä½ ã + +å¦æä½ ä¸è½å°è£ä¸æ¿ç¸®ææ´å°çæä»¶ï¼é£éº¼æ¯æ¬¡å¤§ç´ç¼éåº15åï¼ç¶å¾çå¾ å¯©æ¥ +åéæã + +4) 檢æ¥ä½ çæ´æ¹é¢¨æ ¼ +------------------- + +æª¢æ¥æ¨çè£ä¸æ¯å¦åå¨åºæ¬æ¨£å¼è¡çªï¼è©³ç´°ä¿¡æ¯å¯å¨ +:ref:`Documentation/translations/zh_TW/process/coding-style.rst <tw_codingstyle>` +䏿¾å°ã妿ä¸é樣åï¼åªææµªè²»å¯©ç¨¿äººçæéï¼ä¸¦ä¸æå°è´ä½ çè£ä¸è¢«æçµï¼çè³ +å¯è½æ²æè¢«é±è®ã + +ä¸åéè¦çä¾å¤æ¯å¨å°ä»£ç¢¼å¾ä¸åæä»¶ç§»åå°å¦ä¸åæä»¶æââå¨éç¨®æ æ³ä¸ï¼æ¨ä¸æ +該å¨ç§»å代碼çåä¸åè£ä¸ä¸ä¿®æ¹ç§»åç代碼ã鿏 æ¥å°æè¿°äºç§»åä»£ç¢¼åæ¨çæ´æ¹ +çè¡ç²ãé大大æå©æ¼å¯©æ¥å¯¦éå·®ç°ï¼ä¸¦å è¨±å·¥å ·æ´å¥½å°è·è¹¤ä»£ç¢¼æ¬èº«çæ·å²ã + +å¨æäº¤ä¹åï¼ä½¿ç¨è£ä¸æ¨£å¼æª¢æ¥ç¨åºæª¢æ¥è£ä¸ï¼scripts/check patch.plï¼ãä¸éï¼ +è«æ³¨æï¼æ¨£å¼æª¢æ¥ç¨åºæè©²è¢«è¦ç²ä¸åæåï¼è䏿¯ä½ç²äººé¡å¤æ·çæ¿ä»£åãå¦ææ¨ +ç代碼çèµ·ä¾æ´å¥½ï¼ä½æéè¦è¡ç²ï¼é£éº¼æå¥½ä¸è¦ä½¿ç¨å®ã + +檢æ¥è å ±åä¸åç´å¥ï¼ + + - ERRORï¼å¾å¯è½åºé¯çäºæ + - WARNINGï¼éè¦ä»ç´°å¯©æ¥çäºé + - CHECKï¼éè¦æèçäºæ + +æ¨æè©²è½å¤ 夿·æ¨çè£ä¸ä¸åå¨çææéè¦è¡ç²ã + +5) 鏿è£ä¸æ¶ä»¶äºº +----------------- + +æ¨æè©²ç¸½æ¯å¨ä»»ä½è£ä¸ä¸è¤è£½ç¸æçå系統ç¶è·äººå¡ï¼ä»¥ç²å¾ä»åç¶è·çä»£ç¢¼ï¼æ¥ç +ç¶è·äººå¡æä»¶ååå§ç¢¼ä¿®è¨æ·å²è¨éï¼ä»¥äºè§£éäºç¶è·äººå¡æ¯èª°ãè ³æ¬ +scripts/get_Maintainer.plå¨é忥é©ä¸é常æç¨ãå¦ææ¨æ¾ä¸å°æ£å¨å·¥ä½çå系統 +çç¶è·äººå¡ï¼é£éº¼Andrew Mortonï¼akpm@linux-foundation.orgï¼å°å ç¶æå¾çç¶è· +人å¡ã + +æ¨é常éæè©²é¸æè³å°ä¸åéµä»¶åè¡¨ä¾æ¥æ¶è£ä¸éçãlinux-kernel@vger.kernel.org +ä½ç²æå¾ä¸å解決辦æ³çå表ï¼ä½æ¯éåå表ä¸çé«ç©å·²ç¶å¼èµ·äºè¨±å¤éç¼äººå¡çæçµã +å¨MAINTAINERSæä»¶ä¸æ¥æ¾å系統ç¹å®çåè¡¨ï¼æ¨çè£ä¸å¯è½æå¨é£è£¡å¾å°æ´å¤çéæ³¨ã +ä¸éï¼è«ä¸è¦ç¼éåå¾éµä»¶å°ç¡éçå表ã + +許å¤èå §æ ¸ç¸éçå表è¨ç®¡å¨vger.kernel.orgä¸ï¼æ¨å¯ä»¥å¨ +http://vger.kernel.org/vger-lists.html 䏿¾å°å®åçå表ãä¸éï¼ä¹æèå §æ ¸ç¸é +çå表è¨ç®¡å¨å ¶ä»å°æ¹ã + +ä¸è¦ä¸æ¬¡ç¼éè¶ é15åè£ä¸å°vgeréµä»¶å表ï¼ï¼ï¼ï¼ + +Linus Torvalds æ¯æ±ºå®æ¹åè½å¦é²å ¥ Linux å §æ ¸çæçµè£æ±ºè ãä»ç e-mail +å°åæ¯ <torvalds@linux-foundation.org> ã仿¶å°ç e-mail å¾å¤ï¼æä»¥ä¸è¬ +çèªªï¼æå¥½å¥çµ¦ä»ç¼ e-mailã + +å¦ææ¨æä¿®å¾©å¯å©ç¨å®å ¨æ¼æ´çè£ä¸ï¼è«å°è©²è£ä¸ç¼éå° security@kernel.orgãå°æ¼ +å´éçbugï¼å¯ä»¥èæ ®çææ«å以å 許åé·ååç¨æ¶ç¼å¸è£ä¸ï¼å¨éç¨®æ æ³ä¸ï¼é¡¯ç¶ä¸æ +å°è£ä¸ç¼éå°ä»»ä½å ¬å ±å表ã + +修復已ç¼å¸å §æ ¸ä¸å´éé¯èª¤çè£ä¸ç¨åºæè©²æåç©©å®çç¶è·äººå¡ï¼æ¹æ³æ¯æ¾é樣çä¸è¡:: + + Cc: stable@vger.kernel.org + +é²å ¥è£ä¸çç°½ååï¼æ³¨æï¼ä¸æ¯é»åéµä»¶æ¶ä»¶äººï¼ãé¤äºéåæä»¶ä¹å¤ï¼æ¨éæè©²é±è® +:ref:`Documentation/process/stable-kernel-rules.rst <stable_kernel_rules>` + +使¯ï¼è«æ³¨æï¼ä¸äºå系統ç¶è·äººå¡å¸æå¾åºä»åèªå·±ççµè«ï¼å³åªäºè£ä¸æè©²è¢«æ¾å° +ç©©å®ç樹ä¸ãå°¤å ¶æ¯ç¶²çµ¡ç¶è·äººå¡ï¼ä¸å¸æçå°å®åéç¼äººå¡å¨è£ä¸ä¸æ·»å åä¸é¢é樣 +çè¡ã + +å¦ææ´æ¹å½±é¿å°ç¨æ¶åå §æ ¸æ¥å£ï¼è«åæåé ç¶è·äººå¡ï¼å¦ç¶è·äººå¡æä»¶ä¸æåï¼ç¼é +æåé è£ä¸ï¼æè³å°ç¼éæ´æ¹éç¥ï¼ä»¥ä¾¿ä¸äºä¿¡æ¯é²å ¥æåé ãéæå°ç¨æ¶ç©ºéAPI +æ´æ¹è¤è£½å° linux-api@vger.kernel.orgã + +å°æ¼å°çè£ä¸ï¼ä½ ä¹è¨±æCCå°æéç£ç¢è£ä¸çéµä»¶å表(Trivial Patch Monkey) +trivial@kernel.orgï¼é£è£¡å°éæ¶éç£ç¢çè£ä¸ãä¸é¢é樣çè£ä¸æè¢«çä½ãç£ç¢çã +è£ä¸ï¼ + + - ææªçæ¼å¯«ä¿®æ£ã + - ä¿®æ£æå½±é¿å° grep(1) çæ¼å¯«ã + - è¦åä¿¡æ¯ä¿®æ£(é »ç¹çåå°ç¡ç¨çè¦åæ¯ä¸å¥½çã) + - ç·¨è¯é¯èª¤ä¿®æ£ï¼ä»£ç¢¼é輯ç確æ¯å°çï¼åªæ¯ç·¨è¯æåé¡ãï¼ + - éè¡æä¿®æ£ï¼åªè¦ççä¿®æ£äºé¯èª¤ãï¼ + - ç§»é¤ä½¿ç¨äºè¢«å»¢æ£ç彿¸/å®ç代碼(ä¾å¦ check_regionã) + - è¯ç¹«æ¹å¼åææªä¿®æ£ã + - ç¨å¯ç§»æ¤çä»£ç¢¼æ¿æä¸å¯ç§»æ¤ç代碼ï¼å³ä½¿å¨é«ç³»çµæ§ç¸éç代碼ä¸ï¼æ¢ç¶æ + - 人æ·è²ï¼åªè¦å®æ¯ç£ç¢çï¼ + - 任使件çä½è /ç¶è·è å°è©²æä»¶çæ¹åï¼ä¾å¦ patch monkey å¨é峿¨¡å¼ä¸ï¼ + +(è¯è¨»ï¼éæ¼ãç£ç¢è£ä¸ãçä¸äºèªªæï¼å ç²åæçéä¸é¨å坫徿¯è¼ç°¡å®ï¼æä»¥ä¸å¾ä¸ +éä¾å¯«ä¸ä¸è¯è¨»ã"trivial"éåè±æå®è©çæ¬ææ¯ãç£ç¢çï¼ä¸éè¦çãã使¯å¨é裡 +æç¨å¾®æä¸äºè®åï¼ä¾å¦å°ä¸äºæé¡¯çNULLæéçä¿®æ£ï¼å±¬æ¼éè¡æä¿®æ£ï¼æè¢«æ¸é¡ +å°ç£ç¢è£ä¸éãéç¶NULLæéçä¿®æ£å¾éè¦ï¼ä½æ¯é樣çä¿®æ£å¾å¾å¾å°èä¸å¾å®¹æå¾å° +檢é©ï¼æä»¥ä¹è¢«æ¸å ¥ç£ç¢è£ä¸ãç£ç¢è£ä¸æ´ç²¾ç¢ºçæ¸é¡æè©²æ¯ +ãsimple, localized & easy to verifyãï¼ä¹å°±æ¯èªªç°¡å®çï¼å±é¨çåææ¼æª¢é©çã +trivial@kernel.orgéµä»¶å表çç®çæ¯éå°é樣çè£ä¸ï¼ç²æäº¤è æä¾ä¸åä¸å¿ï¼ä¾ +éä½æäº¤çéæª»ã) + +6) æ²æ MIME ç·¨ç¢¼ï¼æ²æé£çµï¼æ²æå£ç¸®ï¼æ²æéä»¶ï¼åªæç´ææ¬ +----------------------------------------------------------- + +Linus åå ¶ä»çå §æ ¸éç¼è éè¦é±è®åè©è«ä½ æäº¤çæ¹åãå°æ¼å §æ ¸éç¼è ä¾èªª +ï¼å¯ä»¥ãå¼ç¨ãä½ çæ¹åå¾éè¦ï¼ä½¿ç¨ä¸è¬ç e-mail å·¥å ·ï¼ä»åå°±å¯ä»¥å¨ä½ ç +代碼çä»»ä½ä½ç½®æ·»å è©è«ã + +å ç²éååå ï¼ææçæäº¤çè£ä¸é½æ¯ e-mail ä¸ãå §åµãçã + +.. warning:: + å¦æä½ ä½¿ç¨åªå-ç²è²¼ä½ çè£ä¸ï¼å°å¿ä½ ç編輯å¨çèªåæè¡åè½ç ´å£ä½ çè£ä¸ + +ä¸è¦å°è£ä¸ä½ç² MIME 編碼çéä»¶ï¼ä¸ç®¡æ¯å¦å£ç¸®ãå¾å¤æµè¡ç e-mail è»é«ä¸ +æ¯ä»»ä½æåé½å° MIME 編碼çéä»¶ç¶ä½ç´ææ¬ç¼éçï¼éæä½¿å¾å¥äººç¡æ³å¨ä½ ç +代碼ä¸å è©è«ãå¦å¤ï¼MIME 編碼çéä»¶æè® Linus å¤è±ä¸é»æéä¾èçï¼éå°± +éä½äºä½ çæ¹å被æ¥åçå¯è½æ§ã + +ä¾å¤ï¼å¦æä½ çéµéå¡å¼å£äºè£ä¸ï¼é£éº¼æäººå¯è½æè¦æ±ä½ 使ç¨mimeéæ°ç¼éè£ä¸ + +è«åé± :ref:`Documentation/translations/zh_TW/process/email-clients.rst <tw_email_clients>` +以ç²åæéé ç½®é»åéµä»¶å®¢æ¶ç«¯ä»¥ä½¿å ¶ä¸åå½±é¿å°ç¼éä¿®è£ç¨åºçæç¤ºã + +7) e-mail çå¤§å° +---------------- + +å¤§çæ¹åå°éµä»¶å表ä¸åé©ï¼å°æäºç¶è·è ä¹ä¸åé©ãå¦æä½ çè£ä¸ï¼å¨ä¸å£ç¸® +çæ æ³ä¸ï¼è¶ éäº300kBï¼é£éº¼ä½ æå¥½å°è£ä¸æ¾å¨ä¸åè½éé internet 訪åçæ +åå¨ä¸ï¼ç¶å¾ç¨æåä½ çè£ä¸ç URL æ¿ä»£ã使¯è«æ³¨æï¼å¦ææ¨çè£ä¸è¶ éäº +300kbï¼é£éº¼å®å¹¾ä¹è¯å®éè¦è¢«ç ´å£ã + +8ï¼åè¤è©å¯©æè¦ +--------------- + +ä½ çè£ä¸å¹¾ä¹è¯å®æå¾å°è©å¯©è å°è£ä¸æ¹é²æ¹æ³çè©è«ãæ¨å¿ é å°éäºè©è«ä½åº +åæï¼è®è£ä¸è¢«å¿½ç¥çä¸å好辦æ³å°±æ¯å¿½ç¥å¯©é±è çæè¦ã䏿å°è´ä»£ç¢¼æ´æ¹ç +æè¦æåé¡å¹¾ä¹è¯å®æå¸¶ä¾æ³¨éæè®æ´æ¥èªçæ¹è®ï¼ä»¥ä¾¿ä¸ä¸åè©å¯©è æ´å¥½å°äºè§£ +æ£å¨ç¼ççäºæ ã + +ä¸å®è¦åè¨´å¯©ç¨¿äººä½ å¨åä»éº¼æ¹è®ï¼ä¸¦æè¬ä»åçæéãä»£ç¢¼å¯©æ¥æ¯ä¸åç´¯äººä¸ +èæçéç¨ï¼å¯©æ¥äººå¡æææè®å¾æ´èºãå³ä½¿å¨éç¨®æ æ³ä¸ï¼ä¹è¦ç¦®è²å°åæä¸¦ +解決ä»åæåºçåé¡ã + +9ï¼ä¸è¦æ´©æ°£æä¸èç © +------------------- + +æäº¤æ´æ¹å¾ï¼è«èå¿çå¾ ã審é±è æ¯å¿ç¢ç人ï¼å¯è½ç¡æ³ç«å³è¨ªåæ¨çä¿®è£ç¨åºã + +æ¾å¹¾ä½æï¼è£ä¸æ¾å¨æ²æè©è«çæ æ³ä¸æ¶å¤±å¨ç©ºç½ä¸ï¼ä½éç¼éç¨æ¯ç¾å¨æ´å é å©ã +æ¨æè©²å¨ä¸å¨å·¦å³çæéå §æ¶å°è©è«ï¼å¦ææ²ææ¶å°è©è«ï¼è«ç¢ºä¿æ¨å·²å°è£ä¸ç¼é +å°æ£ç¢ºçä½ç½®ãå¨éæ°æäº¤æè¯ç¹«å¯©é±è ä¹åè³å°çå¾ ä¸å¨-å¨è«¸å¦åä½µçªå£ä¹é¡ç +ç¹å¿æéå¯è½æ´é·ã + +10ï¼ä¸»é¡ä¸å å« PATCH +-------------------- + +ç±æ¼å°linusålinuxå §æ ¸çé»åéµä»¶æµéå¾é«ï¼é常æå¨ä¸»é¡è¡åé¢å ä¸[PATCH] +åç¶´. é使Linusåå ¶ä»å §æ ¸éç¼äººå¡æ´å®¹æå°è£ä¸èå ¶ä»é»åéµä»¶è¨è«ååéã + +11ï¼ç°½ç½²ä½ çä½å-éç¼è åå§èªè +------------------------------- + +ç²äºå å¼·å°èª°åäºä½äºç追蹤ï¼å°¤å ¶æ¯å°é£äºéé好幾層çç¶è·è çè£ä¸ï¼æå +建è°å¨ç¼éåºå»çè£ä¸ä¸å ä¸å ãsign-offã çéç¨ã + +"sign-off" æ¯å¨è£ä¸ç注éçæå¾çç°¡å®çä¸è¡æåï¼èªèä½ ç·¨å¯«äºå®æè å ¶ä» +äººææ¬åå°å®ä½ç²éæ¾åå§ç¢¼çè£ä¸å³éãè¦åå¾ç°¡å®ï¼å¦æä½ è½èªèå¦ä¸ä¿¡æ¯: + +éç¼è 便ºèæ¸ 1.1 +^^^^^^^^^^^^^^^^^^ + +å°æ¼æ¬é ç®çè²¢ç»ï¼æèªèå¦ä¸ä¿¡æ¯ï¼ + + ï¼aï¼éäºè²¢ç»æ¯å®å ¨æè é¨åçç±æåµå»ºï¼æææ¬å©ä»¥æä»¶ä¸æåº + çéæ¾åå§ç¢¼è¨±å¯èæäº¤å®ï¼æè + ï¼bï¼éäºè²¢ç»åºæ¼ä»¥åçå·¥ä½ï¼æææç¥ï¼éäºä»¥åçå·¥ä½åæ°ç¶çéæ¾ + åå§ç¢¼è¨±å¯èä¿è·ï¼èä¸ï¼æ ¹æè¨±å¯èï¼æææ¬æäº¤ä¿®æ¹å¾çè²¢ç»ï¼ + ç¡è«æ¯å®å ¨éæ¯é¨åç±æåµé ï¼éäºè²¢ç»é½ä½¿ç¨åä¸åéæ¾åå§ç¢¼è¨±å¯è + ï¼é¤éæè¢«å 許ç¨å ¶å®ç許å¯èï¼ï¼æ£å¦æä»¶ä¸æåºçï¼æè + ï¼cï¼éäºè²¢ç»ç±èªèï¼aï¼ï¼ï¼bï¼æè ï¼cï¼çäººç´æ¥æä¾çµ¦æï¼è + ä¸ææ²æä¿®æ¹å®ã + ï¼dï¼æç解並åæéåé ç®åè²¢ç»æ¯å ¬éçï¼è²¢ç»çè¨éï¼å æ¬æ + ä¸èµ·æäº¤çå人è¨éï¼å æ¬ sign-off ï¼è¢«æ°¸ä¹ ç¶è·ä¸¦ä¸å¯ä»¥åéåé ç® + æè éæ¾åå§ç¢¼ç許å¯è忥å°åç¼è¡ã + +é£éº¼å å ¥éæ¨£ä¸è¡:: + + Signed-off-by: Random J Developer <random@developer.example.org> + +使ç¨ä½ ççåï¼æ±æï¼ä¸è½ä½¿ç¨ååæè å¿åãï¼ + +æäººå¨æå¾å 䏿¨ç±¤ãç¾å¨éäºæ±è¥¿æè¢«å¿½ç¥ï¼ä½æ¯ä½ å¯ä»¥é樣åï¼ä¾æ¨è¨å ¬å¸ +å §é¨çéç¨ï¼æè åªæ¯æåºéæ¼ sign-off çä¸äºç¹æ®ç´°ç¯ã + +å¦ææ¨æ¯å系統æåæ¯ç¶è·äººå¡ï¼ææéè¦ç¨å¾®ä¿®æ¹æ¶å°çè£ä¸ï¼ä»¥ä¾¿åä½µå®åï¼ +å ç²æ¨¹åæäº¤è ä¸ç代碼ä¸å®å ¨ç¸åãå¦æä½ å´æ ¼éµå®è¦åï¼cï¼ï¼ä½ æè©²è¦æ±æäº¤è +éæ°ç¼å¸ï¼ä½éå®å ¨æ¯å¨æµªè²»æéåç²¾åãè¦åï¼bï¼å 許æ¨èª¿æ´ä»£ç¢¼ï¼ä½æ¯æ´æ¹ä¸å +æäº¤è ç代碼並è®ä»èªå¯æ¨çé¯èª¤æ¯é常ä¸ç¦®è²çãè¦è§£æ±ºæ¤åé¡ï¼å»ºè°å¨æå¾ä¸å +ç±ç°½åè¡åæ¨çè¡ä¹éæ·»å ä¸è¡ï¼æç¤ºæ´æ¹çæ§è³ªãéç¶é䏦䏿¯å¼·å¶æ§çï¼ä½ä¼¼ä¹ +å¨æè¿°åå 䏿¨çéµä»¶å/æå§åï¼å ¨é¨ç¨æ¹æ¬èæ¬èµ·ä¾ï¼ï¼é足以è®äººæ³¨æå°æ¨å°æ +å¾ä¸åéçæ´æ¹è² æè²¬ä»»ãä¾å¦:: + + Signed-off-by: Random J Developer <random@developer.example.org> + [lucky@maintainer.example.org: struct foo moved from foo.c to foo.h] + Signed-off-by: Lucky K Maintainer <lucky@maintainer.example.org> + +妿æ¨ç¶è·ä¸åç©©å®çåæ¯æ©æ§ï¼åæå¸æå°ä½è é²è¡è´è¬ãè·è¹¤æ´æ¹ãå併修復並 +ä¿è·æäº¤è ä¸åæè¨´ï¼é£éº¼éç¨®åæ³å°¤å ¶æç¨ãè«æ³¨æï¼å¨ä»»ä½æ æ³ä¸é½ä¸è½æ´æ¹ä½è +çIDï¼From é ï¼ï¼å ç²å®æ¯åºç¾å¨æ´æ¹æ¥èªä¸çæ¨èã + +å°ååï¼back-portersï¼çç¹å¥èªªæï¼å¨æäº¤æ¶æ¯çé é¨ï¼ä¸»é¡è¡ä¹å¾ï¼æå ¥ä¸åè£ä¸ +çèµ·æºæç¤ºä¼¼ä¹æ¯ä¸ç¨®å¸¸è¦ä¸æç¨ç實è¸ï¼ä»¥ä¾¿æ¼è·è¹¤ãä¾å¦ï¼ä¸é¢æ¯æåå¨3.xç©©å® +çæ¬ä¸çå°çå §å®¹:: + + Date: Tue Oct 7 07:26:38 2014 -0400 + + libata: Un-break ATA blacklist + + commit 1c40279960bcd7d52dbdf1d466b20d24b99176c8 upstream. + +éæï¼ é裡æ¯ä¸åèçå §æ ¸ä¸çä¸åååè£ä¸:: + + Date: Tue May 13 22:12:27 2008 +0200 + + wireless, airo: waitbusy() won't delay + + [backport of 2.6 commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a] + +12ï¼ä½æä½¿ç¨Acked-by:ï¼CC:ï¼åCo-Developed by: +---------------------------------------------- + +Singed-off-by: æ¨è¨è¡¨ç¤ºç°½åè åèäºè£ä¸çéç¼ï¼æè ä»/她å¨è£ä¸çå³éè·¯å¾ä¸ã + +妿ä¸åäººæ²æç´æ¥åèè£ä¸çæºåæèçï¼ä½å¸æè¡¨ç¤ºä¸¦è¨éä»åå°è£ä¸çæ¹åï¼ +é£éº¼ä»åå¯ä»¥è¦æ±å¨è£ä¸çè®æ´æ¥èªä¸æ·»å ä¸å Acked-by: + +Acked-byï¼é常ç±åå½±é¿ä»£ç¢¼çç¶è·è 使ç¨ï¼ç¶è©²ç¶è·è æ¢æ²æè²¢ç»ä¹æ²æè½ç¼è£ä¸æã + +Acked-by: ä¸åç°½åäººé£æ¨£æ£å¼ã鿝ä¸åè¨éï¼ç¢ºèªäººè³å°å¯©æ¥äºè£ä¸ï¼ä¸¦è¡¨ç¤ºæ¥åã +å æ¤ï¼è£ä¸åä½µææææåå°AckerçãYepï¼looks good to meãè½æç² Acked-Byï¼ï¼ä½ +è«æ³¨æï¼é常æå¥½è¦æ±ä¸åæç¢ºçAckï¼ã + +Acked-byï¼ä¸ä¸å®è¡¨ç¤ºå°æ´åè£ä¸ç確èªãä¾å¦ï¼å¦æä¸åè£ä¸å½±é¿å¤åå系統ï¼ä¸¦ä¸ +æä¸åï¼ä¾èªä¸åå系統ç¶è·è ï¼é£éº¼éé常表示åªç¢ºèªå½±é¿ç¶è·è 代碼çé¨åãé裡 +æè©²ä»ç´°å¤æ·ã妿çåï¼æåèéµä»¶åè¡¨æªæ¡ä¸çåå§è¨è«ã + +妿æäººææ©æå°è£ä¸é²è¡è©è«ï¼ä½æ²ææä¾æ¤é¡è©è«ï¼æ¨å¯ä»¥é¸æå¨è£ä¸ä¸æ·»å ``Cc:`` +鿝å¯ä¸ä¸åæ¨ç±¤ï¼å®å¯ä»¥å¨æ²æè¢«å®å½åçäººé¡¯å¼æä½çæ æ³ä¸æ·»å ï¼ä½å®æè©²è¡¨æ +éå人æ¯å¨è£ä¸ä¸æéçãè¨è«ä¸å å«äºæ½å¨å©çç¸éæ¹ã + +Co-developed-by: è²æè£ä¸æ¯ç±å¤åéç¼äººå¡å ±ååµå»ºçï¼ç¶å¹¾å人å¨ä¸åè£ä¸ä¸å·¥ +使ï¼å®ç¨æ¼å°å±¬æ§è³¦äºå ±åä½è ï¼é¤äº From: æè³¦äºçä½è ä¹å¤ï¼ãå ç² +Co-developed-by: 表示ä½è èº«ä»½ï¼æä»¥æ¯åå ±åéç¼äººï¼å¿ é ç·è·å¨ç¸éåä½ä½è ç +ç°½åä¹å¾ãæ¨æºçç°½æ ¸ç¨åºè¦æ±ï¼æ¨è¨çç°½æ ¸é åºæåå¯è½åæ è£ä¸çæéæ·å²ï¼èä¸ +管ä½è æ¯éé From ï¼éæ¯ç± Co-developed-by: å ±åéç¼çãå¼å¾æ³¨æçæ¯ï¼æå¾ä¸ +åç°½å人ï¼å¿ é å§çµæ¯æäº¤è£ä¸çéç¼äººå¡ã + +注æï¼ç¶ä½è 乿¯é»åéµä»¶æ¨é¡ãç¼ä»¶äººï¼ãè¡ä¸ååºç人æï¼ãFrom: ã æ¨è¨æ¯å¯é¸çã + +ä½è æäº¤çè£ä¸ç¨åºç¤ºä¾:: + + <changelog> + + Co-developed-by: First Co-Author <first@coauthor.example.org> + Signed-off-by: First Co-Author <first@coauthor.example.org> + Co-developed-by: Second Co-Author <second@coauthor.example.org> + Signed-off-by: Second Co-Author <second@coauthor.example.org> + Signed-off-by: From Author <from@author.example.org> + +åä½éç¼è æäº¤çè£ä¸ç¤ºä¾:: + + From: From Author <from@author.example.org> + + <changelog> + + Co-developed-by: Random Co-Author <random@coauthor.example.org> + Signed-off-by: Random Co-Author <random@coauthor.example.org> + Signed-off-by: From Author <from@author.example.org> + Co-developed-by: Submitting Co-Author <sub@coauthor.example.org> + Signed-off-by: Submitting Co-Author <sub@coauthor.example.org> + + +13ï¼ä½¿ç¨å ±å人ï¼ã測試人ï¼ãå¯©æ ¸äººï¼ã建è°äººï¼ãä¿®å¾©äººï¼ +-------------------------------------------------------- + +Reported-by: 給é£äºç¼ç¾é¯èª¤ä¸¦å ±åé¯èª¤ç人è´è¬ï¼å®å¸ææ¿åµä»åå¨å°ä¾åæ¬¡å¹«å© +æåãè«æ³¨æï¼å¦æbugæ¯ä»¥ç§ææ¹å¼å ±åçï¼é£éº¼å¨ä½¿ç¨Reported-byæ¨è¨ä¹åï¼è« +å è«æ±æ¬éã + +Tested-by: æ¨è¨è¡¨ç¤ºè£ä¸å·²ç±æå®ç人ï¼å¨æäºç°å¢ä¸ï¼æå測試ãéåæ¨ç±¤éç¥ +ç¶è·äººå¡å·²ç¶å·è¡äºä¸äºæ¸¬è©¦ï¼ç²å°ä¾çè£ä¸æä¾äºä¸ç¨®å®ä½æ¸¬è©¦äººå¡çæ¹æ³ï¼ä¸¦ç¢º +ä¿æ¸¬è©¦äººå¡çä¿¡è½ã + +Reviewed-byï¼ç¸åï¼æ ¹æå¯©æ¥äººçè²æï¼è¡¨æè©²è£ä¸å·²è¢«å¯©æ¥ä¸¦è¢«èªç²æ¯å¯æ¥åçï¼ + + +審æ¥äººçç£ç£è²æ +^^^^^^^^^^^^^^^^ + +ééæä¾æç Reviewed-byï¼æè²æï¼ + + (a) æå·²ç¶å°éåè£ä¸é²è¡äºä¸æ¬¡æè¡å¯©æ¥ï¼ä»¥è©ä¼°å®æ¯å¦é©å被å å«å° + 主ç·å §æ ¸ä¸ã + + (b) èè£ä¸ç¸éçä»»ä½åé¡ãé¡§æ ®æåé¡é½å·²åé¥çµ¦æäº¤è ãæå°æäº¤è å° + æçè©è«çåææå°æ»¿æã + + (c) éç¶éä¸æäº¤å¯è½ææ¹é²ä¸äºæ±è¥¿ï¼ä½æç¸ä¿¡ï¼æ¤æï¼ï¼1ï¼å°å §æ ¸ + é²è¡äºæå¹å¼çä¿®æ¹ï¼ï¼2ï¼æ²æå å«çè«ä¸æ¶åçå·²ç¥åé¡ã + + (d) éç¶æå·²ç¶å¯©æ¥äºè£ä¸ä¸¦èªç²å®æ¯å¥å ¨çï¼ä½æä¸æï¼é¤é妿æç¢º + 說æï¼ä½åºä»»ä½ä¿èæä¿èå®å°å¨ä»»ä½çµ¦å®æ æ³ä¸å¯¦ç¾å ¶è¦å®çç®ç + ææ£å¸¸éè¡ã + +Reviewed-by æ¯ä¸ç¨®è§é»è²æï¼å³è£ä¸æ¯å°å §æ ¸çé©ç¶ä¿®æ¹ï¼æ²æä»»ä½éºççå´éæè¡ +åé¡ã任使èè¶£ç審é±è ï¼å®æå·¥ä½ç人ï¼é½å¯ä»¥ç²ä¸åè£ä¸æä¾ä¸å Review-by +æ¨ç±¤ãæ¤æ¨ç±¤ç¨æ¼å審é±è æä¾è´è¬ï¼ä¸¦éç¥ç¶è·è å·²å¨ä¿®è£ç¨åºä¸å®æç審é±ç¨åº¦ã +Reviewed-by: ç¶ç±å·²ç¥äºè§£ä¸»é¡åå並å·è¡å¾¹åºæª¢æ¥ç審é±è æä¾æï¼é常æå¢å +è£ä¸é²å ¥å §æ ¸çå¯è½æ§ã + +Suggested-by: 表示è£ä¸çæ³æ³æ¯ç±æå®ç人æåºçï¼ä¸¦ç¢ºä¿å°æ¤æ³æ³æ¸åæ¼æå®ç +人ãè«æ³¨æï¼æªç¶è¨±å¯ï¼ä¸å¾æ·»å æ¤æ¨ç±¤ï¼ç¹å¥æ¯å¦æè©²æ³æ³æªå¨å ¬å ±è«å£ä¸ç¼å¸ã +éå°±æ¯èªªï¼å¦ææåå¤å¿«å°è´è¬æåç嵿è ï¼ä»å徿叿卿ªä¾å¾å°é¼èï¼å次 +幫婿åã + +Fixes: æç¤ºè£ä¸å¨ä»¥åçæäº¤ä¸ä¿®å¾©äºä¸ååé¡ãå®å¯ä»¥å¾å®¹æå°ç¢ºå®é¯èª¤ç便ºï¼ +éæå©æ¼æª¢æ¥é¯èª¤ä¿®å¾©ãé忍è¨é幫å©ç©©å®å §æ ¸åéç¢ºå®æè©²æ¥æ¶ä¿®å¾©çç©©å®å §æ ¸ +çæ¬ã鿝æç¤ºè£ä¸ä¿®å¾©çé¯èª¤çé¦é¸æ¹æ³ãè«åé± :ref:`tw_describe_changes` +æè¿°æ¨çæ´æ¹ä»¥äºè§£æ´å¤è©³ç´°ä¿¡æ¯ã + +.. _tw_the_canonical_patch_format: + +12ï¼æ¨æºè£ä¸æ ¼å¼ +---------------- + +æ¬ç¯æè¿°å¦ä½æ ¼å¼åè£ä¸æ¬èº«ãè«æ³¨æï¼å¦ææ¨çè£ä¸åå²å¨ ``Git`` åå²åº«ä¸ï¼å +å¯ä»¥ä½¿ç¨ ``git format-patch`` é²è¡æ£ç¢ºçè£ä¸æ ¼å¼è¨ç½®ã使¯ï¼éäºå·¥å ·ç¡æ³åµå»º +å¿ è¦çææ¬ï¼å æ¤è«åå¿ é±è®ä¸é¢ç說æã + +æ¨æºçè£ä¸ï¼æ¨é¡è¡æ¯:: + + Subject: [PATCH 001/123] å系統:ä¸å¥è©±æ¦è¿° + +æ¨æºè£ä¸çä¿¡é«åå¨å¦ä¸é¨åï¼ + + - ä¸å "from" è¡æåºè£ä¸ä½è ãå¾è·ç©ºè¡ï¼å ç¶ç¼éä¿®è£ç¨åºçäººä¸æ¯ä½è ææéè¦ï¼ã + + - è§£éçæ£æï¼è¡ä»¥75åå è£ï¼éå°è¢«è¤è£½å°æ°¸ä¹ è®æ´æ¥èªä¾æè¿°éåè£ä¸ã + + - ä¸åç©ºè¡ + + - ä¸é¢æè¿°çãSigned-off-byã è¡ï¼ä¹å°åºç¾å¨æ´æ¹æ¥èªä¸ã + + - åªå å« ``---`` çæ¨è¨ç·ã + + - ä»»ä½å ¶ä»ä¸é©åæ¾å¨è®æ´æ¥èªç注éã + + - 實éè£ä¸ï¼ ``diff`` 輸åºï¼ã + +æ¨é¡è¡çæ ¼å¼ï¼ä½¿å¾å°æ¨é¡è¡æåæ¯åºæåºé常ç容æ - å¾å¤ e-mail 客æ¶ç«¯é½ +å¯ä»¥æ¯æ - å ç²åºåèæ¯ç¨é¶å¡«å çï¼æä»¥ææ¸åæåºåæåæ¯æåºæ¯ä¸æ¨£çã + +e-mail æ¨é¡ä¸çãåç³»çµ±ãæ¨èåªåå §æ ¸å系統å°è¢«æè£ä¸ã + +e-mail æ¨é¡ä¸çãä¸å¥è©±æ¦è¿°ãæ¼è¦çæè¿° e-mail ä¸çè£ä¸ããä¸å¥è©±æ¦è¿°ã +ä¸æè©²æ¯ä¸åæä»¶åãå°æ¼ä¸åè£ä¸ç³»åï¼ãè£ä¸ç³»åãæä¸ç³»åçå¤åç¸éè£ +ä¸ï¼ï¼ä¸è¦å°æ¯åè£ä¸é½ä½¿ç¨å樣çãä¸å¥è©±æ¦è¿°ãã + +è¨ä½ e-mail çãä¸å¥è©±æ¦è¿°ãææç²è©²è£ä¸çå ¨å±å¯ä¸æ¨èã宿èå»¶å° git +çæ¹åè¨ééãç¶å¾ãä¸å¥è©±æ¦è¿°ãæè¢«ç¨å¨éç¼è çè¨è«éï¼ç¨ä¾æä»£éåè£ +ä¸ãç¨æ¶å°å¸æéé google ä¾æç´¢"ä¸å¥è©±æ¦è¿°"便¾å°é£äºè¨è«éåè£ä¸çæ +ç« ãç¶äººåå¨å ©ä¸åæå¾ä½¿ç¨è«¸å¦ ``gitk`` æ ``git log --oneline`` ä¹é¡ +çå·¥å ·æ¥çæ¸ååè£ä¸æï¼ä¹æå¾å¿«çå°å®ã + +åºæ¼éäºåå ï¼æ¦è¿°å¿ é ä¸è¶ é70-75åå符ï¼ä¸¦ä¸å¿ é æè¿°è£ä¸çæ´æ¹ä»¥åç² +ä»éº¼éè¦è£ä¸ãæ¢è¦ç°¡æ½åè¦æè¿°æ§å¾æææ°æ§ï¼ä½å¯«å¾å¥½çæ¦è¿°æè©²é樣åã + +æ¦è¿°çåç¶´å¯ä»¥ç¨æ¹æ¬èæ¬èµ·ä¾ï¼ãSubject: [PATCH <tag>...] <æ¦è¿°>ããæ¨è¨ +ä¸è¢«è¦ç²æ¦è¿°çä¸é¨åï¼èæ¯æè¿°æè©²å¦ä½èçè£ä¸ã妿è£ä¸çå¤åçæ¬å·²ç¼ +éåºä¾ä»¥é¿æè©å¯©ï¼å³ãv1ï¼v2ï¼v3ãï¼æãrfcãï¼ä»¥æç¤ºè©å¯©è«æ±ï¼é£éº¼éç¨æ¨è¨ +å¯è½å æ¬çæ¬æè¿°ç¬¦ã妿ä¸åè£ä¸ç³»å䏿ååè£ä¸ï¼é£éº¼ååè£ä¸å¯ä»¥é樣 +ç·¨èï¼1/4ã2/4ã3/4ã4/4ãéå¯ä»¥ç¢ºä¿éç¼äººå¡äºè§£è£ä¸æç¨çé åºï¼ä¸¦ä¸ä»å +å·²ç¶æ¥çææç¨äºè£ä¸ç³»åä¸çææè£ä¸ã + +ä¸äºæ¨é¡çä¾å:: + + Subject: [patch 2/5] ext2: improve scalability of bitmap searching + Subject: [PATCHv2 001/207] x86: fix eflags tracking + +"From" è¡æ¯ä¿¡é«è£¡çæä¸é¢ä¸è¡ï¼å ·æå¦ä¸æ ¼å¼ï¼ + From: Patch Author <author@example.com> + +"From" è¡ææå¨æ°¸ä¹ æ¹åæ¥èªéï¼èª°æè¢«ç¢ºèªç²ä½è ãå¦ææ²æ "From" è¡ï¼é£ +麼éµä»¶é 裡ç "From: " è¡æè¢«ç¨ä¾æ±ºå®æ¹åæ¥èªä¸çä½è ã + +說æç主é¡å°æè¢«æäº¤å°æ°¸ä¹ çåå§ç¢¼æ¹åæ¥èªéï¼å æ¤å°é£äºæ©å·²ç¶ä¸è¨å¾å +éåè£ä¸ç¸éçè¨è«ç´°ç¯çæè½åçè®è ä¾èªªï¼æ¯ææç¾©çãå æ¬è£ä¸ç¨åºå®ä½ +é¯èª¤çï¼å §æ ¸æ¥èªæ¶æ¯ãOOPSæ¶æ¯çï¼ççï¼å°æ¼æç´¢æäº¤æ¥èªä»¥å°æ¾é©ç¨è£ä¸ç人 +å°¤å ¶æç¨ã妿ä¸åè£ä¸ä¿®å¾©äºä¸åç·¨è¯å¤±æï¼é£éº¼å¯è½ä¸éè¦å 嫿æç·¨è¯å¤±æï¼ +åªè¦è¶³å¤ è®æç´¢è£ä¸ç人è½å¤ æ¾å°å®å°±è¡äºãèæ¦è¿°ä¸æ¨£ï¼æ¢è¦ç°¡æ½åè¦æè¿°æ§ã + +"---" æ¨è¨è¡å°æ¼è£ä¸èçå·¥å ·è¦æ¾å°åªè£¡æ¯æ¹åæ¥èªä¿¡æ¯ççµæï¼æ¯ä¸å¯ç¼ºå° +çã + +å°æ¼ "---" æ¨è¨ä¹å¾çé¡å¤è¨»è§£ï¼ä¸å好çç¨éå°±æ¯ç¨ä¾å¯« diffstatï¼ç¨ä¾é¡¯ +示修æ¹äºä»éº¼æä»¶åæ¯åæä»¶é½å¢å ååªé¤äºå¤å°è¡ãdiffstat å°æ¼æ¯è¼å¤§çè£ +ä¸ç¹å¥æç¨ãå ¶é¤é£äºåªæ¯åæå»æè éç¼è ç¸éç註解ï¼ä¸å驿¾å°æ°¸ä¹ çæ¹ +忥èªéçï¼ä¹æè©²æ¾é裡ã +ä½¿ç¨ diffstatçé¸é "-p 1 -w 70" 鿍£æä»¶åå°±æå¾å §æ ¸åå§ç¢¼æ¨¹çç®ééå§ +ï¼ä¸æå ç¨å¤ªå¯¬ç空éï¼å¾å®¹æé©å80åç寬度ï¼ä¹è¨±ææä¸äºç¸®é²ãï¼ + +å¨å¾é¢çåèè³æä¸è½çå°é©ç¶çè£ä¸æ ¼å¼çæ´å¤ç´°ç¯ã + +.. _tw_explicit_in_reply_to: + +15) æç¢ºåè¦éµä»¶é (In-Reply-To) +------------------------------- + +æåæ·»å å復è£ä¸ççæ¨é¡é (In-Reply_To:) æ¯æå¹«å©çï¼ä¾å¦ï¼ä½¿ç¨ ``git send-email`` ï¼ +å°è£ä¸è以åçç¸éè¨è«éè¯èµ·ä¾ï¼ä¾å¦ï¼å°bug修復ç¨åºé£çµå°é»åéµä»¶åbugå ±åã +使¯ï¼å°æ¼å¤è£ä¸ç³»åï¼æå¥½é¿å å¨å復æä½¿ç¨é£çµå°è©²ç³»åçèçæ¬ã鿍£ï¼ +è£ä¸çå¤åçæ¬å°±ä¸ææç²é»åéµä»¶å®¢æ¶ç«¯ä¸ç¡æ³ç®¡ççå¼ç¨åºåã妿é£çµæç¨ï¼ +å¯ä»¥ä½¿ç¨ https://lkml.kernel.org/ éå®åå¨ï¼ä¾å¦ï¼å¨å°é¢é»åéµä»¶ææ¬ä¸ï¼ +é£çµå°è£ä¸ç³»åçæ©æçæ¬ã + +16) ç¼égit pullè«æ± +-------------------- + +å¦ææ¨æä¸ç³»åè£ä¸ï¼é£éº¼è®ç¶è·äººå¡éégit pullæä½å°å®åç´æ¥æå ¥å系統åå² +庫å¯è½æ¯ææ¹ä¾¿çã使¯ï¼è«æ³¨æï¼å¾éç¼äººå¡é£è£¡ç²åè£ä¸æ¯å¾éµä»¶å表ä¸ç²åè£ +ä¸éè¦æ´é«ç信任度ãå æ¤ï¼è¨±å¤å系統ç¶è·äººå¡ä¸é¡ææ¥åè«æ±ï¼ç¹å¥æ¯ä¾èªæ°ç +æªç¥éç¼äººå¡çè«æ±ã妿æçåï¼æ¨å¯ä»¥å¨å°é¢éµä»¶ä¸ä½¿ç¨pull è«æ±ä½ç²è£ä¸ç³»å +æ£å¸¸ç¼å¸çä¸åé¸é ï¼è®ç¶è·äººå¡å¯ä»¥é¸æä½¿ç¨å ¶ä¸ä¹ä¸ã + +pull è«æ±ç主é¡è¡ä¸æè©²æ[Git Pull]ãè«æ±æ¬èº«æè©²å¨ä¸è¡ä¸å å«åå²åº«å稱å +æèè¶£ç忝ï¼å®æè©²çèµ·ä¾å:: + + Please pull from + + git://jdelvare.pck.nerim.net/jdelvare-2.6 i2c-for-linus + + to get these changes: + + +pull è«æ±éæè©²å å«ä¸æ¢æ´é«æ¶æ¯ï¼èªªæè«æ±ä¸å°å å«ä»éº¼ï¼ä¸åè£ä¸æ¬èº«ç ``Git shortlog`` +以åä¸å顯示è£ä¸ç³»åæ´é«ææç ``diffstat`` ãç¶ç¶ï¼å°ææéäºä¿¡æ¯æ¶éå¨ä¸èµ· +çæç°¡å®æ¹æ³æ¯è® ``git`` ä½¿ç¨ ``git request-pull`` å½ä»¤ç²æ¨å®æéäºå·¥ä½ã + +ä¸äºç¶è·äººå¡ï¼å æ¬Linusï¼å¸æçå°ä¾èªå·²ç°½åæäº¤çè«æ±ï¼éå¢å äºä»åå°ä½ ç +è«æ±ä¿¡å¿ãç¹å¥æ¯ï¼å¨æ²æç°½åæ¨ç±¤çæ æ³ä¸ï¼Linus 䏿å¾å Github 鿍£çå ¬å ± +è¨ç®¡ç«é»æè«æ±ã + +åµå»ºæ¤é¡ç°½åçç¬¬ä¸æ¥æ¯çæä¸å GNRPG å¯é°ï¼ä¸¦ç±ä¸åæå¤åæ ¸å¿å §æ ¸éç¼äººå¡å° +å ¶é²è¡ç°½åãé䏿¥å°æ°éç¼äººå¡ä¾èªªå¯è½å¾å°é£ï¼ä½æ²æè¾¦æ³ç¹éå®ãåå æè°æ¯ +æ¾å°å¯ä»¥ç°½ç½²æ¨çå¯é°çéç¼äººå¡çå¥½æ¹æ³ã + +䏿¦æ¨å¨Git 䏿ºåäºä¸åæ¨å¸ææäººæçè£ä¸ç³»åï¼å°±ç¨ ``git tag -s`` åµå»ºä¸ +åç°½åæ¨è¨ãéå°åµå»ºä¸åæ°æ¨è¨ï¼æ¨è該系åä¸çæå¾ä¸æ¬¡æäº¤ï¼ä¸¦å å«ç¨æ¨çç§ +é°åµå»ºçç°½åãæ¨éå¯ä»¥å°changelog樣å¼çæ¶æ¯æ·»å å°æ¨è¨ä¸ï¼éæ¯ä¸åæè¿°æè«æ± +æ´é«ææççæ³ä½ç½®ã + +妿ç¶è·äººå¡å°è¦å¾ä¸æåçæ¨¹ä¸æ¯æ¨æ£å¨ä½¿ç¨çåå²åº«ï¼è«ä¸è¦å¿è¨å°å·²ç°½åçæ¨è¨ +顝弿¨éå°å ¬å ±æ¨¹ã + +çææè«æ±æï¼è«ä½¿ç¨å·²ç°½åçæ¨è¨ä½ç²ç®æ¨ã鿍£çå½ä»¤å¯ä»¥å¯¦ç¾:: + + git request-pull master git://my.public.tree/linux.git my-signed-tag + +åèæç» +-------- + +Andrew Morton, "The perfect patch" (tpp). + <https://www.ozlabs.org/~akpm/stuff/tpp.txt> + +Jeff Garzik, "Linux kernel patch submission format". + <https://web.archive.org/web/20180829112450/http://linux.yyz.us/patch-format.html> + +Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer". + <http://www.kroah.com/log/linux/maintainer.html> + + <http://www.kroah.com/log/linux/maintainer-02.html> + + <http://www.kroah.com/log/linux/maintainer-03.html> + + <http://www.kroah.com/log/linux/maintainer-04.html> + + <http://www.kroah.com/log/linux/maintainer-05.html> + + <http://www.kroah.com/log/linux/maintainer-06.html> + +NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! + <https://lore.kernel.org/r/20050711.125305.08322243.davem@davemloft.net> + +Kernel Documentation/process/coding-style.rst: + :ref:`Documentation/translations/zh_TW/process/coding-style.rst <tw_codingstyle>` + +Linus Torvalds's mail on the canonical patch format: + <https://lore.kernel.org/r/Pine.LNX.4.58.0504071023190.28951@ppc970.osdl.org> + +Andi Kleen, "On submitting kernel patches" + Some strategies to get difficult or controversial changes in. + + http://halobates.de/on-submitting-patches.pdf + diff --git a/Documentation/translations/zh_TW/process/volatile-considered-harmful.rst b/Documentation/translations/zh_TW/process/volatile-considered-harmful.rst new file mode 100644 index 0000000000000..097fe80352cb7 --- /dev/null +++ b/Documentation/translations/zh_TW/process/volatile-considered-harmful.rst @@ -0,0 +1,110 @@ +.. SPDX-License-Identifier: GPL-2.0 + +.. _tw_volatile_considered_harmful: + +.. include:: ../disclaimer-zh_TW.rst + +:Original: :ref:`Documentation/process/volatile-considered-harmful.rst + <volatile_considered_harmful>` + +妿æ³è©è«ææ´æ°æ¬æçå §å®¹ï¼è«ç´æ¥è¯ç¹«åææªçç¶è·è ãå¦æä½ ä½¿ç¨è±æ +äº¤æµæå°é£ç話ï¼ä¹å¯ä»¥å䏿çç¶è·è æ±å©ã妿æ¬ç¿»è¯æ´æ°ä¸åææè ç¿» +è¯åå¨åé¡ï¼è«è¯ç¹«ä¸æçç¶è·è :: + + è±æçç¶è·è ï¼ Jonathan Corbet <corbet@lwn.net> + 䏿çç¶è·è ï¼ ä¼éµ¬ Bryan Wu <bryan.wu@analog.com> + 䏿çç¿»è¯è ï¼ ä¼éµ¬ Bryan Wu <bryan.wu@analog.com> + ä¸æçæ ¡è¯è ï¼ å¼µæ¼¢è¼ Eugene Teo <eugeneteo@kernel.sg> + æ¥ç Dave Young <hidave.darkstar@gmail.com> + æå¥äº® Alex Shi <alex.shi@linux.alibaba.com> + è¡çæ Hu Haowen <src.res@email.cn> + +ç²ä»éº¼ä¸æè©²ä½¿ç¨ãvolatileãé¡å +================================ + +Cç¨å¼è¨è¨å¸«é常èªç²volatile表示æåè®éå¯ä»¥å¨ç¶åå·è¡çç·ç¨ä¹å¤è¢«æ¹è®ï¼å æ¤ï¼å¨å §æ ¸ +ä¸ç¨å°å ±äº«æ¸æçµæ§æï¼å¸¸å¸¸ææCç¨å¼è¨è¨å¸«åæ¡ä½¿ç¨volatileéé¡è®éãæå¥è©±èªªï¼ä»åç¶ +常æævolatileé¡åçææç¨®ç°¡æçååè®éï¼ç¶ç¶å®å䏿¯ãå¨å §æ ¸ä¸ä½¿ç¨volatileå¹¾ +ä¹ç¸½æ¯é¯èª¤çï¼æ¬ææªå°è§£éç²ä»éº¼é樣ã + +çè§£volatileçé鵿¯ç¥éå®çç®çæ¯ç¨ä¾æ¶é¤åªåï¼å¯¦éä¸å¾å°æäººçæ£éè¦éæ¨£çæ +ç¨ãå¨å §æ ¸ä¸ï¼ç¨å¼è¨è¨å¸«å¿ é 鲿¢æå¤ç並ç¼è¨ªåç ´å£å ±äº«çæ¸æçµæ§ï¼éå ¶å¯¦æ¯ä¸åå®å ¨ +ä¸åçä»»åãç¨ä¾é²æ¢æå¤ä¸¦ç¼è¨ªåçä¿è·æªæ½ï¼å¯ä»¥æ´å 髿çé¿å 大夿¸åªåç¸éç +åé¡ã + +åvolatile䏿¨£ï¼å §æ ¸æä¾äºå¾å¤åèªä¾ä¿è並ç¼è¨ªåæçæ¸æå®å ¨ï¼èªæé, äºæ¥é,å § +åå±éççï¼ï¼å樣å¯ä»¥é²æ¢æå¤çåªåã妿å¯ä»¥æ£ç¢ºä½¿ç¨éäºå §æ ¸åèªï¼é£éº¼å°±æ²æ +å¿ è¦å使ç¨volatileã妿ä»ç¶å¿ é 使ç¨volatileï¼é£éº¼å¹¾ä¹å¯ä»¥è¯å®å¨ä»£ç¢¼çæèæä¸ +åbugã卿£ç¢ºè¨è¨çå §æ ¸ä»£ç¢¼ä¸ï¼volatileè½å¸¶ä¾çå å æ¯ä½¿äºæ è®æ ¢ã + +æèä¸ä¸éæ®µå ¸åçå §æ ¸ä»£ç¢¼:: + + spin_lock(&the_lock); + do_something_on(&shared_data); + do_something_else_with(&shared_data); + spin_unlock(&the_lock); + +妿ææç代碼é½éµå¾ªå éè¦åï¼ç¶ææthe_lockçæåï¼ä¸å¯è½æå¤çæ¹è®shared_dataç +å¼ãä»»ä½å¯è½è¨ªåè©²æ¸æçå ¶ä»ä»£ç¢¼é½æå¨éåéä¸çå¾ ãèªæéåèªè·å §åå±é䏿¨£ââ å® +å顯å¼çç¨ä¾æ¸å¯«æé樣 ââ æå³èæ¸æè¨ªåä¸æè·¨è¶å®åè被åªåãæä»¥æ¬ä¾ç·¨è¯å¨èªç² +å®ç¥éå¨shared_data裡é¢å°æä»éº¼ï¼ä½æ¯å ç²spin_lock()調ç¨è·å §åå±é䏿¨£ï¼æå¼·å¶ç·¨ +è¯å¨å¿è¨å®æç¥éçä¸åãé£éº¼å¨è¨ªåéäºæ¸ææä¸ææåªåçåé¡ã + +妿shared_data被è²åç²volatileï¼éæä½å°ä»ç¶æ¯å¿ é çãå°±ç®æåç¥éæ²æå ¶ä»äººæ£å¨ +使ç¨å®ï¼ç·¨è¯å¨ä¹å°è¢«é»æ¢åªåå°è¨çåå §shared_dataç訪åãå¨éææçåæï¼ +shared_data䏿¯volatileçãå¨èçå ±äº«æ¸æçæåï¼é©ç¶çéæä½å¯ä»¥ä¸åéè¦ +volatile ââ 䏦䏿¯ææ½å¨å±å®³çã + +volatileçåå²é¡åæåæ¯ç²é£äºå §åæ å°çI/Oå¯åå¨èå®ç¾©ãå¨å §æ ¸éï¼å¯åå¨è¨ªå乿 +該被éä¿è·ï¼ä½æ¯äººåä¹ä¸å¸æç·¨è¯å¨ãåªåãè¨çåå §çå¯åå¨è¨ªåãå §æ ¸éI/Oçå §å訪å +æ¯éé訪å彿¸å®æçï¼ä¸è´æééæéå°I/Oå §åçç´æ¥è¨ªåï¼ä¸¦ä¸ä¸æ¯å¨ææé«ç³»æ¶æ§ä¸ +é½è½å·¥ä½ãé£äºè¨ªå彿¸æ£æ¯ç²äºé²æ¢æå¤åªåè寫çï¼å æ¤ï¼åèªªä¸æ¬¡ï¼volatileé¡åä¸ +æ¯å¿ éçã + +å¦ä¸ç¨®å¼èµ·ç¨æ¶å¯è½ä½¿ç¨volatileçæ æ³æ¯ç¶èç卿£å¿èçå¾ ä¸åè®éçå¼ãæ£ç¢ºå·è¡ä¸ +åå¿çå¾ çæ¹æ³æ¯:: + + while (my_variable != what_i_want) + cpu_relax(); + +cpu_relax()èª¿ç¨æéä½CPUçè½éæ¶èæè è®ä½æ¼è¶ ç·ç¨éèçå¨ï¼å®ä¹ä½ç²å §åå±é䏿¨£åº +ç¾ï¼æä»¥ï¼å䏿¬¡ï¼volatile䏿¯å¿ éçãç¶ç¶ï¼å¿çå¾ ä¸éå§å°±æ¯ä¸ç¨®å常è¦çåæ³ã + +å¨å §æ ¸ä¸ï¼ä¸äºç¨å°çæ æ³ä¸volatileä»ç¶æ¯ææç¾©çï¼ + + - å¨ä¸äºé«ç³»æ¶æ§ç系統ä¸ï¼å è¨±ç´æ¥çI/0å §å訪åï¼é£éº¼å颿å°ç訪å彿¸å¯ä»¥ä½¿ç¨ + volatileãåºæ¬ä¸ï¼æ¯ä¸å訪å彿¸èª¿ç¨å®èªå·±é½æ¯ä¸åå°çè¨çåå並ä¸ä¿èäºæç § + ç¨å¼è¨è¨å¸«ææç飿¨£ç¼ç訪åæä½ã + + - æäºææ¹è®å §åçå §è¯å½ç·¨ä»£ç¢¼éç¶æ²æä»éº¼å ¶ä»æé¡¯çéä½ç¨ï¼ä½æ¯æè¢«GCCåªé¤çå¯ + è½æ§ãå¨å½ç·¨è²æä¸å ä¸volatileééµåå¯ä»¥é²æ¢é種åªé¤æä½ã + + - Jiffiesè®éæ¯ä¸ç¨®ç¹æ®æ æ³ï¼éç¶æ¯æ¬¡å¼ç¨å®çæåé½å¯ä»¥æä¸åçå¼ï¼ä½è®jiffies + è®éæä¸éè¦ä»»ä½ç¹æ®çå éä¿è·ãæä»¥jiffiesè®éå¯ä»¥ä½¿ç¨volatileï¼ä½æ¯ä¸è´æ + å ¶ä»è·jiffiesç¸åé¡åè®é使ç¨volatileãJiffies被èªç²æ¯ä¸ç¨®ãæè ¢çéºçç©" + ï¼Linusç話ï¼å ç²è§£æ±ºéåå顿¯ä¿æç¾çè¦éº»ç ©çå¤ã + + - ç±æ¼æäºI/0è¨åå¯è½æä¿®æ¹é£çºä¸è´çå §å,æä»¥ææ,æåé£çºä¸è´å §åçæ¸æçµæ§ + çæééè¦æ£ç¢ºç使ç¨volatileã網絡é©é å¨ä½¿ç¨çç°çç·©å忣æ¯é顿 å½¢çä¸åä¾ + åï¼å ¶ä¸é©é å¨ç¨æ¹è®æéä¾è¡¨ç¤ºåªäºæè¿°ç¬¦å·²ç¶èçéäºã + +å°æ¼å¤§å¤ä»£ç¢¼ï¼ä¸è¿°å¹¾ç¨®å¯ä»¥ä½¿ç¨volatileçæ æ³é½ä¸é©ç¨ãæä»¥ï¼ä½¿ç¨volatileæ¯ä¸ç¨® +bug並ä¸éè¦å°é樣ç代碼é¡å¤ä»ç´°æª¢æ¥ãé£äºè©¦å使ç¨volatileçéç¼äººå¡éè¦é䏿¥æ³æ³ +ä»åçæ£æ³å¯¦ç¾çæ¯ä»éº¼ã + +é常æ¡è¿åªé¤volatileè®éçè£ä¸ ï¼ åªè¦èæéäºè£ä¸å®æ´çèæ ®äºä¸¦ç¼åé¡ã + +注é +---- + +[1] https://lwn.net/Articles/233481/ +[2] https://lwn.net/Articles/233482/ + +è´è¬ +---- + +æåç±Randy Dunlapæ¨å並ä½åæ¥ç ç©¶ +ç±Jonathan Corbetæ°å¯« +åèSatyam Sharmaï¼Johannes Stezenbachï¼Jesper Juhlï¼Heikki Orsilaï¼ +H. Peter Anvinï¼Philipp HahnåStefan Richterçæè¦æ¹åäºæ¬æªã +