• 沒有找到結果。

2.1 軟體著作權

2.1.1 原始碼與目的碼

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

2.1.1 原始碼與目的碼 自由軟體發展與智財權制度互動之觀察

5

2 自由軟體制度與智財權的關係

本章欲討論自由軟體與智財權之關係,從基本的軟體之原始碼與目的碼之 分類,與軟體財產權觀念興起的歷史,對軟體著作權作一介紹。接著介紹自由 軟體運動的興起與其四大自由原則,再討論與自由軟體關係最為密切的著作權,

從授權條款的法律性質之爭介紹目前自由軟體訴訟常見之爭點,接著討論著佐 權條款,並討論其有濫用著作權之虞。後半段全面地比較自由軟體制度與智財 制度,從性質、誘因、構成理論、目的等方面對兩者比較探討。

2.1 軟體著作權

本節對電腦軟體著作權做一簡單介紹,並將焦點放在原始碼與目的碼上,

此為了解自由軟體運動的先行知識。首先介紹電腦發展歷史上,為何會有出現 原始碼與目的碼兩種電腦軟體型態,其次介紹軟體著作權的發展,之後討論目 的碼的爭議,介紹美國實務對其解釋,整理近年我國學說對目的碼的質疑,並 提出本文立場。

2.1.1 原始碼與目的碼

世上公認第一台電腦ENIAC(Electronic Numerical Integrator And Computer) 於1948 年誕生1,而在1939 年時就有另一台稱為 ABC(Atanasoff–Berry

Computer)的電子計算器出現2,但今日吾人並不認為ABC 可以被稱為第一台

「電腦」,原因就在於現代認知上電腦應該要符合「可程式化(programmable)」、

「通用用途(general purpose)」。ABC 是一台設計成可計算「線性代數」的電 子計算器,只侷限在當初建造該機器時所設計之功能,不更動硬體下無法新增 功能,這也就是不可程式化。可程式化的電腦表示該電腦可以透過編修程式之 方法,在不修改硬體結構下,使該電腦可以執行各式各樣的運算。這些後來做

1 Martin H. Weik, The ENIAC Story, History of Computing Information, 1961, http://ftp.arl.mil/~mike/comphist/eniac-story.html .

2 Ames, Milestones:Atanasoff-Berry Computer,1939, IEEE Global History Network,

1990,http://www.ieeeghn.org/wiki/index.php/Milestones:Atanasoff-Berry_Computer,_1939 .

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

2.1.1 原始碼與目的碼 自由軟體發展與智財權制度互動之觀察

6

成的程式,相對於一開始建構好的硬體(hardware),普遍稱其為「電腦軟體

(computer software)」。撰寫這些軟體的就是「軟體工程師」、「程式設計師」。

到了現代,電腦軟體的功能與發展日漸龐大,開發大型電腦軟體所需之人力已 經大於製作設計硬體本身,以目前主流電腦作業系統Windows 7 來說,據說共 約1000 位工程師同時完成3。軟體的開發與撰寫是一個「腦力密集」的工作,

其步驟包括系統架構的設計構思、資料結構的安排、效能的分析、除錯等等,

都是需要長時間的腦力激盪才能完成。

在草創之初,撰寫電腦程式是非常辛苦與無效率的,例如ENIAC 的程式更 改方式是調整一堆有如目前音樂DJ 控制台般的開關和接線4,不但非常耗時,

且容易出錯。電腦之父John von Neumann 觀察 ENIAC 的各種缺陷而提出「程 式與資料都儲存在電腦中(Stored-Program)」的概念後5,程式同資料般以數字 形式儲存在電腦中,成為至今所有電腦產品所遵循的圭臬6。程式以二進位形式 儲存在電腦中,剛開始軟體工程師必須編寫著由0 與 1 組成的二進位碼(binary code),因為這樣電腦才讀的懂,雖然已經比調整開關有所進步,但對一般人還 是非常的不直覺。人們思考著怎樣才能夠簡化以及直覺地編寫程式,雖然von Neumann 持反對態度7,但人們發明了透過一次轉換的步驟將接近人類語言的程 式轉換成二進位碼。這個「接近人類語言的程式」就是目前說的「程式語言

