์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ ์ ์์ต๋๋ค.
์ถ์ฒ : http://systemscoaching.kr/62
๊ธฐ์ต๋ ฅ์ด ์ ์ ๋๋น ์ง๋ค. ์ดํดํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ๋์ค์ ํ์ํ๋ฉด ๋ค์ ๊บผ๋ด์ ๋ค์ ๊ณต๋ถํด์ผ ํ๋ค. ๊ทธ ๋ํ์ ์ธ ๊ฒ์ด Open Source Software์ ๊ฐ๋ ์ด๋ค. ์ด ํฌ์คํธ๋ ํ์์ ์ดํด๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋ ๊ฒ์ผ๋ก, ์ด๋ค ๋ฒ์ ์ธ ์กฐ์ธ๋ ๋ด๊ณ ์์ง ์๊ณ , ์ด ํฌ์คํธ์ ๋ด์ฉ์ ์ฐธ๊ณ ํ๋ ๊ฒ์ ๋ ์์ ์ ํ์ด๋ฉฐ, ํ์๋ ์ด๋ค ๋ฒ์ ์ธ ์ฑ ์๋ ์ง์ง ์๋๋ค.
์ํํธ์จ์ด ๋ผ์ด์ผ์ค ์ ์ฑ
Open Source
ํต๋ ์ ์ผ๋ก ์์ค์ฝ๋๊ฐ ๊ณต๊ฐ๋์ด ๋๊ตฌ๋ ์์ ํ๊ณ ์ฌ๋ฐฐํฌํ ์ ์๋ ์ํํธ์จ์ด๋ฅผ ๋งํ๋ค. ์์์๊ฐ ์ง์ ํ ๋ผ์ด์ผ์ค ์กฐ๊ฑด๋ง์ ์งํค๋ฉด, ๊ธฐ์ ์์๋ ์์ฉ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. GPL, LGPL, BSD, MPL, Apache ๋ฑ์ด ์ ๋ช ํ ์คํ์์ค ๋ผ์ด์ผ์ค ์ ์ฑ ์ด๋ค.
Closed Source (Proprietary Source)
์์ค์ฝ๋๊ฐ ๊ณต๊ฐ๋์ด ์์ง ์๊ณ , ์ ์๊ถ์๊ฐ ํต์ ๊ถ์ ํ์ฌํ ์ ์ํํธ์จ์ด๋ฅผ ๋งํ๋ค. ์ ์๊ถ์์์ ํ์(๊ณ์ฝ)์์ด ์์ ํ๊ฑฐ๋ ์ฌ ๋ฐฐํฌํ ์ ์๋ค. ์ฃผ๋ก ๊ธฐ์ ์ด๋ ๊ธฐ์ ์ง๋จ์ ์ํด ๋ ๋ฆฝ์ ์ผ๋ก ์์ ๋๋ฉฐ, ๋ผ์ด์ผ์ฑ์ ํตํด ๋์ ๋ฒ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ง ์ํํธ์จ์ด๋ก ์ดํดํ๋ฉด ๋๋ค.
Free Software
โFree lunchโ, โFreedomโ ์์ ์ฌ์ฉ๋ โFreeโ์ ์๋ฏธ๋ ์๋ก ๋ค๋ฅด๋ค. ์คํ์์ค๋ ์์ค์ฝ๋๋ฅผ ๊ณต๊ฐํ๋ค๋ ์๋ฏธ๊ฐ ๊ฐํ๊ณ , ํ๋ฆฌ์ํํธ์จ์ด๋ โ์ฌ์ฉ์ ์์ โ์ ์๋ฏธ๊ฐ ๊ฐํ๋ค. ํน์๋ โOpen source is a development methodology; free software is a social movement.โ ๋ผ๊ณ ๋งํ๋ค.
Shared Source
3rd Party๋ค๊ณผ ๊ณ์ฝ์ ํตํด ์์ค์ฝ๋๋ฅผ ๊ณต๊ฐํ๋ ์์ค์ ์ ์ํ Microsoft์ ๋ผ์ด์ผ์ค ์ ์ฑ ์ด๋ค. ๊ณ์ฝ์ ํํ์ ๋ฐ๋ผ, ์์ Closed Source ๊ณ์ฝ, Source Code ์ฐธ์กฐ ๊ฐ๋ฅ ๊ณ์ฝ, ์์ ๋ฐ ์ฌ๋ฐฐํฌ ๊ฐ๋ฅ ๊ณ์ฝ์ผ๋ก ๋๋์ด์ง ์ ์๋ค.
์คํ์์ค ์ํํธ์จ์ด์ ์ฅ์
a. ๋ฐฉ๋ํ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ? ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ด ์คํ๋ ํ ๋ก ์ ํตํ์ฌ ํด๋น ์คํ์์ค ์ํํธ์จ์ด์ ๊ตฌ์กฐ, ๋ฒ๊ทธ ํจ์น, ๊ธฐ๋ฅ์ ๊ณ์ ๋ฐ์ ์ํจ๋ค. ์ ์ธ๊ณ์ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ํ๋ก์ ํธ์ ์ฐธ์ฌํ๊ธฐ ๋๋ฌธ์, ํ ๊ฐ ๋๋ ๋ช๊ฐ์ ๊ธฐ์
์ด ์ฐธ์ฌํ ํด๋ก์ฆ๋์์ค ํ๋ก์ ํธ์ ๋นํด ํจ์ฌ ๋ง์ ๊ฐ๋ฐ์ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ ์ ์๊ฒ ๋๋ค.
b. ๋น ๋ฅธ ๊ฐ๋ฐ ๋ฐ ํ์ง ๊ฒ์ฆ ? ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ด ์ฐธ์ฌํ๋ฏ๋ก ๊ฐ๋ฐ์ ์๋๋ ๋ฒ๊ทธ ํจ์น์ ์๋๋ฉด์์ ํด๋ก์ฆ๋์์ค ํ๋ก์ ํธ์ ๋นํด ํจ์ฌ ๋น ๋ฅด๋ค.
c. ๋ ํฐ ์์ฝ์์คํ
? ํด๋ก์ฆ๋์์ค ํ๋ก์ ํธ๊ฐ ๊ฐ๋ ํ์ํ ๊ฐ๋ฐ ์ํ๊ณ์ ๋นํด์?์ ํต์ ์ธ ๊ฐ์๊ด๊ณ์์ ์๋ฃจ์
/์ฉ์ญ ์
์ฒด๋ค์ ์ค์ธ์ ๋ด์ผ ์์ผ๋ก ๊ผฝ์ ์ ์์ ์ ๋์ด๋ค?, ์คํ๋ ์์ค๋ฅผ ์ด์ฉํ์ฌ ์์ฉํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋ง์ ๊ธฐ์
๋ค์ด ์กด์ฌํ๋ค.
d. ํ์ค ๊ธฐ๋ฐ ์ํํธ์จ์ด ? POSIX, SVR4, BSD Socket๊ณผ ๊ฐ์ ์ฐ์
ํ์ค์ ์ฌ์ฉํ๋ฏ๋ก ์ฐ์
/์์ฅ๊ฐ์ ๊ฒฝ๊ณ๋ฅผ ํ๋ฌผ์ด ๋จ๋ฆฌ๊ณ , ๊ธฐ์กด ๊ฐ๋ฐ ๊ฒฐ๊ณผ๋ฌผ๋ค์ ์ฌํ์ฉ์ฑ์ ๋์ฌ ์ค๋ค.
e. ์์ค์ฝ๋ ์ ๊ณต
f. ๋น์ฉ ์ ๊ฐ
GPL(General Public License)
์ํํธ์จ์ด ๊ฐ๋ฐ์๊ฐ GPL ๋ผ์ด์ผ์ค ์ ์ฑ ์ ์ ํํ๋ค๋ฉด, โ ์ ์๊ถ์ ํ์ํ๊ณ โ ๋ฌด๋ณด์ฆ (No warranty) ์กฐํญ์ ํ์ํ๊ณ โ GPL๋ก ๋ฐฐํฌ๋จ์ ๋ช ์ํด์ผ ํ๋ค. ์์ ์ด๋ ์ 3์์ ํนํ๋ฅผ ํฌํจํ์ฌ ๊ฐ๋ฐํ ์ํํธ์จ์ด๋ฅผ GPL๋ก ๋ฐฐํฌํ๋ค๋ฉด, ์์ ์ ํนํ์ ๋ํ Royalty๋ฅผ ์ฒญ๊ตฌํ ์ ์๊ณ , ์ 3์๋ ํนํ์ ๋ํ Royalty๋ฅผ ์ฒญ๊ตฌํ ์ ์๋ค?์ 3์์ ํนํ๋ฅผ ์ฌ์ฉํ์ฌ ์ํํธ์จ์ด๋ฅผ ๋ง๋ค๊ณ GPL๋ก ๋ฐฐํฌํ๊ณ ์ ํ๋ค๋ฉด, ํนํ๋ฅผ ๊ฐ์ง ์ 3์์๊ฒ ์ฌ์ ๋์๋ฅผ ์ป์ด์ผ ํ๋ค*. GPL๋ก ์ ์ธ๋ ์์ค์ฝ๋๋ฅผ ์์ ํ ์ฝ๋ (Derived Work)๋ GPL ์กฐ๊ฑด์ ๋ฐ๋ผ์ผ ํ๋ค. GPL๋ก ์ ์ธ๋ ์ฝคํฌ๋ํธ๋ฅผ ๋งํฌํ (Static, Dynamic Link ๋ชจ๋์ ํด๋น) ์์ Application์ GPL ์กฐ๊ฑด์ ๋ฐ๋ผ์ผ ํ๋ค.
* GPLed ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ ์์ ์ด ์ฑ์ฉํ ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ ๋ํ ํนํ๊ถ ์กด์ฌ ์ฌ๋ถ๋ฅผ ์ ๋ชจ๋ฅธ๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์ ํนํ๊ถ์๋ GPL ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋ณด๋ค๋, GPL ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ์
์ ํนํ ์์ก์ ํ๋ค. ์ด๋ ๊ฒฝ์ ๋
ผ๋ฆฌ๋ก์, ๊ฐ์ธ๋ณด๋ค ๊ธฐ์
์ ์ฒญ๊ตฌํด์ผ ๋์ด ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฐ ์จ์ด ์๋ ํนํ๊ถ์ ์ํ์ฑ์ ์ฌ์ ์ ์ฐพ์ ์ฃผ๋ ํด์ด BlackDuck็คพ์ ProtexIP์ด๋ค.
LGPL (Lesser GPL)
์ํํธ์จ์ด ๊ฐ๋ฐ์๊ฐ LGPL ๋ผ์ด์ผ์ค ์ ์ฑ ์ ์ ํํ๋ค๋ฉด, โ ์ ์๊ถ์ ํ์ํ๊ณ โ ๋ฌด๋ณด์ฆ (No warranty) ์กฐํญ์ ํ์ํ๊ณ โ LGPL๋ก ๋ฐฐํฌ๋จ์ ๋ช ์ํด์ผ ํ๋ค. LGPL ์ ์ธ๋ ์์ค์ฝ๋๋ฅผ ์์ ํ ์ฝ๋๋ ๋ค์ LGPL๋ก ๋ฐฐํฌ๋์ด์ผ ํ๋ค. LGPL ์ ์ธ๋ ์ฝคํฌ๋ํธ๋ฅผ ์์ ํ์ฌ Static Link/Dynamic Linkํ๋ Application์ ๋ค์ LGPL๋ก ๋ฐฐํฌ๋ ํ์๋ ์๋ค. ๋ค๋ง, ์ฝคํฌ๋ํธ๋ฅผ ์์ ํ์ฌ ์์ Application์ Static Link๋ฅผ ํ์ ๊ฒฝ์ฐ, ์์ ๋ LGPLed ์๋ณธ(Static Link๋ Component)์ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ ์ ๊ณตํด์ผ ํ๋ค (Section 6).
Linux System Architecture
์ผ๋ฐ์ ์ผ๋ก Linux System์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด Kernel Space์ User Space๋ก ๋๋ ์ ์๋ค. Kernel ์์ฒด๋ GPL์ด๋ฉฐ, Kernel๊ณผ Static์ผ๋ก ์ฎ์ด๋ Device Driver๋ ๋น์ฐํ GPL์ด ๋์ด์ผ ํ๋ค. ๋ฐ๋ฉด, Kernel๊ณผ System Call์ ํตํด์ ์ ๊ทผํ๋ User Space์ Application๋ค์ ๋ผ์ด์ผ์ค ์ ์ฑ ์ ์์ ๋กญ๊ฒ ์ทจํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ , ๋คํํ๋ User Space์์ ๊ตฌ๋ํ๋ ์ฃผ์ Open Source Library๋ค์ 99%๊ฐ non-GPL๋ก ์ ์ธ ๋์ด ์์ด์, ์ด๋ค์ Linkํด์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์์ค ๊ณต๊ฐ์ ์๋ฌด๋ ์์ด์ง๋ค.
๋ํ์ ์ธ Linux Middlewares
Middleware or Library |
Function |
Licenses |
glibc |
Standard C library |
LGPL |
libg++ |
Standard C++ library |
LGPL |
Qt |
Graphics framework |
LGPL/Proprietary |
libjpeg |
Jpeg library |
IJG's free license |
ffmpeg |
Multimedia Framework (Codecs) |
LGPL |
Gstreamer |
Multimedia Framework |
LGPL |
libc
Android์์๋ Linux์์ ๋ํ์ ์ธ C Runtime์ธ glibc๋ uclibc๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , bionic libc๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ค์ LGPL๋ก ์ ์ธ๋์ด ์์ผ๋, ์ด๋ค ์ด์ ์์์ธ ์ง ๋ชฐ๋ผ๋, Android์์๋ ๋ผ์ด์ผ์ค๋ฌธ์ ๊ฐ ์ ํ ์๋ bionic์ ์ฌ์ฉํ์๋ค. ๋๋ฌธ์, gcc๋ก ์ปดํ์ผ๋๋ Native C์ฝ๋๋ฅผ ์์ฑํ๊ฒ ๋๋ฉด ๋ณต์กํ NDK(Native Development Kit) ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค.
Qt
QT๋ ํน์ดํ๊ฒ Dual ๋ผ์ด์ผ์ค ์ ์ฑ ์ ์ทจํ๊ณ ์๋ค. ๊ณผ๊ฑฐ๊น์ง๋ง ํด๋, OSI(Open Source Initiative)์ ์ธ์ ์ ๋ฐ์ง ๋ชปํ๋ QPL์ด๋ผ๋ ์คํ์์ค ์ ์ฑ ๊ณผ ํด๋ก์ฆ๋์์ค ์ ์ฑ ์ ๋๊ฐ์ง ์ ์ฑ ์ ์ทจํ๊ณ ์์๋ค. QT์ ์ ์๊ถ์์ธ Trolltech์ด 2008๋ Nokia์ ์ธ์๋๊ณ , 2009๋ ์์์ผ QT๋ฅผ LGPL QT์ Proprietary QT๋ก ๊ตฌ๋ถํ์๋ค.
libjpeg
libjpeg์ IJG(International JPEG Group)์ ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๋ฅธ๋ค (์๋ ๊ทธ๋ฆผ). ์์ค๋ฅผ ๊ณต๊ฐํ ์๋ฌด๋ ์๋ค.
Linux Device Drivers
Linux์์ Device Driver๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋๊ฐ์ง๊ฐ ์๋ค: Direct kernel driver & Binary module. ์ ์๋ Kernel itself๋ผ ํ ์ ์์ผ๋ฏ๋ก, GPL๋ก ์ ์ธ๋ Linux Kernel์ ๋ํ Derived works์ ๊ฐ์ฃผ๋๊ณ , ๋น์ฐํ GPL๋ก ๊ฐ์ด ๋ฐฐํฌ๋์ด์ผ ํ๋ค. ๋ฐ๋ฉด, ํ์๋ ๋ถํธ ์ดํ์ Device๊ฐ ์ฌ์ฉ๋ ๋ ๋ก๋๋๋ Module๋ฐฉ์์ด๋ค ? "Modules were originally conceived as inserted extentions to a running Linux kernel". ๋ง์ ๊ธฐ์ ๋ค์ด Module driver๋ฅผ ๋ฐ์ด๋๋ฆฌ ํํ๋ก ๋ฐฐํฌํ๊ณ ์์ค๋ฅผ ๊ณต๊ฐํ๊ณ ์์ง๋ ์์ผ๋ฉฐ, ํ์ฌ๋ก์๋ ์ ์ผํ๊ฒ Driver ์์ค๋ฅผ ๊ณต๊ฐํ์ง ์๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฃผ๋๊ณ ์์ผ๋, Linux community์์๋ ์ด ๋ฐฉ๋ฒ์ ๋๊ณ ๊ณ์ ๋ ผ์ ์ค์ด๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ด Ubuntu ๋ท๋ถ์์ Module๋ก ๋ก๋๋ Driver๋ค์ด๋ค. (console# lsmod)
Dynamically loadable driver module์ Memory allocation, bus enumeration, disable/enable interrupts & preemption, networking service, debugging ๋ฑ์ Kernel Service๋ฅผ ์ ๊ทผํด์ผ ํ๋ค. ์ฆ, Kernel๊ณผ ๋ถ๋ฆฌ๋ Standard external kernel symbol์ ํตํด์๋ง ์ ๊ทผํด์ผ ํจ์ ์๋ฏธํ๋ค. ์๋ ๊ทธ๋ฆผ์ ๋ด ๋ท๋ถ์์ ์ฌ์ฉ ๊ฐ๋ฅํ Standard external kernel symbol ๋ค์ด๋ค. (colsole# gedit /proc/kallsyms)
Module Driver์์๋ ์ฃผ์ํ ์ ์ด ์๋ค. GPL ์ ์ธ๋ Linux Driver๋ฅผ ์ฐธ๊ณ ํด์ ๊ฐ๋ฐํ๋ฉด, ์๋ฌด๋ฆฌ Module๋ก ๋ก๋ํ๋ค๊ณ ํด๋, Derived works๋ก ๊ฐ์ฃผ๋๋ฉฐ, ์ด๋ ์์ค๋ฅผ ๊ณต๊ฐํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค. Linux Driver๋ฅผ Module๋ก ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ From Scratch(๋งจ๋ ์ ํค๋ฉ)๋ก ๊ฐ๋ฐํด์ผ ํ๋ค.
๊ธฐ์ ์์ GPLed, LPGLed ์ํํธ์จ์ด์ ํ์ฉ๊ณผ ํ์ฉ ์ฌ์ค ๊ณต๊ฐ
๊ธฐ์ ์์ ์์ฉ์ผ๋ก GPL, LPGL ์ํํธ์จ์ด๋ฅผ ์์ฉ ์ ํ์ ํ์ฌ๋ฅผ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ์ด ๊ฒฝ์ฐ, ์ ์ ํ ๋ฐ์ ๊ฐ์ด, GPL, LGPL ์ฝ๋๋ฅผ ์ฌ์ฉํ์์ ๊ณต๊ฐํด์ผ ํ๋ค. ๋จ๋ง์ด๋ ์ํํธ์จ์ด ํจํค์ง์ ์ปค๋ค๋๊ฒ ์จ ๋ถ์ผ ํ์๋ ์์ง๋ง, ์ ์ด๋ ์ค๋ช ์, ๋ณด์ฆ์ ๋๋ ๋ถํธ ๋ฉ์์ง ๋ฑ์ ํ์ํด์ผ ํ๋ค. ๋, ์์ค๋ฅผ ๊ณต๊ฐํด์ผ ํ ์๋ฌด๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์จ/์คํ๋ผ์ธ ๋ฏธ๋์ด๋ฅผ ํตํด ์ ๊ณตํด์ผ ํ๋ค. ์ด๋ฌํ ์๋ฌด๋ฅผ ์ดํํ์ง ์์ ๊ฒฝ์ฐ์๋ FSF(Free Software Foundation)์ ๊ฐ์ ์คํ์์ค ๋ผ์ด์ผ์ค ์ ์ฑ ๊ฐ์์๋ค๋ก ๋ถํฐ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ๊ฒ ๋๋ค. FSF์ ๊ฐ์ ๊ธฐ๊ด์ด ์ค์ ๋ฒ์ ์ธ ํ๋์ ์ทจํ์ง๋ ์์ผ๋ฉฐ, ์ค์ ๋ฒ์ ์ธ ํ๋์ ์ทจํ ์ ์๋ ์ฃผ์ฒด๋ ํด๋น ์ํํธ์จ์ด์ ์ ์๊ถ์์ด๋ค. ๊ธฐ์ ์ด ์คํ์์ค ํ์ฉ ์ฌ์ค์ ๊ณต๊ฐํ์ง ์์์ ์๊ธฐ๋ ์ํ์ ์ฌ๊ฐํ "๋ช ์ ์ค์ถ"์ด๋ค.
์์ฆ์ Embedded System ์์๋ Linux๋ ์คํ์์ค ์ํํธ์จ์ด์ ํ์ฉ๋๊ฐ ์ ์ ๋์ ์ง๊ณ ์๋ค. ๊ตญ๋ด ๋๊ธฐ์ ๋ค์์๋ 3rd Party๋ก ๋ถํฐ ๊ณต๊ธ๋๋ ์๋ฃจ์ ๋ค์ ๋ํ ์คํ์์ค๊ฐ ๋ชฐ๊ณ ์ฌ ์ ์๋ ์ํ์ ์ฌ์ ์ ์ ๊ฑฐํ๊ณ ์ Blackduck็คพ์ ProtexIP์ ๊ฐ์ ์๋ฃจ์ ์ ํ์ฉํ๊ณ ์๋ค. ์ด ์๋ฃจ์ ์ ๊ณ์ ์ ๋ฐ์ดํธ๋๋ BlackDuck ๋ณธ์ฌ์ DB์๋ฒ์ ์ ๊ทผํ์ฌ, ๊ฒ์ฆํ๊ณ ์ ํ๋ ์ํํธ์จ์ด ํจํค์ง์ ์ํ(Violation) ์ฌ๋ถ๋ฅผ ๊ทธ๋ํฝ์ผ๋ก ํ์ํด ์ฃผ๊ณ , ๋์ํ ์ ์๋๋ก ๋์ ์ค๋ค. Source ๋ฟ๋ง ์๋๋ผ, Binary ๋ ์๋ฒฝํ์ง ์์ง๋ง Violation์ ์ก์ ๋ธ๋ค. ์ ์ฌ ํด๋ก๋ Palamida็คพ์ ์๋ฃจ์ ๋ ์๋ค.
RTOS์์์ Linux Driver ์ฐธ์กฐ ํ์ฉ
GPL ์ ์ธ๋ Linux Driver๋ฅผ ์ฐธ์กฐํ์ฌ RTOS Device Driver๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒ์ ์ ๋ ์ง์ํด์ผ ํ๋ค. Linux Driver๋ฅผ ์ฐธ์กฐํด์ RTOS Device Driver๋ฅผ ๋ง๋ค๊ณ ๋ง์น ์ง์ ๊ฐ๋ฐํ IP(์ค๊ณ์์ฐ)์ธ์ ๋ฐ์ด๋๋ฆฌ๋ก ์ ๊ณตํด์๋ ์ ๋ ์๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ์ํ์ด ์กด์ฌํ๋๋ฐ, ์ฒซ์งธ๋ ์์์์ ๋ํ ์ ์๊ถ๋ฒ ์๋ฐ์ด๋ฉฐ, ๋์งธ๋ Proprietary RTOS ์์ฒด, Runtime, Proprietary Application๊น์ง๋ ๋ชจ๋ GPL๋ก ๊ฐ์ฃผ๋์ด ํ์ฌ ๋ด์ ๋ชจ๋ Proprietary IP์ ๋ํ ์์ค๋ฅผ ๊ณต๊ฐํด์ผ ํด์ผ ํ๋ ์ํ์ด๋ค.
๊ฒฐ๋ก , ์์ฝ ์ ๋ฆฌ
์คํ์์ ํ์ฉ |
๋ผ์ด์ผ์ค |
์ค๋ช |
GPL ๋ณต์ฌ/์์ |
GPL |
์์ ๋ฌผ์ ์์ค์ฝ๋ ๊ณต๊ฐ |
GPL Library์ ๋งํฌ |
GPL |
Library์ ์์ ์ฝ๋ ๋ฟ๋ง ์๋๋ผ, ์ด์ ๋งํฌ๋๋ Application์ ์์ค์ฝ๋๋ ๊ณต๊ฐ (๋คํํ๋ 99%์ Linux Runtime Library๋ non-GPL๋ก ์ ์ธ๋์ด ์์) |
LGPL Library์ ๋งํฌ |
์ ํ |
์๋ฌด์ฌํญ ์์ |
Linux Kernel๊ณผ ์ ์์ ์ธ System Call์ ์ด์ฉํ๋ ์์ Application |
์ ํ |
์๋ฌด์ฌํญ ์์ |
Linux Kernel๊ณผ Direct Static Call์ ์ด์ฉํ๋ ์์ Application |
GPL |
Static link๋ฅผ ์ฌ์ฉํ๋ Linux device driver๋ Kernel์ Derived works๋ก ๊ฐ์ฃผ๋จ์ผ๋ก ์์ค ๊ณต๊ฐ |
Dynamically loadable driver module (standard kernel symbols/interfaces ๋ฅผ ํ์ฉํ๋ ๊ฒฝ์ฐ) |
์ ํ |
์ด๋ฏธ GPL๋ก ์ ์ธ๋ Driver code๋ฅผ ์ฐธ์กฐํ์ง ์์๋ค๋ฉด, ์์ค๊ณต๊ฐ ์๋ฌด ์์ |
์ฐธ๊ณ ๋ฌธํ
a. William Weinberg and Jason Wacha, Jan. 2004, MontaVista Software, Building Embedded Applications with GPL/LGPL Software
b. Wikipedia