NOTE: This is a version of Documentation/process/stable-api-nonsense.rst translated into korean This document is maintained by Minchan Kim <minchan@kernel.org> If you find any difference between this document and the original file or a problem with the translation, please contact the maintainer of this file. Please also note that the purpose of this file is to be easier to read for non English (read: korean) speakers and is not intended as a fork. So if you have any comments or updates for this file please try to update the original English file first. ================================== ì´ ë¬¸ì„œëŠ” Documentation/process/stable-api-nonsense.rst ì˜ í•œê¸€ 번ì—입니다. ì—ìžï¼š 김민찬 <minchan@kernel.org> ê°ìˆ˜ï¼š ì´ì œì´ë¯¸ <jamee.lee@samsung.com> ================================== 리눅스 ì»¤ë„ ë“œë¼ì´ë²„ ì¸í„°íŽ˜ì´ìŠ¤ (ì—¬ëŸ¬ë¶„ë“¤ì˜ ëª¨ë“ ì§ˆë¬¸ì— ëŒ€í•œ 답 ê·¸ë¦¬ê³ ë‹¤ë¥¸ 몇가지) Greg Kroah-Hartman <greg@kroah.com> ì´ ë¬¸ì„œëŠ” 리눅스가 왜 ë°”ì´ë„ˆë¦¬ ì»¤ë„ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ 갖지 않는지, 왜 변하지 않는(stable) ì»¤ë„ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ 갖지 않는지를 설명하기 위해 쓰여졌다. ì´ ë¬¸ì„œëŠ” 커ë„ê³¼ ìœ ì €ê³µê°„ 사ì´ì˜ ì¸í„°íŽ˜ì´ìŠ¤ê°€ ì•„ë‹ˆë¼ ì»¤ë„ ë‚´ë¶€ì˜ ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì„ ì„¤ëª…í•˜ê³ ìžˆë‹¤ëŠ” ê²ƒì„ ìœ ë…하ë¼. 커ë„ê³¼ ìœ ì €ê³µê°„ 사ì´ì˜ ì¸í„°íŽ˜ì´ìŠ¤ëŠ” ì‘ìš©í”„ë¡œê·¸ëž¨ì´ ì‚¬ìš©í•˜ëŠ” syscall ì¸í„°íŽ˜ì´ìŠ¤ì´ë‹¤. ê·¸ ì¸í„°íŽ˜ì´ìŠ¤ëŠ” 오랫ë™ì•ˆ ê±°ì˜ ë³€í•˜ì§€ ì•Šì•˜ê³ ì•žìœ¼ë¡œë„ ë³€í•˜ì§€ ì•Šì„ ê²ƒì´ë‹¤. 나는 pre 0.9ì—ì„œ 만들어졌지만 ìµœì‹ ì˜ 2.6 ì»¤ë„ ë°°í¬ì—ì„œë„ ìž˜ ë™ìž‘하는 í”„ë¡œê·¸ëž¨ì„ ê°€ì§€ê³ ìžˆë‹¤. ì´ ì¸í„°íŽ˜ì´ìŠ¤ëŠ” 사용ìžì™€ ì‘용프로그램 개발ìžë“¤ì´ 변하지 ì•Šì„ ê²ƒì´ë¼ê³ 여길수 있는 것ì´ë‹¤. ì´ˆë¡ ---- ì—¬ëŸ¬ë¶„ì€ ë³€í•˜ì§€ 않는 ì»¤ë„ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ì›í•œë‹¤ê³ ìƒê°í•˜ì§€ë§Œ ì‹¤ì œë¡œëŠ” ê·¸ë ‡ì§€ 않으며 심지어는 ê·¸ê²ƒì„ ì•Œì•„ì±„ì§€ 못한다. ì—¬ëŸ¬ë¶„ì´ ì›í•˜ëŠ” ê²ƒì€ ì•ˆì •ë˜ê²Œ 실행ë˜ëŠ” ë“œë¼ì´ë²„ì´ë©° ë“œë¼ì´ë²„ê°€ ë©”ì¸ ì»¤ë„ íŠ¸ë¦¬ì— ìžˆì„ ë•Œ 그런 ì•ˆì •ì ì¸ ë“œë¼ì´ë²„를 ì–»ì„ ìˆ˜ 있게 ëœë‹¤. ë˜í•œ ì—¬ëŸ¬ë¶„ì˜ ë“œë¼ì´ë²„ê°€ ë©”ì¸ ì»¤ë„ íŠ¸ë¦¬ì— ìžˆë‹¤ë©´ 다른 ë§Žì€ ì¢‹ì€ ì´ì ë“¤ì„ ì–»ê²Œ ëœë‹¤. 그러한 ê²ƒë“¤ì´ ë¦¬ëˆ…ìŠ¤ë¥¼ ê°•ê±´í•˜ê³ , ì•ˆì •ì ì´ë©°, 성숙한 ìš´ì˜ì²´ì œë¡œ 만들어 놓ìŒìœ¼ë¡œì¨ 여러분들로 하여금 바로 리눅스를 사용하게 만드는 ì´ìœ ì´ë‹¤. 소개 ---- ì»¤ë„ ë‚´ë¶€ì˜ ì¸í„°íŽ˜ì´ìŠ¤ê°€ 바뀌는 ê²ƒì„ ê±±ì •í•˜ë©° ì»¤ë„ ë“œë¼ì´ë²„를 ìž‘ì„±í•˜ê³ ì‹¶ì–´í•˜ëŠ” ì‚¬ëžŒì€ ì •ë§ ì´ìƒí•œ 사람ì´ë‹¤. 세ìƒì˜ ëŒ€ë‹¤ìˆ˜ì˜ ì‚¬ëžŒë“¤ì€ ì´ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ë³´ì§€ëª»í• ê²ƒì´ë©° ì „í˜€ ê±±ì •í•˜ì§€ë„ ì•ŠëŠ”ë‹¤. ë¨¼ì €, 나는 closed 소스, hidden 소스, binary blobs, 소스 wrappers, ë˜ëŠ” GPLë¡œ ë°°í¬ë˜ì—ˆì§€ë§Œ 소스 코드를 ê°–ê³ ìžˆì§€ ì•Šì€ ì»¤ë„ ë“œë¼ì´ë²„ë“¤ì„ ì„¤ëª…í•˜ëŠ” ì–´ë–¤ 다른 ìš©ì–´ë“¤ì— ê´€í•œ ì–´ë–¤ 법ì ì¸ ë¬¸ì œì— ê´€í•´ì„œëŠ” 언급하지 ì•Šì„ ê²ƒì´ë‹¤. ì–´ë–¤ 법ì ì¸ ì§ˆë¬¸ë“¤ì„ ê°€ì§€ê³ ìžˆë‹¤ë©´ 변호사와 ì—°ë½í•˜ë¼. 나는 프로그래머ì´ë¯€ë¡œ 여기서 ê¸°ìˆ ì ì¸ ë¬¸ì œë“¤ë§Œì„ ì„¤ëª…í•˜ë ¤ê³ í•œë‹¤. (법ì ì¸ ë¬¸ì œë¥¼ 경시하는 ê²ƒì€ ì•„ë‹ˆë‹¤. 그런 ë¬¸ì œë“¤ì€ ì—„ì—°ížˆ í˜„ì‹¤ì— ìžˆê³ ì—¬ëŸ¬ë¶„ë“¤ì€ í•ìƒ ê·¸ ë¬¸ì œë“¤ì„ ì¸ì‹í•˜ê³ ìžˆì„ í•„ìš”ëŠ” 있다.) ìž, ë‘ê°€ì§€ì˜ ì£¼ìš” ì£¼ì œê°€ 있다. ë°”ì´ë„ˆë¦¬ ì»¤ë„ ì¸í„°íŽ˜ì´ìŠ¤ë“¤ê³¼ 변하지 않는 ì»¤ë„ ì†ŒìŠ¤ ì¸í„°íŽ˜ì´ë“¤. ê·¸ê²ƒë“¤ì€ ì„œë¡œ ì˜ì¡´ì„±ì„ ê°€ì§€ê³ ìžˆì§€ë§Œ ë°”ì´ë„ˆë¦¬ ë¬¸ì œë¥¼ ë¨¼ì € í’€ê³ ë„˜ì–´ê°ˆ 것ì´ë‹¤. ë°”ì´ë„ˆë¦¬ ì»¤ë„ ì¸í„°íŽ˜ì´ìŠ¤ ------------------------ 우리가 변하지 않는 ì»¤ë„ ì†ŒìŠ¤ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ê°€ì§€ê³ ìžˆë‹¤ê³ ê°€ì •í•˜ìž. 그러면 ë°”ì´ë„ˆë¦¬ ì¸í„°íŽ˜ì´ìŠ¤ ë˜í•œ ìžì—°ì 으로 변하지 ì•Šì„까? í‹€ë ¸ë‹¤. 리눅스 커ë„ì— ê´€í•œ ë‹¤ìŒ ì‚¬ì‹¤ë“¤ì„ ìƒê°í•´ë³´ë¼. - ì—¬ëŸ¬ë¶„ë“¤ì´ ì‚¬ìš©í•˜ëŠ” C 컴파ì¼ëŸ¬ì˜ ë²„ì ¼ì— ë”°ë¼ ë‹¤ë¥¸ ì»¤ë„ ìžë£Œ êµ¬ì¡°ë“¤ì€ ë‹¤ë¥¸ alignmnetë“¤ì„ ê°–ê²Œ ë 것ì´ê³ 다른 방법으로(í•¨ìˆ˜ë“¤ì„ inline으로 í–ˆëŠëƒ, 아니ëƒ) 다른 í•¨ìˆ˜ë“¤ì„ í¬í•¨í•˜ëŠ” ê²ƒë„ ê°€ëŠ¥í•œë‹¤. 중요한 ê²ƒì€ ê°œë³„ì ì¸ í•¨ìˆ˜ êµ¬ì„±ì´ ì•„ë‹ˆë¼ ìžë£Œ 구조 íŒ¨ë”©ì´ ë‹¬ë¼ì§„다는 ì ì´ë‹¤. - ì—¬ëŸ¬ë¶„ì´ ì„ íƒí•œ ì»¤ë„ ë¹Œë“œ ì˜µì…˜ì— ë”°ë¼ì„œ 커ë„ì€ ë‹¤ì–‘í•œ ê²ƒë“¤ì„ ê°€ì •í• ìˆ˜ 있다. - 다른 êµ¬ì¡°ì²´ë“¤ì€ ë‹¤ë¥¸ í•„ë“œë“¤ì„ í¬í•¨í• 수 있다. - 몇몇 í•¨ìˆ˜ë“¤ì€ ì „í˜€ 구현ë˜ì§€ ì•Šì„ ìˆ˜ë„ ìžˆë‹¤(즉, 몇몇 lockë“¤ì€ non-SMP 빌드ì—서는 사ë¼ì ¸ ë²„ë¦´ìˆ˜ë„ ìžˆë‹¤). - 커ë„ë‚´ì— ë©”ëª¨ë¦¬ëŠ” build optoinë“¤ì— ë”°ë¼ ë‹¤ë¥¸ 방법으로 alignë 수 있다. - 리눅스는 ë§Žì€ ë‹¤ì–‘í•œ 프로세서 아키í…ì³ì—ì„œ 실행ëœë‹¤. í•œ 아키í…ì³ì˜ ë°”ì´ë„ˆë¦¬ ë“œë¼ì´ë²„를 다른 아키í…ì³ì—ì„œ ì •ìƒì 으로 실행시킬 ë°©ë²•ì€ ì—†ë‹¤. 커ë„ì„ ë¹Œë“œí–ˆë˜ C 컴파ì¼ëŸ¬ì™€ ì •í™•í•˜ê²Œ ê°™ì€ ê²ƒì„ ì‚¬ìš©í•˜ê³ ì •í™•í•˜ê²Œ ê°™ì€ ì»¤ë„ êµ¬ì„±(configuration)ì„ ì‚¬ìš©í•˜ì—¬ ì—¬ëŸ¬ë¶„ë“¤ì˜ ëª¨ë“ˆì„ ë¹Œë“œí•˜ë©´ 간단히 ë§Žì€ ë¬¸ì œë“¤ì„ í•´ê²°í• ìˆ˜ 있다. ì´ë ‡ê²Œ 하는 ê²ƒì€ ì—¬ëŸ¬ë¶„ë“¤ì´ í•˜ë‚˜ì˜ ë¦¬ëˆ…ìŠ¤ ë°°í¬íŒì˜ í•˜ë‚˜ì˜ ë°°í¬ ë²„ì ¼ì„ ìœ„í•œ ëª¨ë“ˆë§Œì„ ì œê³µí•œë‹¤ë©´ ë³„ì¼ ì•„ë‹ ê²ƒì´ë‹¤. 그러나 ê°ê¸° 다른 리눅스 ë°°í¬íŒë§ˆë‹¤ 한번씩 빌드하는 수를 ê° ë¦¬ëˆ…ìŠ¤ ë°°í¬íŒë§ˆë‹¤ ì œê³µí•˜ëŠ” 다른 ë¦´ë¦¬ì¦ˆì˜ ìˆ˜ì™€ 곱하게 ë˜ë©´ ì´ë²ˆì—는 ê° ë¦´ë¦¬ì¦ˆë“¤ì˜ ë‹¤ë¥¸ 빌드 ì˜µì…˜ì˜ ì•…ëª½ê³¼ 마주하게 것ì´ë‹¤. ë˜í•œ ê° ë¦¬ëˆ…ìŠ¤ ë°°í¬íŒë“¤ì€ 다른 하드웨어 종류ì—(다른 프로세서 타입과 다른 옵션들) ë§žì¶°ì ¸ 있는 ë§Žì€ ë‹¤ë¥¸ 커ë„ë“¤ì„ ë°°í¬í•œë‹¤. 그러므로 í•œë²ˆì˜ ë°°í¬ì—서조차 ì—¬ëŸ¬ë¶„ë“¤ì˜ ëª¨ë“ˆì€ ì—¬ëŸ¬ ë²„ì ¼ì„ ë§Œë“¤ 필요가 있다. 나를 믿어ë¼. ì—¬ëŸ¬ë¶„ë“¤ì€ ì´ëŸ¬í•œ ì¢…ë¥˜ì˜ ë°°í¬ë¥¼ 지ì›í•˜ë ¤ê³ ì‹œë„한다면 ì‹œê°„ì´ ì§€ë‚˜ë©´ ë¯¸ì¹ ì§€ê²½ì´ ë 것ì´ë‹¤. ë‚œ ì´ëŸ¬í•œ ê²ƒì„ ì˜¤ëž˜ì „ì— ì•„ì£¼ ì–´ë µê²Œ ë°°ì› ë‹¤... 변하지않는 ì»¤ë„ ì†ŒìŠ¤ ì¸í„°íŽ˜ì´ìŠ¤ë“¤ --------------------------------- 리눅스 ì»¤ë„ ë“œë¼ì´ë²„를 계ì†í•´ì„œ ë©”ì¸ ì»¤ë„ íŠ¸ë¦¬ì— ë°˜ì˜í•˜ì§€ ì•Šê³ ìœ ì§€ë³´ìˆ˜í•˜ë ¤ê³ í•˜ëŠ” 사람들과 ì´ ë¬¸ì œë¥¼ ë…¼ì˜í•˜ê²Œ ë˜ë©´ 훨씬 ë” "ë…¼ëž€ì˜ ì—¬ì§€ê°€ 많ì€" ì£¼ì œê°€ ë 것ì´ë‹¤. 리눅스 ì»¤ë„ ê°œë°œì€ ëŠìž„ì—†ì´ ë¹ ë¥¸ ì†ë„ë¡œ ì´ë£¨ì–´ì§€ê³ 있으며 ê²°ì½” ëŠìŠ¨í•´ì§„ ì ì´ ì—†ë‹¤. ì»¤ë„ ê°œë°œìžë“¤ì´ 현재 ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì—ì„œ 버그를 발견하거나 무엇ì¸ê°€ í• ìˆ˜ 있는 ë” ì¢‹ì€ ë°©ë²•ì„ ì°¾ê²Œ ë˜ì—ˆë‹¤ê³ 하ìž. ê·¸ë“¤ì´ ë°œê²¬í•œ ê²ƒì„ ì‹¤í–‰í•œë‹¤ë©´ ì•„ë§ˆë„ ë” ìž˜ ë™ìž‘하ë„ë¡ í˜„ìž¬ ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì„ ìˆ˜ì •í•˜ê²Œ ë 것ì´ë‹¤. ê·¸ë“¤ì´ ê·¸ëŸ° ì¼ì„ 하게ë˜ë©´ 함수 ì´ë¦„ë“¤ì€ ë³€í•˜ê²Œ ë˜ê³ , êµ¬ì¡°ì²´ë“¤ì€ ëŠ˜ì–´ë‚˜ê±°ë‚˜ 줄어들게 ë˜ê³ , 함수 파ë¼ë¯¸í„°ë“¤ì€ 재작업ë 것ì´ë‹¤. ì´ëŸ¬í•œ ì¼ì´ ë°œìƒë˜ë©´ ì»¤ë„ ë‚´ì— ì´ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ì‚¬ìš©í–ˆë˜ ì¸ìŠ¤í„´ìŠ¤ë“¤ì´ ë™ì‹œì— ìˆ˜ì •ë 것ì´ë©° ì´ëŸ¬í•œ ê³¼ì •ì€ ëª¨ë“ ê²ƒì´ ê³„ì†í•´ì„œ 올바르게 ë™ìž‘í• ê²ƒì´ë¼ëŠ” ê²ƒì„ ë³´ìž¥í•œë‹¤. ì´ëŸ¬í•œ ê²ƒì˜ í•œ 예로ì¨, ì»¤ë„ ë‚´ë¶€ì˜ USB ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì€ ì´ ì„œë¸Œì‹œìŠ¤í…œì´ ìƒê¸´ ì´í›„ë¡œ ì ì–´ë„ 3ë²ˆì˜ ë‹¤ë¥¸ ìž¬ìž‘ì—…ì„ ê²ªì—ˆë‹¤. ì´ ìž¬ìž‘ì—…ë“¤ì€ ë§Žì€ ë‹¤ë¥¸ ë¬¸ì œë“¤ì„ í’€ì—ˆë‹¤. - ë°ì´í„° ìŠ¤íŠ¸ë¦¼ë“¤ì˜ ë™ê¸°ì ì¸ ëª¨ë¸ì—ì„œ 비ë™ê¸°ì ì¸ ëª¨ë¸ë¡œì˜ 변화. ì´ê²ƒì€ ë§Žì€ ë“œë¼ì´ë²„ë“¤ì˜ ë³µìž¡ì„±ì„ ì¤„ì´ê³ ì²˜ë¦¬ëŸ‰ì„ í–¥ìƒì‹œì¼œ 현재는 ê±°ì˜ ëª¨ë“ USB ìž¥ì¹˜ë“¤ì˜ ê±°ì˜ ìµœëŒ€ ì†ë„ë¡œ 실행ë˜ê³ 있다. - USB ë“œë¼ì´ë²„ê°€ USB 코어로부터 ë°ì´í„° íŒ¨í‚·ë“¤ì„ í• ë‹¹ë°›ë¡œë¡ í•œ 변경으로 ì¸í•´ì„œ ì§€ê¸ˆì˜ ëª¨ë“ ë“œë¼ì´ë²„ë“¤ì€ ë§Žì€ ë¬¸ì„œí™”ëœ ë°ë“œë½ì„ ìˆ˜ì •í•˜ê¸° 위하여 USB 코어ì—게 ë” ë§Žì€ ì •ë³´ë¥¼ ì œê³µí•´ì•¼ë§Œ 한다. ì´ê²ƒì€ 오랫ë™ì•ˆ ìžì‹ ì˜ ì˜¤ëž˜ëœ USB ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì„ ìœ ì§€í•´ì•¼ 하는 closed ìš´ì˜ì²´ì œë“¤ê³¼ëŠ” ì™„ì „ížˆ 반대ë˜ëŠ” 것ì´ë‹¤. closedëœ ìš´ì˜ì²´ì œë“¤ì€ 새로운 개발ìžë“¤ì—게 우연히 ë‚¡ì€ ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ 사용하게 í• ê¸°íšŒë¥¼ 주게ë˜ë©°, ì ì ˆí•˜ì§€ 못한 방법으로 처리하게 ë˜ì–´ ìš´ì˜ì²´ì œì˜ ì•ˆì •ì„±ì„ í•´ì¹˜ëŠ” ë¬¸ì œë¥¼ 야기하게 ëœë‹¤. ì´ ë‘ê°€ì§€ì˜ ì˜ˆë“¤ 모ë‘, ëª¨ë“ ê°œë°œìžë“¤ì€ ê¼ ì´ë£¨ì–´ì ¸ì•¼ 하는 중요한 변화들ì´ë¼ê³ ë™ì˜ë¥¼ í•˜ì˜€ê³ ë¹„êµì ì ì€ ê³ í†µìœ¼ë¡œ 변경ë˜ì–´ì¡Œë‹¤. 리눅스가 변하지 않는 소스 ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ê³ ì§‘í•œë‹¤ë©´, 새로운 ì¸í„°íŽ˜ì´ìŠ¤ê°€ 만들어지게 ë˜ë©° 반면 ê¸°ì¡´ì˜ ì˜¤ëž˜ëœ ê²ƒë“¤, ê·¸ë¦¬ê³ ê¹¨ì§„ ê²ƒë“¤ì€ ê³„ì†í•´ì„œ ìœ ì§€ë˜ì–´ì•¼ 하며 ì´ëŸ¬í•œ ì¼ë“¤ì€ USB 개발ìžë“¤ì—게 ë˜ ë‹¤ë¥¸ ì¼ê±°ë¦¬ë¥¼ 주게 ëœë‹¤. ëª¨ë“ ë¦¬ëˆ…ìŠ¤ USB 개발ìžë“¤ì—게 ìžì‹ ì˜ ê·¸ë“¤ì˜ ì—…ë¬´ë¥¼ 마친 후 ì‹œê°„ì„ íˆ¬ìží•˜ì—¬ 아무 ë“ë„ ì—†ëŠ” 무료 봉사를 해달ë¼ê³ 하는 ê²ƒì€ ê°€ëŠ¥ì„±ì´ í¬ë°•í•œ ì¼ì´ë‹¤. 보안 ë¬¸ì œ ì—ì‹œ 리눅스ì—게는 매우 중요하다. 보안 ë¬¸ì œê°€ 발견ë˜ë©´ ê·¸ê²ƒì€ ë§¤ìš° ì§§ì€ ì‹œê°„ ì•ˆì— ìˆ˜ì •ëœë‹¤. 보안 ë¬¸ì œëŠ” ê·¸ ë¬¸ì œë¥¼ 해결하기 위하여 여러번 내부 ì»¤ë„ ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì„ 재작업하게 만들었다. ì´ëŸ¬í•œ ë¬¸ì œê°€ ë°œìƒí•˜ì˜€ì„ ë•Œ ê·¸ ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì„ 사용하는 ëª¨ë“ ë“œë¼ì´ë²„ë“¤ë„ ë™ì‹œì— ìˆ˜ì •ë˜ì–´ 보안 ë¬¸ì œê°€ 앞으로 갑작스럽게 ìƒê¸°ì§€ëŠ” ì•Šì„ ê²ƒì´ë¼ëŠ” ê²ƒì„ ë³´ìž¥í•œë‹¤. 내부 ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì˜ ë³€ê²½ì´ í—ˆë½ë˜ì§€ 않으면 ì´ëŸ¬í•œ ì¢…ë¥˜ì˜ ë³´ì•ˆ ë¬¸ì œë¥¼ ìˆ˜ì •í•˜ê³ ê·¸ê²ƒì´ ë‹¤ì‹œ ë°œìƒí•˜ì§€ ì•Šì„ ê²ƒì´ë¼ê³ 보장하는 ê²ƒì€ ê°€ëŠ¥í•˜ì§€ ì•Šì„ ê²ƒì´ë‹¤. ì»¤ë„ ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì€ 계ì†í•´ì„œ ì •ë¦¬ë˜ê³ 있다. 현재 ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ 사용하는 ì‚¬ëžŒì´ í•œëª…ë„ ì—†ë‹¤ë©´ ê·¸ê²ƒì€ ì‚ì œëœë‹¤. ì´ê²ƒì€ 커ë„ì´ ê°€ëŠ¥í•œí•œ 가장 작게 ìœ ì§€ë˜ë©° 존재하는 ëª¨ë“ ê°€ëŠ¥ì„±ì´ ìžˆëŠ” ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì´ 테스트ëœë‹¤ëŠ” ê²ƒì„ ë³´ìž¥í•œë‹¤(사용ë˜ì§€ 않는 ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì€ ìœ íš¨ì„± ê²€ì¦ì„ 하기가 ê±°ì˜ ë¶ˆê°€ëŠ¥í•˜ë‹¤). ë¬´ì—‡ì„ í•´ì•¼ 하나 --------------- ìž, ì—¬ëŸ¬ë¶„ì´ ë©”ì¸ ì»¤ë„ íŠ¸ë¦¬ì— ìžˆì§€ ì•Šì€ ë¦¬ëˆ…ìŠ¤ ì»¤ë„ ë“œë¼ì´ë²„를 ê°€ì§€ê³ ìžˆë‹¤ë©´ ì—¬ëŸ¬ë¶„ì€ ì¦‰, 개발ìžëŠ” ë¬´ì—‡ì„ í•´ì•¼ 하나? ëª¨ë“ ë°°í¬íŒë§ˆë‹¤ 다른 ì»¤ë„ ë²„ì ¼ì„ ìœ„í•œ ë°”ì´ë„ˆë¦¬ ë“œë¼ì´ë²„를 ë°°í¬í•˜ëŠ” ê²ƒì€ ì•…ëª½ì´ë©° 계ì†í•´ì„œ ë³€í•˜ê³ ìžˆëŠ” ì»¤ë„ ì¸í„°íŽ˜ì´ìŠ¤ë“¤ì˜ 맞처 ìœ ì§€ë³´ìˆ˜í•˜ë ¤ê³ ì‹œë„하는 ê²ƒì€ íž˜ë“ ì¼ì´ë‹¤. 간단하다. ì—¬ëŸ¬ë¶„ì˜ ì»¤ë„ ë“œë¼ì´ë²„를 ë©”ì¸ ì»¤ë„ íŠ¸ë¦¬ì— ë°˜ì˜í•˜ë¼(우리는 여기서 GPLì„ ë”°ë¥´ëŠ” ë°°í¬ ë“œë¼ì´ë²„ì— ê´€í•´ ì–˜ê¸°í•˜ê³ ìžˆë‹¤ëŠ” ê²ƒì„ ìƒê¸°í•˜ë¼. ì—¬ëŸ¬ë¶„ì˜ ì½”ë“œê°€ ì´ëŸ¬í•œ ë¶„ë¥˜ì— í•´ë‹¹ë˜ì§€ 않는다면 í–‰ìš´ì„ ë¹ˆë‹¤. 여러분 스스로 ì–´ë–»ê²Œë“ í•´ì•¼ë§Œ 한다). ì—¬ëŸ¬ë¶„ì˜ ë“œë¼ì´ë²„ê°€ íŠ¸ë¦¬ì— ìžˆê²Œë˜ë©´ ì»¤ë„ ì¸í„°íŽ˜ì´ìŠ¤ê°€ 변경ë˜ë”ë¼ë„ 가장 ë¨¼ì € 커ë„ì— ë³€ê²½ì„ ê°€í–ˆë˜ ì‚¬ëžŒì— ì˜í•´ì„œ ìˆ˜ì •ë 것ì´ë‹¤. ì´ê²ƒì€ ì—¬ëŸ¬ë¶„ì˜ ë“œë¼ì´ë²„ê°€ ì—¬ëŸ¬ë¶„ì˜ ë³„ë‹¤ë¥¸ ë…¸ë ¥ì—†ì´ í•ìƒ 빌드가 가능하며 ë™ìž‘하는 ê²ƒì„ ë³´ìž¥í•œë‹¤. ë©”ì¸ ì»¤ë„ íŠ¸ë¦¬ì— ì—¬ëŸ¬ë¶„ì˜ ë“œë¼ì´ë²„를 ë°˜ì˜í•˜ë©´ 얻게 ë˜ëŠ” 장ì ë“¤ì€ ë‹¤ìŒê³¼ 같다. - ê´€ë¦¬ì— ë“œëŠ” 비용(ì›ëž˜ 개발ìžì˜)ì€ ì¤„ì–´ì¤„ë©´ì„œ ë“œë¼ì´ë²„ì˜ ì§ˆì€ í–¥ìƒë 것ì´ë‹¤. - 다른 개발ìžë“¤ì´ ì—¬ëŸ¬ë¶„ì˜ ë“œë¼ì´ë²„ì— ê¸°ëŠ¥ë“¤ì„ ì¶”ê°€ í• ê²ƒì´ë‹¤. - 다른 ì‚¬ëžŒë“¤ì€ ì—¬ëŸ¬ë¶„ì˜ ë“œë¼ì´ë²„ì— ë²„ê·¸ë¥¼ ë°œê²¬í•˜ê³ ìˆ˜ì •í• ê²ƒì´ë‹¤. - 다른 ì‚¬ëžŒë“¤ì€ ì—¬ëŸ¬ë¶„ì˜ ë“œë¼ì´ë²„ì˜ ê°œì„ ì ì„ ì°¾ì„ ì¤„ 것ì´ë‹¤. - 외부 ì¸í„°íŽ˜ì´ìŠ¤ 변경으로 ì¸í•´ ì—¬ëŸ¬ë¶„ì˜ ë“œë¼ì´ë²„ì˜ ìˆ˜ì •ì´ í•„ìš”í•˜ë‹¤ë©´ 다른 ì‚¬ëžŒë“¤ì´ ë“œë¼ì´ë²„를 ì—…ë°ì´íŠ¸í• 것ì´ë‹¤. - ì—¬ëŸ¬ë¶„ì˜ ë“œë¼ì´ë²„는 별다른 ë…¸ë ¥ ì—†ì´ ëª¨ë“ ë¦¬ëˆ…ìŠ¤ ë°°í¬íŒì— ìžë™ì 으로 추가ë 것ì´ë‹¤. 리눅스는 다른 ìš´ì˜ ì²´ì œë³´ë‹¤ "쉽게 쓸수 있는(out of the box)" ë§Žì€ ë‹¤ë¥¸ ìž¥ì¹˜ë“¤ì„ ì§€ì›í•˜ê³ ì–´ë–¤ 다른 ìš´ì˜ ì²´ì œë³´ë‹¤ 다양한 아키í…ì³ìœ„ì—ì„œ ì´ëŸ¬í•œ ìž¥ì¹˜ë“¤ì„ ì§€ì›í•˜ê¸° ë•Œë¬¸ì— ì´ëŸ¬í•œ ì¦ëª…ëœ ê°œë°œ 모ë¸ì€ í‹€ë¦¼ì—†ì´ ë°”ë¡œ ê°€ê³ ìžˆëŠ” 것ì´ë‹¤. ------ ì´ ë¬¸ì„œì˜ ì´ˆì•ˆì„ ê²€í† í•´ì£¼ê³ ì½”ë©˜íŠ¸ 해준 Randy Dunlap, Andrew Morton, David Brownell, Hanna Linder, Robert Love, ê·¸ë¦¬ê³ Nishanth Aravamudanì—게 ê°ì‚¬í•œë‹¤.