国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

從軟件源代碼的技術特征看開源軟件與反向工程的法律屬性

2010-01-13 03:48:58
武漢紡織大學學報 2010年6期
關鍵詞:源代碼開源許可

趙 麗

(武漢紡織大學 人文社科學院,湖北武漢 430073)

從軟件源代碼的技術特征看開源軟件與反向工程的法律屬性

趙 麗

(武漢紡織大學 人文社科學院,湖北武漢 430073)

源代碼是計算機軟件的技術核心,是軟件技術思想的直接體現(xiàn)。理清源代碼的技術特征和法律屬性,便于我們理解在現(xiàn)有的以版權保護為主,商業(yè)秘密法保護為輔的知識產權保護模式下,開源軟件的法律性質以及反向工程的合法性問題。

計算機軟件;源代碼;開源軟件;反向工程

1 軟件源代碼的編碼過程及技術地位

軟件是指揮計算機解決某問題而編寫的程序及相關文檔的總稱。計算機程序通常包括源程序和目標程序,又稱源代碼和目標代碼。二者雖然表達形式不同,但內容本質相同。因此,我國《計算機軟件保護條例》明確規(guī)定二者屬于同一軟件作品。[1]

然而,二者所采用的編碼語言、成碼過程、針對對象及用途都有明顯差別:源代碼編寫使用的是類似于自然語言和數(shù)學公式的高級語言或匯編語言,如C、Java、Basic、Fortran語言等。其主要面向編程人員,可被專業(yè)人員閱讀修改,但不能直接被計算機識別和執(zhí)行,不依賴于具體的計算機硬件。在不同情況下,程序員可根據(jù)自身的國籍、語種、程序開發(fā)的技術要求等選擇最適合的一種或幾種高級語言編寫源代碼,以便于其技術思想的表達和開發(fā)。目標代碼則以0或1的二進制編碼形式表示,能直接指揮計算機各種硬件如存儲器、處理器、輸入設備、運算器、控制器等執(zhí)行各項操作,實現(xiàn)一定功能。它通常無需編寫,只需由開發(fā)工具包①提供的翻譯程序將源代碼翻譯而成。它直接面向機器,可被計算機識別并執(zhí)行,但不能被人閱讀和修改。一般而言,一個源代碼編譯得到的目標代碼唯一,但一個目標代碼卻可能對應多個源代碼。軟件開發(fā)完畢,最終用戶只能獲得目標代碼和用戶手冊,除非有特殊約定或公開許可②,源代碼保密。

如下圖所示,軟件開發(fā)首先從開發(fā)人員的技術思想開始,而這種技術思想、結構又需要且只能通過源代碼的編寫來實現(xiàn)。技術開發(fā)過程,即開發(fā)人員分析用戶需要和技術要求,明確軟件預期功能和用途,運用專業(yè)技術知識,設計算法、確定結構,選擇高級語言編制源代碼的過程。此后,利用翻譯程序將源代碼翻譯成目標代碼,由計算機自動識別運行。初次試運行結束,開發(fā)人員根據(jù)運行結果,調試查找問題,修改源代碼,再次投入翻譯、運行。一個新程序開發(fā)成功往往需要多次試運行修改,直至獲得最佳程序方案,投入使用。A.伯特蘭先生曾將這一循環(huán)試驗過程劃分為六個階段:設想—算法—流程圖或解決方案—源代碼—匯編—目標代碼。[2](P74)當然,這其中也包含著開發(fā)失敗,程序預期功能最終不能實現(xiàn)的風險。

因此,軟件開發(fā)的關鍵,在于分析用戶需求,編制源代碼階段。源代碼直接反映了開發(fā)者的思想和結構設計,決定了軟件的技術含量和智力水平。獲取和閱讀源代碼是用戶及其它開發(fā)者獲知軟件技術的必然途徑,尤其對后者而言,更是借鑒現(xiàn)有技術,進行改進和創(chuàng)新的必由之路。

明晰了軟件源代碼的技術功能與特征后,運用現(xiàn)有的知識產權保護模式——即以版權法保護為主,輔之以商業(yè)秘密法的兜底保護,也就不難合理的解釋由其引發(fā)的開源軟件和反向工程的合法性問題了。

