Tải bản đầy đủ (.pdf) (9 trang)

OReilly Building Embedded Linux Systems Apr 2003 ISBN 059600222X

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (99.79 KB, 9 trang )

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




×