(programming language)」,轉換的步驟稱為編譯(Compile),用程式語言撰寫 具可讀性的檔案為「原始碼(Source code)」,編譯產出電腦才讀得懂的二進位 元檔案為「目的碼(Object code)」8。之後隨著程式語言的統一與普及,例如 1989 年美國國家標準局訂立的 ANSI C 語言9,軟體工程師們有了良好且統一的 創作工具,電腦軟體進入了量產的時代。

3 Davey Winder, How many developers does it take to build Windows 7?,

http://www.daniweb.com/hardware-and-software/microsoft-windows/windows-vista-and-windows-7/news/219506 (Last visited: 2012/9/10)

4 Weik, supra note 1.

5 單維彰,John von Neumann,中央大學數學系計算機概論擴編教材,

http://libai.math.ncu.edu.tw/bcc16/pool/3.02.shtml (瀏覽日期: 2012 年 9 月 3 日)

6 E.g., David A. Patterson & John L. Hennessy, COMPUTER ORGANIZATION AND DESIGN:THE HARDWARE/SOFTWARE INTERFACE 49, 66(3rd ed. 2005).

7 單維彰,同前註 4。

8 E.g., Computer Associates Int'l. v. Altai, Inc., 982 F.2d 693, 698 (2d Cir. 1992).

9 朱群英,什麼是 ``ANSI C 標準"?,C 語言常見問題集,2005 年 6 月 23 日,

http://twpug.net/docs/ccfaq/node156.html 。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

2.1.1 原始碼與目的碼 自由軟體發展與智財權制度互動之觀察

7

就因為這段電腦發展的緣由,使電腦軟體有了與一般著作如書本等最大不 同的特性,其分為人們可讀的「原始碼」與機器可讀的「目的碼」10,軟體工 程師先透過智力活動撰寫出原始碼後,透過編譯的行為,產生出目的碼,其他 使用者只要拿到目的碼即可享受該軟體工程師的智力成果。只拿到目的碼的情 形下,無法對該目的碼加以修改或新增功能,編譯行為是單向的,無法從目的 碼回復原始碼11,雖然有所謂的「還原工程(reverse engineering)」技術,這是 一種試著從產品去得到原始技術思想的方法12,包含從目的碼得到原始碼,所 得到的原始碼並非原作者創作時的版本,該方法為資訊科學中一個特殊研究領 域,工程浩大且非資訊科學中的通常知識者可行,試著去做還原工程的成本可 能不如重新開發。

對一般使用者而言,原始碼雖然已經設計成接近人類的語言,但是要具備 理解的技能還是得經過長時間的訓練,以現代普遍的高階語言C++、JAVA 等,

也要一個資訊相關科系大三左右的學生才具有理解的能力,而且與看書本不同,

要花上許多時間去消化理解才能掌握,可以說對於一般使用者而言原始碼意義 不大,因為看不懂也不會對其做修改與編譯,只有受過訓練並且有興趣研究的 軟體工程師拿到原始碼才有意義,個人使用者只想拿到直接可執行的目的碼。

而一個有能力的軟體工程師拿到完整的原始碼的情況下,可以立即做出與原始 開發者相當的成果,並且在理解原始碼撰寫的架構後,可以該成果為基礎加以 修改、增加新的功能或是運算,而其所需的時間與人力將大幅少於從無到有重 新開發撰寫軟體。以目前個人電腦普及的情形,大部分都是一般的使用者13。 很自然地,軟體工程師或是電腦軟體廠商在散布其智力成果時,會演變成只散 布編譯過後的目的碼,而將原始碼藏起來不讓其他同為軟體工程師的競爭者看,

這樣一來,別的軟體工程師就無法去模仿或是抄襲該技術思想。

10 See Jyh-An Lee, New Perspectives on Public Goods Production: Policy Implications of Open Source Software, 9VAND.J.ENT.&TECH.L.45, 49 (2006)

11 Id.

12 See e.g., Atari Games Corp. v. Nintendo of America, Inc., 975 F.2d 832, 842-844 (Fed. Cir. 1992).

13 李界昇,開放原始碼模式下的法律糾紛與風險 – 從 SCO v. IBM 出發,交通大學科技法律研究 所碩士論文,頁76,2004 年 8 月。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y