2 軟件源代碼的技術特征及法律要求

2.1 源代碼表達的文字性與功能的技術性

首先,計算機軟件本身兼具表達的文字性和技術性的二重屬性。一方面,源代碼通過機器編譯執(zhí)行,可使計算機按指定數(shù)學算法進行運算以達到特定功能,解決某一實際問題,這種功能顯然屬于一種“思想”。從本質上說,軟件是“為實現(xiàn)或解決某一特定問題的一系列創(chuàng)造性思維的過程,是將少數(shù)專家掌握的特定知識從這些人的頭腦中游離出來,以一定的載體存在,成為不必完全掌握這些專門知識的廣泛社會公眾都能使用的工具”[3]。另一方面,源代碼用高級語言編寫,又符合“文字作品”的外在特征。

其次,源代碼的實用性并不在于表達,而在于程序的構思和功能的實現(xiàn)。因此軟件開發(fā)和應用具有很強的工業(yè)產權性。對此,美國學者曾給與精辟論述:“對于法律評論者和立法者與司法者來說,計算機軟件具有一系列非常重要但又難以理解的特征。首先,軟件的價值主要在于它的運行而不在于它的文本。其次,軟件的文本與軟件的運行是相互獨立的。第三,軟件事實上是由文本(源代碼和目標代碼)媒介所形成的機器(產生某些實用的功能,也即運行)。體現(xiàn)在軟件中的工程設計,通常具有疊加創(chuàng)新的特征。這是由軟件工程技術和大量的實用技巧所造成的?!盵4](P2308)

2.2 源代碼作品表達和思想的創(chuàng)造性都相對較低

首先,表達的多樣性和創(chuàng)造性并非源代碼編寫的創(chuàng)作目的。源代碼編寫并非為訴諸人的視覺閱讀和感知,給人帶來精神或情感享受。因此,源代碼完全不注重表達形式,如何驅動計算機更具有效率的運作,實現(xiàn)特定功能才是其價值所在。

其次,極其有限的表達方式無疑會限制源代碼的創(chuàng)造性。源代碼編制過程中,為維持互換性及追求效率,往往只能采用極其有限的表達方式,而編碼語言和基礎語法、結構的局限性也限制了表達的選擇。有的程序表達方式甚至只有一種,若給予這種表達方式以著作權保護,則意味著一個人或極少數(shù)人可以長期獨占創(chuàng)意(idea)。[5](P210)

最后,功能的普及決定了大多數(shù)軟件技術新穎性含量較低,無法達到專利審查“三性”要求,專利保護覆蓋率不可能很高。然而,源代碼的結構、順序、組織(Structure、Sequence and Organization,簡稱SSO)又的確體現(xiàn)了編程人員獨特的設計思想,對這種思想,版權法斷然拒絕保護,對軟件開發(fā)者有失公平,不利于軟件的創(chuàng)新。

2.3 源代碼不強制公開

源代碼是軟件技術的核心,但現(xiàn)有著作權法及專利法均無強制公開的要求。在著作權法自動保護原則下,源代碼一經(jīng)獨立創(chuàng)作編碼完成,無論發(fā)表與否,都可作為“作品”自動獲得保護。而根據(jù)目前采用軟件專利保護國家的專利申請要求,“專利權保護計算機軟件之實施,專利的撰寫若能使熟悉該項技藝的人士得以據(jù)以實施,即為充分揭露,無需寫出原始碼(源代碼)”[6](P45)。只有“在某些情況下,例如在使用自動編寫程序代碼時”,才需要“在權利要求中使用程序設計語言,因為這種程序源代碼代表了一種‘足夠高的語言和描述性標識符’使其能夠為該技術領域的其他人所完全理解”[7](P320-321)。這就導致了專利權人實質上壟斷權利的同時保持技術的秘密狀態(tài),非權利人要獲取、閱讀源代碼“作品”必須通過反匯編、反編譯等反向技術工程方可完成。

2.4 源代碼易于復制

