A GPL és a bináris kernel modulok

Címkék

Egy nagyon-nagyon hosszú thread kezdődött a LKML-en a Linux kernel és a csak bináris formában terjesztett (binary only) kernel modulok kapcsolatáról.

Az köztudott, hogy a Linux kernel terjesztése a GNU General Public License feltételei szerint történik. A Linux kernel mindig is GPL-es volt, eltekintve attól a rövid időtől, amely közvetlenül az első kiadása után 1991-ben volt. Az Linux kernel első licence sokkal kötöttebb volt. Kimondta, hogy a forrásnak minden körülmények között elérhetőnek kell lennie, és ahogy a Linux kernelből nem lehet pénzt keresni.Linus néhány hónap múlva megváltoztatta az eredeti licencet, és helyette a GPL-t alkalmazta. A GPL nem tiltja a GPL-es programok pénzért való terjesztését. A Linux kernel azóta is a GPL alatt van terjesztve.

Köszönhetően a GPL-nek, a Linux kernelből származtatott összes forráskódnak is szabadon elérhetőnek kell lennie a GPL licenc alatt. Ezért sokan megkérdőjelezték a csak bináris formában terjesztett kernelmodulok (NVidia, ATi, winmodemek és még sorolhatnám) legalitását, hiszen ezekhez nincsen forráskód.

A hosszú threadben Linus is kifejti véleményét a dologgal kapcsolatban. Szerinte van egy szürke területe ennek a dolognak. Szerinte azok a driverek, amelyek eredetileg nem a Linux kernelhez, hanem más operációs rendszerhez készültek (vagyis nem nevezhetők tisztán a Linux kernelből származtatott eredetűnek) ide tartoznak.

AZ érdekes threadet megtalálod itt kezdődik.

Hozzászólások

> ... a csak bináris formában terjesztett kernelmodulok (NVidia, ATi, winmodemek és még sorolhatnám)

winmodemek terén nem vagyok képben de ez egy hülyeség!

Az nvidia és az ATI egy open source kernel modult terjeszt a cuccaihoz! A driver a closed source, ami az open source-ban terjesztett kernelmodul által nyújtott interfészt használja.

Nem tudom ki írta, de 1. FUD, 2. eszetlen nagy barom lehetett...

Mellesleg ha nem forrásban terjesztenék, akkor hogy tudták volna pl. az nvidia drivereket 2.6-hoz portolni nem hivatalos források???

Ez nem teljesen igy van. Nezzuk az NVidia drivert. Sok egyeb mellett all az alabbiakbol:

-rwxr-xr-x 1 root root 486116 2003-07-17 04:56 nvidia_drv.o

ezt valoban a /X11R6/lib/modules/drivers konyvtarba masolja, es az XFree hasznalja. Van meg egy glx resze is, de ezzel ne foglalkozzunk.

Viszont az NVidia binaris modul ettol meg nem mukodik, hanem kell egy kernel modul is, ami nelkul nem fog menni. Ezt a drivert a NVIDIA-Linux-x86-1.0-4496-pkg2-test5/usr/src/nv konyvtaraban levo fileokbol forditja le. Ebben a konyvtarban egy rakas .c meg .h file van, ami nem GPL-es hanem az NVidia sajat licence alatta van terjesztve. Igaz ez nyilt forras, de:

Amitol az egesz igazan mukodik, az a majd 2MB-os

-rw-r--r-- 1 root root 1860732 2003-07-17 04:56 nv-kernel.o

file nv-kernel.o

nv-kernel.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped

ami egy object kod, ami hozza a van linkelve a glue-hez, amit tudsz portolni. Tehat van egy binaris kernelmodul, es van egy ragaszto felulet, ami lehetove teszi, hogy portolni lehessen. Ez ez a binaris object file a gond. Nem a tobbi.

Sziasztok!

Ahhoz nem kell szerintem sok esz, hogy az ember belassa, hogy egyszeruen nehez megoldani, hogy ne menjenek binaris driverek (vagy driver reszkodok) a kernelbe.

Ott van pont az ATI es az NVIDIA hw technologiai haboruja. Ha kiadnak az oszes optimalizalt kodot, a konkurrencia kozelebb lenne a hw-hez. Persze ezt csak laikuskent irom, de gondolom hogy igy van. Vagy peldaul el tudjatok kepzelni, hogy az elob emlitett cegek kiadnak a Macrovision forrasat, hogy mindenki atvagja az MPAA-t? Jojo en is atvagom, de elvileg.

Szoval lehet hogy en nem ertem pontosan a para okat, akkor kovezzetek meg.

--
zg