C.3LegalClarificationsAbouttheKernelby
LinusTorvalds
ThisisafairlylongexplanationbyLinusTorvaldsregardingthekernel's
licensingandhowthislicensingappliestoforeigncode:
Feelfreetopost/addthis.Iwroteitsometimeagoforacorp
lawyerwhowonderedwhatthe"GPLexception"was.Namesandcom
removednotbecauseIthinktheyareashamed,butbecauseIdon
peopletoreadtoomuchintothem.
Linus
----Date:Fri,19Oct200113:16:45-0700(PDT)
From:LinusTorvalds<>
To:XxxxXxxxxx<>
Subject:Re:GPL,RichardStallman,andtheLinuxkernel
[Thisisnot,ofcourse,alegaldocument,butifyouwantto
toanybodyelse,feelfreetodoso.Andifyouwanttoargue
pointswithmeorpointsomehtingout,I'malwaysinterested.
point;-]
OnFri,19Oct2001,XxxxXxxxxxwrote:
>
>I'vebeenexchanginge-mailwithRichardStallmanforacoupl
>weeksaboutthefinerpointsoftheGPL.
Ifeelyourpain.
>I'vehavespenttimepouringthroughmailinglistarchives,u
>andwebsearchenginestofindoutwhat'salreadybeencovere
>yourstatementofallowingdynamicallyloadedkernelmodules
>proprietarycodetoco-existwiththeLinuxkernel.SofarI
>beenunabletofindanythingbeyondvaguestatementsattribut
>you.Iftheseissuesareaddressedsomewherealready,please
>me.
Well,itreallyboilsdowntotheequivalentof"_all_derived
havetobeGPL'd".Anexternalmoduledoesn'treallychangethe
thatrespect.
Thereare(mainlyhistorical)examplesofUNIXdevicedriversa
UNIXfilesystemsthatwerepre-existingpiecesofwork,andwhi
fairlywell-definedandclearinterfacesandthatIpersonally
reallyconsideranykindof"derivedwork"atall,andthatwer
acceptable.TheclearestexampleofthisisprobablytheAFS(t
Filesystem),buttherehavebeenvariousdevicedriversported
too.
>Issue#1
>========
>CurrentlytheGPLversion2licenseistheonlylicensecover
>Linuxkernel.Icannotfindanyalternativelicenseexplaini
>loadablekernelmoduleexceptionwhichmakesyourpositiondi
>tolegallyanalyze.
>
>Thereisanoteatthetopofwww.kernel.org/pub/linux/kernel
>butthatstates"userprograms"whichwouldclearlynotapply
>kernelmodules.
>
>Couldyouclarifyinwritingwhattheexceptionpreciselysta
Well,therereallyisnoexception.However,copyrightlawobvi
hingesonthedefinitionof"derivedwork",andassuchanythin
alwaysbearguedonthatpoint.
Ipersonallyconsideranythinga"derivedwork"thatneedsspec
inthekerneltofunctionwithLinux(ieitis_not_acceptable
smallpieceofGPL-codeasahookforthelargerpiece),astha
impliesthatthebiggermoduleneeds"help"fromthemainkerne
Similarly,Iconsideranythingthathasintimateknowledgeabou
internalstobeaderivedwork.
Whatisleftinthegrayareatendstobeclearlyseparatemodu
thathadalifeoutsideLinuxfromthebeginning,andthatdos
self-containtedthatdoesn'treallyhaveanyimpactontherest
kernel.Adevicedriverthatwasoriginallywrittenforsomethi
andthatdoesn'tneedanybutthestandardUNIXread/writekind
interfaces,forexample.
>Issue#2
>========
>I'vefoundstatementsattributedtoyouthatyouthinkonly1
>thecodeinthecurrentkernelwaswrittenbyyou.Bynotbe
>solecopyrightholderoftheLinuxkernel,astatedexception
>theGPLseemsinvalidunlessallkernelcopyrightholdersagr
>thisexception.HowdoestheexceptioncoverGPL'dkernelco
>writtenbyyou?Haseveryonecontributingtothekernelforf
>theircopyrighttoyouoragreedwiththeexception?
Well,seeaboveaboutthelackofexception,andaboutthefund
grayareain_any_copyrightissue.The"derivedwork"issueis
agrayarea,andIknowlawyersdon'tlikethem.Crazypeople(
judges)have,asweknow,claimedthatevenobviousspoofsofa
containnothingoftheoriginalworkitself,canberuledtobe
Idon'tholdviewsthatextreme,butatthesametimeIdocons
modulewrittenforLinuxandusingkernelinfrastructurestoge
done,evenifnotactuallycopyinganyexistingLinuxcode,to
derivedworkbydefault.You'dhavetohaveastrongcaseto_n
consideryourcodeaderivedwork..
>Issue#3
>========
>Thisissueisrelatedtoissue#1.Exactlywhatiscoveredb
>exception?Forexample,allcodeshippedwiththeLinuxkern
>archiveandtypicallyinstalledunder/usr/src/linux,allcod
>/usr/src/linuxexcept/usr/src/linux/drivers,orjustthecod
>the/usr/src/linux/kerneldirectory?
Seeabove,andIthinkyou'llseemypoint.
The"userprogram"exceptionisnotanexceptionatall,forex
justamoreclearlystatedlimitationonthe"derivedwork"iss
usestandardUNIXsystemcalls(withacceptedLinuxextensions)
programobviouslydoesn't"derive"fromthekernelitself.
Wheneveryoulinkintothekernel,eitherdirectlyorthrougha
thecaseisjusta_lot_moremuddy.Butasstated,bydefault
obviouslyderived-theveryfactthatyou_need_todosomethi
fundamentalaslinkingagainstthekernelverymucharguesthat
moduleisnotastand-alonething,regardlessofwherethemodu
codeitselfhascomefrom.
>Issue#4
>========
>ThislastissueisnotsomuchaissuefortheLinuxkernel
>exception,butarequestforcomment.
>
>RichardandIbothagreethata"plug-in"anda"dynamically
>loadedkernelmodule"areeffectivelythesameundertheGPL.
Agreed.
TheLinuxkernelmoduleshad(alongtimeago),amorelimited
andnotverymanyfunctionswereactuallyexported.Sofiveor
ago,wecouldbelievablyclaimthat"ifyouonlyusetheseNin
thatareexportedfromthestandardkernel,you'vekindofimpl
proventhatyoudonotneedthekernelinfrastructure".
Thatwasneverreallydocumentedeither(moreofaguidelinefo
otherswhenwelookedatthe"derivedwork"issue),andasmodu
more-and-moreusednotforexternalstuff,butjustfordynamic
standardlinuxmodulesthatweredistributedaspartoftheker
the"limitedinterfaces"argumentisnolongeraverygoodguid
"derivedwork".
Sothesedays,weexportmanyinternalinterfaces,notbecause
thinkthattheywould"taint"thelinker,butsimplybecauseit
tododynamicrun-timeloadingofmodulesevenwithstandardke
modulesthat_are_supposedtoknowalotaboutkernelinternal
obviously"derivedworks"..
>Howeverwedisagreethataplug-inforaGPL'dprogramfalls
>undertheGPLasassertedintheGPLFAQfoundintheanswer:
> />
Ithinkyoureallyjustdisagreeonwhatisderived,andwhati
Richardisveryextreme:_anything_thatlinksisderived,rega
whattheargumentsagainstitare.I'mlessextreme,andIbet
lessso(atleastyoumightliketoargueso).
>Myassertionisthatplug-insarewrittentoaninterface,no
>program.SinceinterfacesarenotGPL'd,aplug-incannotbe
>untiltheplug-inandprogramareplacedtogetherandrun.T
>donebytheenduser,nottheplug-increator.
Iagree,butalsodisrespectfullydisagree;)
It'sanissueofwhata"plug-in"is-isitawayfortheprog
internallyloadmoremodulesasitneedsthem,orisit_meant_
public,publishedinterface.
Forexample,the"systemcall"interfacecouldbeconsidereda
interface",andrunningausermodeprogramunderLinuxcoulde
construedasrunninga"plung-in"fortheLinuxkernel.No?
Andthere,Iobviouslyabsolutelyagreewithyou100%:theinte
published,andit's_meant_forexternalandindependentusers.
interfacethatwegotogreatlengthstopreserveaswellaswe
it'saninterfacethatisdesignedtobeindependentofkernel
Butmaybesomebodywrotehisprogramwiththeintentiontodyna
load"actors"astheywereneeded,asawaytomaintainagood
andtotrytokeeptheproblemspaceswell-defined.Inthatcas
"plug-in"maytechnicallyfollowallthesamerulesasthesyst
interface,eventhoughtheauthordoesn'tintenditthatway.
SoIthinkit'stoalargedegreeamatterofintent,butitco
arguablyalsobeconsideredamatterofstabilityanddocumenta
"requirerecompilationoftheplug-inbetweenversionchanges"
toimplythatit'saninternalinterface,while"documentedbin
compatibilityacrossmanyreleases"impliesamorestableexter
interface,andlessofaderivedwork)
Doesthatmakesensetoyou?
>IaskedRichardtocommentonseveralscenariosinvolvingplu
>explainwhetherornottheywereinviolationoftheGPL.So
>asonlyaddressedoneandhaseffectivelyadmittedahole.T
>theoneIaskedthathe'srespondedto:
>[A]non-GPL'dplug-inwriterwritesaplug-inforanon-G
>program.AnotherauthorwritesaGPL'dprogrammakingth
>firstauthor'splug-inscompatiblewithhisprogram.Are
>theplug-inauthor'splug-insnowretroactivelyrequired
>GPL'd?
>
>Hisresponse:
>No,becausetheplug-inwasnotwrittentoextendthispr
>
>IfinditsuspiciousthatwhetherornottheGPLwouldapply
>plug-independsonthemindsetoftheauthor.
Theabovemakesnosenseifyouthinkofitasa"plugin"issu
makessenseifyouthinkofitasa"derivedwork"issue,along
taking"intent"intoaccount.
Iknowlawyerstendtonotlikethenotionof"intent",because
inanotherwholerangeofgrayareas,butit'sobviouslyalega
Ok,enoughblatheringfromme.I'djustliketofinishoffwith
comments,justtoclarifymypersonalstand:
-I'mobviouslynottheonlycopyrightholderofLinux,andI
purposeforseveralreasons.OnereasonisjustbecauseIha
paperworkandothercr*pthatgoesalongwithcopyrightassi
AnotheristhatIdon'tmuchlikecopyrightassignmentsata
authoristheauthor,andhemaybeboundbymyrequirement
butthatdoesn'tmeanthatheshouldgivehiscopyrighttom
Athirdreason,andthemostrelevantreasonhere,isthatI
peopleto_know_thatIcannotcontrolthesources.Icanwr
notetosaythat"foruseXXX,IdonotconsidermoduleYYY
derivedworkofmykernel",butthatwouldnotreallymatter
AnyotherLinuxcopyrightholdermightstillsueyou.
Thisthirdreasoniswhatmakespeoplewhootherwisemightn
realizethatIcannotscrewpeopleover.Iamboundbythes
agreementthatIrequireofeverybodyelse,andtheonlyspe
Ireallyhaveisatotallynon-legalissue:peopletrustme.
(Yes,IrealizethatIprobablywouldenduphavingmoreleg
thanmost,evenapartfromthefactthatIstillamthelarg
copyrightholder,ifonlybecauseofappearances)
-Idon'treallycareaboutcopyrightlawitself.WhatIcare
ownmorals.WhetherI'deversuesomebodyornot(andquite
it'sthelastthingIeverwanttodo-ifIneverendupta
lawyersinaprofessionalcontext,I'llbeperfectlyhappy.
disrespectintended)willbeentirelyuptowhetherIconsid
peopledotome"moral"ornot.Whichiswhyintentmatters
lot-boththeintentoftheperson/corporationdoignthein
_and_theintentofmeandothersinissueslikethemodule
interface.
Anotherwayofputtingthis:Idon'tcareabout"legallooph
word-wrangling.
-Finally:Idon'ttrusttheFSF.IliketheGPLalot-altho
necessarilyasalegalpieceofpaper,butmoreasanintent
explainswhy,ifyou'velookedattheLinuxCOPYINGfile,yo
noticedtheexplicitcommentabout"only_this_particularv
theGPLcoversthekernelbydefault".
That'sbecauseIagreewiththeGPLas-is,butIdonotagre
FSFonmanyothermatters.Idon'tlikesoftwarepatentsmuc
example,butIdonotwantthecodeIwritetobeusedasa
againstcompaniesthathavethem.TheFSFhaslongbeendisc
isdraftingthe"nextgeneration"GPL,andtheygenerallysu
peopleusingtheGPLshouldsay"v2oratyourchoiceanyla
version".
Linuxdoesn'tdothat.TheLinuxkernelisv2ONLY,apartfr
fileswheretheauthorputintheFSFextension(andseeabo
copyrightassignmentswhyIwouldneverremovesuchanexten
The"v2only"issuemightchangesomeday,butonlyafteralld
copyrightholdersagreeonit,andonlyafterwe'veseenwhatt
suggests.FromwhatI'veseensofarfromtheFSFdrafts,we're
tochangeourv2-onlystance,buttheremightofcoursebelega
whywe'dhavetodosomethinglikeit(iesomebodychallenging
incourt,andpartofittobefoundunenforceableorsimilarw
obviouslymeanthatwe'dhavetoreconsiderthelicense).
Linus
PS.Historically,binary-onlymoduleshavenotworkedwellunde
quiteregardlessofanycopyrightissues.Thekerneljustdevel
quicklyforbinarymodulestoworkwell,andnobodyreallysupp
CompanieslikeRedHatetctendtorefusetohaveanythingtodo
binarymodules,becauseifsomethinggoeswrongthereisnothin
doaboutit.SoIjustwantedtoletyouknowthatthe_legal_
justthebeginning.Eventhoughyouprobablydon'tpersonallyc