軟件的易復制性已成為無可爭議的事實,無論源代碼或目標代碼,一經(jīng)獲得即可輕易廉價復制,且很容易從一種高級語言轉換為另一種,盜版的隱蔽性強,很難發(fā)現(xiàn)或取證。對此,“沒有多少人會否認有必要制止這種復制行為,以及這種直接翻譯行為,因為這類行為將從根本上動搖軟件開發(fā)者開發(fā)的積極性?!盵8](P68)

軟件源代碼的上述特性一方面造成了其知識產權保護的諸多困境,專利法保護遭遇理念沖突,而單一的版權法或商業(yè)秘密發(fā)保護則均存在各自的漏洞和弊端,因此,目前各國比較通行的做法是以版權保護為主——主要保護源代碼的表達形式,輔之以商業(yè)秘密法保護——以權利人的技術保密手段為前提,保護源代碼的技術思想;另一方面,隨著軟件技術以及開發(fā)理念和方式的不斷發(fā)展,實踐中的一些嶄新的做法開始出現(xiàn),需要我們以源代碼的技術和法律屬性入手,以一種全面的思維去解釋其中的法律問題。

3 反向工程的合法性問題——源代碼著作權的合理使用

簡單說來,反向工程就是前文介紹的軟件開發(fā)過程的逆向運行。是從軟件的目標代碼入手,通過反匯編工具將目標代碼反向轉化為一種中間代碼——“匯編代碼”(assembly code),而后分析、編譯成源代碼,以獲取其結構、順序、組織的過程③。這個過程產生的源代碼并非與軟件編寫的源代碼完全一致,相反,它要粗糙的多。

國內外關于反向工程合法性問題的爭議由來已久。否定者以反向過程中不可避免的復制行為以及商業(yè)目的為由,認為其構成版權侵權。[9](P106-108)肯定者以美國《數(shù)字千年版權保護法》、歐共體《計算機程序保護指令》、俄羅斯《聯(lián)邦著作權法和鄰接權法》等國家和地區(qū)的相關規(guī)定④為例證,認為它是一種科研活動,其對源代碼和目標代碼的復制屬于合理使用,軟件的兼容性和軟件技術發(fā)展的疊加效力使得反向工程成為必要。

事實上,由于版權只保護作品的表達,反向工程獲取源代碼中的技術思想的目的并不夠成版權侵權;至于反向工程完成后,所獲取的源代碼是否一定會被用于新軟件的編碼之中,構成演繹作品,用于商業(yè)用途,這屬于反向工程的后續(xù)利用,與反向工程本身無關。因此,其合法與否最終歸結到反向工程過程中必要的復制、閱讀行為是否合法的問題,即反向工程中的復制是否屬于合理使用的問題。

合理使用,是指在特定條件下,法律允許他人自由使用享有著作權的作品,而不必征得權利人的許可[10](P108)。版權法規(guī)定合理使用事項大多出于社會公益的 目的,為促進文化的普及和借鑒,體現(xiàn)了版權壟斷與信息分享之間的平衡。雖然目前世界各國著作權法中均列舉了一些合理使用的情況,但都不可能窮盡。事實上,合理使用的范圍是一個隨社會發(fā)展而調整的變量,它既是社會發(fā)展的要求也是利益權衡的結果。

反向工程唯一的目的是為了獲得源代碼,研究其技術思想。誠如前文所述,由于軟件源代碼一般不公開,反向工程是唯一一種不違反商業(yè)秘密法獲得源代碼的途徑。既然版權法賦予讀者合法“閱讀”的權利,那么就不應當同時將其唯一的閱讀途徑規(guī)定為違法。正因為如此,美國第九巡回上訴法院在Sega Enterprises Ltd訴Accolade,Inc.一案的上訴審中確定:為了解程序設計的思想和功能概念,當進行反匯編行為是接觸程序中不受版權保護方面的唯一方法時,則這種反匯編屬于合理使用。[11]該院于 2000 年 Sony Computer Entertainment, Inc. v.Connectix Corp.一案中更進一步明確,反向工程中的中間過程的復制行為是“了解原軟件中包含的那些不受保護的因素所必需的”[12],因此構成合理使用。

此外,還必須將反向工程本身與反向工程的后續(xù)利用區(qū)分開來。反向工程,僅指利用技術手段破譯權利人的保密措施用目標代碼反編譯獲取源代碼的這一過程[13];而獲取源代碼之后的具體利用,則屬于反向工程的后續(xù)利用。

就反向工程本身而言,在商業(yè)秘密法上,其屬于合法獲得,不構成侵權;而在版權法上,則是他人對源代碼作品的合法“閱讀”,其間必要的臨時性復制,屬于對源代碼和目標代碼的合理使用,亦不夠成侵權的理由。

但反向工程本身合法,并不意味著其后續(xù)利用也一定不構成侵權。若采用反向工程的目的僅為了閱讀,用于教學或科研,不對源代碼進行任何形式的修改和利用,則當然無侵權的可能。但事實是,第三人耗費精力采取反向工程,多半是為了自己新的軟件的開發(fā)。至此,商業(yè)秘密法的保護效力已告終結,而版權法則仍發(fā)揮著作用:1、若后續(xù)利用時,新編程序直接復制了原軟件源代碼足夠多的部分或全部,構成表達上的實質相似,就會導致版權侵權。2、若完全根據(jù)其技術思想,不加入任何原創(chuàng)因素,僅進行表達形式的轉換,如換用另一種編碼語言,則構成演繹作品,如同不經(jīng)原作者同意將其英文小說翻譯成中文,當然構成侵權。3、若在后續(xù)編碼中利用了原軟件代碼的技術思想,但非完全照搬,而是采用新的表達編寫出更優(yōu)的兼容性或競爭性軟件,則不構成侵權。某些美國公司為防止親自實施反向工程的人受原軟件影響,不自覺的在新的編碼中使用其中的內容,將實施反向工程的人與重新編碼的人完全隔離,后者僅在理解了前者對原軟件技術思想的表述后開始獨立編碼,這就完全排除了版權侵權的可能性。

4 開源軟件的法律效力——源代碼著作權的有條件公開授權

開源軟件(Open Source Software)又稱為自由軟件,開放源代碼首創(chuàng)行動組織(Open Source Initiative Association,OSIA)將其定義為:其軟件權利人允許社會公眾自由地復制運行、自由地發(fā)行傳播;強調必須公開軟件的源代碼以允許人們自由地研究、修改或制作派生性版本,并允許人們自由地發(fā)行傳播修改版本或派生性版本的軟件⑤。它以公開源代碼為主要特征,旨在對抗以微軟為首的商業(yè)軟件不公開源代碼的版權保護模式,避免壟斷,加強軟件技術的交流與合作。從產生到現(xiàn)在,開源軟件的影響越來越深廣,種類已有幾千種,代表有操作系統(tǒng)GNU Linux、語言系統(tǒng)GNU C++、數(shù)據(jù)庫管理系統(tǒng)Ingress等,對傳統(tǒng)的商業(yè)軟件構成了巨大沖擊。

開源軟件雖以“Copyleft”自我標榜,但實際上,其并非不受版權保護的公共軟件。基本上所有的開源軟件在發(fā)布的同時,都會附帶一個許可協(xié)議,如GPL、LGPL、MPL、NPL、BSD等,規(guī)定許可人和被許可人的權利與義務,并把這些權利義務轉化為確定的責任。

首先,開放源代碼并授權他人的前提是開源者本身對源代碼享有版權。

開源軟件的所有許可協(xié)議都必須規(guī)定將許可人(包括最初許可人和再許可人)軟件的復制、修改、發(fā)布及運行、演示等權利授予被許可人,這也是軟件源代碼能夠為權利人以外的人獲得并使用的保證。然而,這種授權行為的前提是,許可人自身對軟件享有版權,如果許可人將其不享有版權的軟件發(fā)布并授予他人上述權利,即為侵犯版權的行為。有些許可證明確規(guī)定許可人應保證其發(fā)布軟件的版權。如IBM許可證(IBM Public License Version 1.0)第2條d款即明確規(guī)定,發(fā)布者應保證其享有充分的版權以進行許可證規(guī)定的版權授權。[14]

其次,開源軟件版權人仍是依據(jù)版權法取得各項人身權利和財產權利,并依靠版權法和版權制度來保障自身利益的實現(xiàn)。

事實上,權利人開放源代碼的行為也是一種授權,只不過與普通商業(yè)軟件單獨有償授權不同的是,其授權的對象是社會公眾,是任何愿意接受公共許可協(xié)議條件的人。這實質上正是著作權人行使其著作權的特殊方式,是其所享有的著作權法律效力的體現(xiàn)。同時,開源軟件公開源代碼,允許公眾復制、修改和使用,并不排斥開發(fā)者從中獲取經(jīng)濟利益。權利人雖然不能再像商業(yè)軟件一樣通過對軟件復制品的銷售以及對源代碼的有償許可使用來獲利,但仍可以從該軟件配套的技術服務和信息服務中謀求收益。GPL(General Public License)允許也其對發(fā)布源代碼的服務收取一定的費用。況且,當商業(yè)軟件嫁接到開源軟件上時,并不要求商業(yè)軟件也必須公開源代碼,因此,著作權人完全可以通過開源軟件作為誘因,促進商業(yè)軟件利益的實現(xiàn)。此外,開源軟件的著作權人雖然通過公共許可,放棄了某些經(jīng)濟利益,但是,其享有的人身權利仍然受到著作權法的保護,作者的署名權不得侵犯。

最后,開源軟件法律效力的實質是著作權人有條件的公開授權。

開源軟件權利人一改商業(yè)軟件的運營模式,不是將源代碼作為商業(yè)秘密嚴加保密,而是通過網(wǎng)絡向社會公眾公布,將源代碼版權的復制、修改、演繹、發(fā)布權利授予社會公眾,并通過許可證將開源軟件的初次發(fā)布權授予了所有愿意接受許可證內容的人。通常開源軟件授予社會公眾的權利包括:(1)為了任何目的運行該程序。(2)自由獲取源代碼,并在此基礎上研究其技術內核。(3)為了個人目的修改或改進該程序源代碼。(4)自由散發(fā)該源代碼的復制件。但是,這種授權不是無條件無限制的。GPL協(xié)議中明確規(guī)定:“除非你按許可證提出的要求去做,否則你不能復制、修改、轉發(fā)許可證和發(fā)布程序。任何試圖用其它方式復制、修改、轉發(fā)許可證和發(fā)布程序是無效的。”許可證中所規(guī)定的條件包括:(1)用戶在復制并向他人散發(fā)源代碼和一切派生工作時不得收費(除去必要的工本費),不得附加任何其它條件,并必須附帶GPL協(xié)議。(3)必須保證對開源軟件源代碼的任何改進都必須向社會公開。(3)用戶修改或使用開源軟件的源代碼演繹而形成的新程序也必須開源。

由此可見,開源軟件并不是對源代碼著作權的完全放棄,相反,它是在承認軟件源代碼著作權基礎上的有條件授權。它以一種特殊的開發(fā)模式,實現(xiàn)了軟件源代碼的共享,并享受著因開放源代碼而帶來的益處:由公眾共同開發(fā)和改進,讓所有的使用者參與到該軟件的后續(xù)維護和更新之中。它用公共許可協(xié)議實現(xiàn)了源代碼在編制者和使用者之間的自由傳播,并利用版權法的保護使這種自由傳播固化成一種不允許任何人附加任何條件加以限制的權利,從而保證了源代碼的始終公開。[15]

注釋:

① 開發(fā)工具包是一個系統(tǒng)軟件,實現(xiàn)利用計算機資源,使用、管理、操作維護計算機編制的程序的功能。每種高級語言都有一個開發(fā)工具包,為程序員提供編寫源程序的環(huán)境,并將源程序翻譯成目標程序進行調試、運行。

② 如開源軟件協(xié)議(GPL)的公開許可開放源代碼條款。

③ 早期的反向工程還采用一種原始的“黑盒分析(Black Box Analysis)”的方法,但由于其效率低,準確度差,現(xiàn)已基本無人采用。參見:Barbara J. Vining, “The Future of Computer Software Reverse Engineering War : Excessive Protection v. Innovation”, 67 Brooklyn Law Review(2001).p567.

④ 上述三部法律分別參見:Digital Millennium Copyright Act. 17U.S. C.1201(2000);韋之.歐共體計算機程序保護指令評介[J].中外法學. 1998(6);孫海龍、李樺佩.軟件反向工程法律責任研究[J].五邑大學學報.2001(3).

⑤“Free Software refers to the users’ freedom to run, copy, distribute,study and improve the software.”見自由軟件組織網(wǎng)站:http:// www. gnu.org/philosophy/free-sw.html

[1] 計算機軟件保護條例(2001年12月20日公布),第三條,第一款[S] .

[2] [西班牙]德利亞.利普西克.著作權與鄰接權[M]. 北京:中國對外翻譯出版公司,2000.

[3] 應明.計算機程序專利保護在美國的發(fā)展趨勢[J].知識產權,2001,(1) .

[4] Pamela Samuelson,Randall Davis,Mitchell D. Kapor & J.H.Reichamn:A Manifest Concerning the Legal Protection of the Computer Programs[J],1994,94(1).

[5] [日]土肥一史.知的財產法入門[M]. 北京:中央經(jīng)濟出版社,1998.

[6] 劉尚志、陳佳麟.電子商務與計算機軟件之專利保護——發(fā)展、分析、創(chuàng)新與策略[M].北京:中國政法大學出版社,2004.

[7] [印]甘古力.知識產權——釋放知識經(jīng)濟的能量[M].宋建華、姜丹明、張永華譯. 北京:知識產權出版社,2004.

[8] 吳漢東,胡開忠,等. 走向知識經(jīng)濟時代的知識產權法[M]. 北京:法律出版社,2002.

[9] 黃勤南, 尉曉珂. 計算機軟件知識產權保護[M]. 北京:專利文獻出版社,1999.

[10] 吳漢東. 知識產權法[M].北京:中國政法大學出版社,1999.

[11] Sega Enters. Ltd. v. Accolade[Z]. Inc.,977 F.2d 1510, 1992.

[12] Sony Computer Entm’t,Inc. v. Connectix Corp[Z]. 203F.3d 596, 2000.

[13] Rohan Mishra : Reverse Engineering in Japan and the Global Trend Towards Interoperability[EB/OL]. http://www.meudoch.deu.au/ elaw/issues/ v4n2/mishra42.html, 2010.

[14] See IBM Public License Version 1.0[EB/OL]. http://www.opensource.org/license/ibmpl.php, 2010.

[15] 張平,馬驍. 開源軟件對知識產權制度的批判與兼容(二)——開源軟件許可證的比較研究[J]. 科技與法律. 2004,(2): 47.

On the Intellectual Protection of the Software Source Code based on its technical features

ZHAO Li
(Institute of Humanities and Social Sciences, Wuhan Textile University, Wuhan Hubei 430073, China)

The software Source code, which directly reflects the main creative idea of the programmer,is the technological core in the process of programming. Undersdanding the technical and legal features of the source codes can help to identify the legitimacy of the reverse-engineering of software and the legal status of the open-source software.

source codes,reverse-engineering of software;open-source software

DF523

A

1009-5160(2010)06-0022-05

趙麗(1981—),女,博士,講師,研究方向:知識產權法學、WTO法.

猜你喜歡
源代碼開源許可
人工智能下復雜軟件源代碼缺陷精準校正
計算機仿真(2023年8期)2023-09-20 11:23:42
版權許可聲明
版權許可聲明
基于TXL的源代碼插樁技術研究
版權許可聲明
本期作者介紹
五毛錢能買多少頭牛
軟件源代碼非公知性司法鑒定方法探析
大家說:開源、人工智能及創(chuàng)新
開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
革吉县| 镇江市| 遂宁市| 台南县| 桑日县| 会泽县| 垫江县| 无锡市| 新营市| 三穗县| 江西省| 海口市| 富锦市| 北碚区| 泾川县| 阳泉市| 兴国县| 百色市| 会东县| 屯昌县| 临夏县| 荥阳市| 嵊州市| 嘉兴市| 建湖县| 磴口县| 汾西县| 玛沁县| 潼南县| 扎兰屯市| 延边| 宣恩县| 正镶白旗| 东丽区| 瓮安县| 来安县| 西宁市| 同江市| 肥城市| 读书| 锡林浩特市|