顯示具有 專有軟體 標籤的文章。 顯示所有文章
顯示具有 專有軟體 標籤的文章。 顯示所有文章

2017年8月29日 星期二

再談自由軟體與專有軟體


一直以來都時常會有些討論自由軟體、專有軟體的貼文有些似是而非的看法,所以本人在此不吝提出一些觀點,並針對混淆之處作澄清,希望各位讀者能參考參考。

一、有些人認為採用自由軟體會抹殺從事軟體開發的工作機會。我認為這是誤解,[0] 請見後述逐項說明。

二、自由軟體與免費無關,也有許多公司提供自由軟體的商業支援、或銷售自由軟體產品,這些即所謂商業自由軟體公司,例如美商 Red Hat 公司就銷售需付費的 Red Hat Enterprise Linux。[1] 至於我們常見的自由軟體願意無償提供,只是軟體開發單位自己歡喜甘願而已,將自由軟體和免費混為一談是討論自由軟體時最常見的錯誤見解。[2]

三、自由軟體的開發一樣要成本、維護也同樣要成本,這些成本多半來自於個人無償奉獻、商業公司、或基金會的支持,任何人都能向這些商業公司購買自由軟體,或是隨喜捐款給自由軟體背後的獨立開發者或維護的基金會。此外,向各位提供一個數據作參考:Linux 基金會公佈2016年 Linux 作業系統核心的程式碼開發有 92.3% 都出自商業公司;[3] 各位也可以進一步研究世界軟體大廠諸如 Oracle、Red Hat、Canonical、Novel 等是怎樣運用自由軟體產品賺錢的。自由軟體唯一與專有軟體不大相同的地方,就是他們的自由軟體成品取之於前人知識、技術、經驗,但成果不私藏,願意拿出來和大家分享,無論有無收費任何人都能自由使用、研究修改、再次散布、改善並回饋給社會大眾。

四、再來聊聊軟體的著作權問題。法律上,一般的實體有物權(有體財產),可以給來給去、賣來賣去;但抽象概念、辦事方法如軟體這類創作沒有實體(無體財產),只能用契約約定如何利用,這就是軟體授權的由來。目前根據伯恩公約之約定,任何人的著作在完成後都將自動取得著作權,所以不管是專有軟體或是自由軟體都受到著作權法保障:只是專有軟體想要佔有專門權利,所以拿著作權法去限制其他人如何使用獨家軟體(故稱專有軟體);[4] 而自由軟體希望利他,所以拿著作權法來保障任何人都能自由善用其軟體(故稱自由軟體)。[5]

五、接著談一下軟體的專利。軟體,說穿了,它的源始形式就是一串數學運算式,這些式子的主旨在於描寫如何完成某件事情的方法。在美國產業中,絕大多數的軟體專利都圍繞著含混不明的文字敘述打轉,甚至是將那些數學公式的描述換句話說(可參考網路上許多談論「軟體的荒謬性」相關文章)。[6] 這也是為何歐盟不允許軟體本身申請專利、以及對資訊表達的方式申請專利。然而,實務上為了抵禦專利蟑螂或其他專有軟體公司的侵害,無論前述的 Oracle、Red Hat、Canonical、Novel 等公司,或是大量利用自由軟體作服務的公司如 Google、Facebook 等,皆保有自己的軟體專利作防護,也甚至有 Open Invention Network 這樣的專利聯盟在保護自由與開源軟體。[7]

六、最後,人們今日所處社會的成果,無一不是建立在前人的知識、技術、文化上。牛頓曾說過:「如果說我看得比別人遠些,那是因為我站在巨人的肩膀上」。試想如果我們處在一個沒有自由軟體、只有專有軟體,並且處處充滿軟體專利的極端社會中,那麼要從頭寫一個不會被告的軟體大概難如登天,任何同領域的新創公司難與既有公司相競爭,整個市場終將被大型專有軟體廠商壟斷。這時我們就能瞭解,自由軟體得以讓任何人使用、修改、散布、回饋,也包括任何廠商,各廠商都能利用自由軟體推出商業服務、並積極修正改善或增添新功能爭取客戶,而這才是保障任何廠商都能參與競爭的公平做法。

好比手機市場,如果當年沒有自由的 Linux 內核心,那麼利用它作基底的 Android 也就無法於焉誕生,而市場上就更難有人白手起家和已成氣候的蘋果 iOS 競爭了。(附註:Android 系統是由許多自由軟體和專有軟體搭配構成,而非完全都是自由軟體)

至於教育上的應用,自由軟體允許任何人研究程式碼並做出改善,這點無疑是更平等、更自由的教材。[8]

以上個人淺見給各位參考。

可進一步參照之資料

0. https://www.getgnulinux.org/zh-tw/linux/misunderstanding_free_software/
1. https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
2. https://www.gnu.org/philosophy/selling.zh-tw.html
3. http://blog.nutsfactory.net/2016/08/30/linux-%e4%ba%8c%e5%8d%81%e4%ba%94%e9%80%b1%e5%b9%b4/
4. https://www.getgnulinux.org/zh-tw/windows/restrictions/
5. https://www.gnu.org/philosophy/free-sw.html
6. http://blog.nutsfactory.net/2010/05/16/patent-absurdity/
7. https://www.openfoundry.org/tw/foss-news/8592-open-source-innovation-patents-and-the-android-platform-in-perspective
8. https://www.getgnulinux.org/zh-tw/windows/stand_for_a_free_society/ 

作者:曾政嘉 (Cheng-Chia Tseng)。目前是中華民國軟體自由協會常務理事,此外亦長期參與多項自由軟體專案,為 Fedora 大使、Ubuntu Member、The Document Foundation Member、和 GNOME Foundation Member。  

2017年3月10日 星期五

開放源始碼和安全性有什麼關係?

Security,圖採 CC-by 2.0 授權,作者 GotCredit (http://www.gotcredit.com/)

誠如密碼學專家 Bruce Schneier(布魯斯・施奈爾)所著《秘密與謊言:如何建構網路安全防衛系統》一書第二十二章【產品測試及驗證】中的描述,他認為公眾開放的密碼學加密方法其安全上的好處優於私人專有的方法,因為唯一可以確認密碼方法之安全性的作法,即是由許多專家投注一段很長的時間評估,而將該方法公諸於世是經濟效益最佳的方法;所以基於相同理由,他認為任何與安全防衛相關的事務都應有公眾的解決方案,這包括採用開放源碼方式發佈軟體,就讓世上所有專家評估、讓時間考驗。

他認為一個優良的安全防衛設計,其設計細節不會有什麼必須隱瞞之處;換句話說,這套安全防衛設計之所以安全,純粹來自於產品本身,以及產品自身可以改變的祕密:如密鑰、密碼、信符…等等。但如果是透過隱匿的方式獲得安全性(security by obscurity):即系統的細節是安全防衛的一環,那麼一旦設計細節公諸於世,它們可能會在極短的時間內被破解。若一個軟體的安全設計相當拙劣,就只能期待設計細節不曝光來得到安全;若系統設計相當優良,即便將相關細節公諸於世,也依然安全無虞。

而軟體也是一樣,要在源始程式碼中找到安全防衛上的漏洞,唯一的方法是評估檢驗,但你不可以隨便找人評估,你需要的是安全防衛軟體專家來評估,你需要它們從各種不同角度、經年累月的一再檢驗。雖然聘請這類專家是可行的,但是讓大眾一同動手會更省錢、也更有效率,所以最簡單的方式就是公佈軟體的源始碼

說到這,最常見的反對論點是:公布軟體的源始程式碼只會給怪客們找尋弱點所需之資訊,並且利用這些資訊來作惡。這些人認為,保護源始碼秘而不宣,能夠阻斷攻擊者得到相關資訊。Bruce Schneier 講到這裡說:「除了驚嘆他們的天真之外,我還真不知道該說些什麼」。

畢竟將軟體源始碼公諸於世,並沒有因此增加該軟體的臭蟲與缺陷數目,唯一增加的是一般大眾對它們認識的可能性而已。他提到:「那些把程式碼隱匿不為人知的廠商多半很懶散;而願意將產品源始碼公諸於世的廠商,往往可以因此找到漏洞,所以,他們也就能修補它們。」「秘密的軟體是脆弱的:它就像密碼學一樣。若將源始碼公諸於世,會比隱匿源始碼的措施提供更紮實的安全防衛」。

然而,開放源始碼軟體並不能保證安全,他認為大眾應該把兩件警告銘記在心

首先,僅僅將源始碼公開並不自動等於人們會檢驗它的安全漏洞,並且,當然這也不代表專家們會檢驗它的安全漏洞。
他舉例說:「研究員在 MIT 麻省理工開發的 Kerberos 程式碼發表後十年,才在其中找到緩衝器超限的問題」、「另一個開放源始碼的軟體 Mailman,用來管理郵遞清單,有顯著的安全問題存在長達三年之久⋯⋯直至原作者檢查源始碼,才找到問題所在」。畢竟安全防衛專家是一群常為雜事分神、極其忙碌的一群人。他們沒有什麼時間,也沒有意向想檢閱世上所有公布的源始碼。所以,雖然公布源始碼是件好事,但是它無法帶給你安全的保證。

其次,僅僅將源始碼公諸於世,並不自動等於安全問題只要一發現就可以被迅速解決。
我們沒有任何理由推論:一個兩年的開放源始碼軟體之安全性,會比一個兩年的專有源碼軟體的漏洞少。如果開放源始碼的軟體已經被專家詳細檢驗過,那麼以上的論調有可能是真的。但若只是因為一段程式碼已經公諸於世多年,並不具任何特別的意義。

Bruce Schneier 總結道:「我相信軟體開放源始碼有潛力可以增進安全防衛能力。但是,軟體並不會因為源始碼公開而自動變得很安全,就像不能因為程式碼不公開,就下斷語認為它不安全一樣」。

最後,Bruce Scheier 提及軟體開發模式也是影響軟體安全性的因素之一,而上述探討只針對源始碼開放與否作分析,沒有涉及到「哪一種開發程序可能在設計上產生安全的軟體」。他認為若採用傳統的專有軟體方式(教堂式開發)或許較能產出高品質、大規模的軟體;所以對於安全防衛而言,最好的作法也許是先以教堂式開發製作出專有授權的軟體;然後,再將它轉為開放源始碼公開讓所有人檢驗、讓時間考驗。

參考資料

祕密與謊言書封,合理引用

書名:《秘密與謊言:如何建構網路安全防衛系統》

作者:Bruce Schneier
譯者:吳蔓玲

出版社:商周出版
出版日期:2011/09/18

註,本書已絕版,可於各大圖書館查詢借閱。



關於 Bruce Schneier

Bruce Schneier 個人網頁
Wikipedia 上的 Bruce Shneier 介紹
Bruce Schneier 於 TED 上的分享內容《安全的錯覺》

進階閱讀

開放原始碼比較不安全?看看微軟的中標率吧(冷笑)》,作者洪朝貴

2017年2月4日 星期六

LibreOffice vs. Microsoft Office:這是一場開放格式,而非軟體的戰爭


今天看到有人轉了一篇對文件基金會共同創辦人、行銷與公關負責人 Italo Vignoli 的訪談,覺得有很多值得標註給大家看的地方。決定寫一篇部落格來談談這篇文章的內容。

"TDF also invests resources in building communities globally. Like many open source projects, TDF originated in Europe, but it doesn’t want to remain a European-based project. They participate in open source events around the globe to meet new people, create new collaborations and attract more developers to the project.

As a result of these activities, they are experiencing massive growth in countries like India, Japan and Taiwan."

再一次,Italo 強調對亞洲市場,以及對台灣導入的重視。

"However, TDF doesn’t have any desire or resources to offer an online service similar to Google Docs. It’s a product that you can install on your server, but it’s not a standalone product. "

在 LibreOffice 5.3 首次亮相的 LibreOffice On Line,文件基金會決定只提供程式碼而不提供實際服務;實際服務由服務提供商搭配 SSO、雲端架構等自行建構。我認為這是相當聰明的做法。

"It’s not a product war; it’s a format war.

Despite the creation of ODF (Open Document Format) as an ISO standard for documents, Microsoft worked on is own ‘standard’, which it called Office Open XML (OOXML), and got it approved as an ISO standard in a controversial manner. "

我們在各地舉辦的 ODF 政策說明會上,對大家說明過 ODF 與 OOXML 的差異。雖然兩者都是 ISO 國際標準,但其中最重要的差異,在於格式的穩定度。Microsoft Office 從 2007 開始使用 OOXML,到 2013 甚至 2016,每個版本的格式都不盡相同,因此使用 2013 所建立的文件在 2007 無法開啟;但是相對的 ODF 格式卻是穩定許多:我個人曾經在一個演講的場合不得不使用 LibreOffice 3.5 開啟我用 LibreOffice 5.1 所做的投影片 odp 檔,而整個播放過程都十分順利沒有任何問題。

Technologically, LibreOffice has achieved the level of compatibility that will work for a majority of users, leaving some corner cases. However, the fact remains … “interoperability is a big challenge for us as we are trying to offer interoperability with a product that doesn’t want to be interoperable,” said Vignoli.

很多人問「為何 LibreOffice 開啟微軟格式時會跑版?」這部份請大家仔細思考:是 LibreOffice 無法做到支援 OOXML,還是微軟不願意讓其他軟體做到對 OOXML 的完全支援?

People continue to face issues when they try to use LibreOffice for documents that were created using Microsoft Office. There can be a lot of reasons for things breaking between the two, but the problem is more cultural than technological. Small mistakes, such as using spaces instead of tabs to align text, can create interoperability issues. In an earlier interview, Vignoli told me about some dirty tricks that Microsoft uses to break interoperability.

一樣是關於轉檔跑版的問題,可以參考這個連結:
我也寫過一篇類似的部落格文章,大家可以參考:
http://good-horse.blogspot.tw/2016/10/why-not-use-ms-office-to-convert-ooxml-to-odf.html

"All of that makes things complicated. You can’t just wipe Microsoft Office from the hard drive and install LibreOffice on it expecting everything will work fine. It won’t. You are inviting yourself to a nightmare.

The right way to switch from Microsoft Office to LibreOffice is through migration. You need to migrate your documents from Microsoft Office format to ODF. But migration is not a one-click solution, it’s a process. It has to be planned."

從 Microsoft Office 轉換到 LibreOffice 的過程,不是直接移除微軟 Office 換成 LibreOffice 即可。我想在這裡再加上一句話,相同的,這個轉換的過程也不是辦辦幾場教育訓練即可。它必須有詳盡的規劃,必須有執行的過程,同時不斷修正與輔導,解決大家所面臨的問題。

"The biggest advantage of migrating to LibreOffice is that you can join the LibreOffice developer community and directly influence the features that you need in LibreOffice. That’s something you can’t do with Microsoft Office or any other proprietary product."

同樣的,在每一場我所主講的 ODF 政策說明會中,我都會在結論強調這一點:自由軟體並不完美,它可能有不少待解決的問題;但是最重要的,與其抱怨自由軟體不好用,甚至說出「我絕對會扯不好用的軟體後腿」這樣的話,不如換個方向思考:自由軟體一個非常重要的特點與好處,就是「我們可以一起把它變得更好」。

We can together make it better, 這句話是我去日本 LibreOffice Kaigi 2016.12 Japan 的 Keynote speech 的結論,馬上獲得了日本社群朋友的共鳴,這也是我們最希望讓大家理解並重視的一點。


【作者】Franklin, 不姓林。人稱「好馬」,近期亦被稱為「馬哥」。從 1990 年代初期起即以好馬之名闖盪學術網路與網際網路諸 BBS 站。年輕時喜行俠仗義,以「兄弟戰艦」自居,在學術網路 BBS 上為有名之引戰、接戰、亂戰之大砲級人物。不過很快即看破網路江湖上嘴砲者多實際貢獻者少之道理,隨即從網路江湖上退隱,投身於少棒運動、心算技術與自由軟體之相關事務。 早期在自由軟體界默默無名,沉潛於水面下翻譯無數軟體。數年後為自由軟體教宗艾瑞克一世所發掘,開始參與 ezgo 之顧問、開發、傳教等工作,並網路遊俠之姿重出江湖,獻身資訊教育基礎建設、數位路平與軟體自由運動。現任中華民國軟體自由協會理事長、文件基金會成員、文件基金會認證委員會委員、LibreOffice 導入專家。

2016年12月29日 星期四

自由的商業軟體

一直以來,許多人都搞不清楚「自由軟體」Free Software 跟「商業軟體」Commercial Software 之間的關係,今天我們就來說個明白。要瞭解它們的關係,就必須從軟體談起。

自由軟體是指授權方式

軟體是種無體財產,受到政府的智慧財產權相關法規保護,因此若想要使用他人撰寫的軟體,就必須透過契約方式得到「授權」才能利用這種無體財產。

自從1976年比爾.蓋茲(Bill Gates)寫下《致愛好者的公開信》,抨擊軟體也需要耗人力物力和時間去開發,但許多電腦愛好者只買硬體卻不願意為軟體付錢。爾後,「專有 Proprietary」性質的軟體授權方式開始興起。這種軟體變成特定公司、組織或人士的專有財產,其他人若想要利用這類軟體,就必須接受許多限制,例如軟體只限個人使用、不能散佈出去、不能探究運作機制與瞭解如何撰寫出來的、更不能修改軟體… 等。

理查.史托曼(Richard Stallman)因為先前工作之 MIT 人工智慧實驗室所使用的一臺全錄(Xerox)雷射印表機卡紙不會回傳相關訊息想修改,但廠商與開發者皆不願意提供源始碼給他修改之故,深覺專有軟體之惡,開始有了軟體授權應該維持「自由」,這樣對自由社會才有益的想法。他在1984年以這樣的精神開啟了 GNU Project,主旨在開發一套稱為 GNU,類似 Unix 但卻不是 Unix 的類 Unix 作業系統(GNU 即 GNU's Not Unix)。後來,更在1985年成立自由軟體基金會(Free Software Foundation)推廣「自由 Free」性質的軟體授權概念,讓使用者可以享有四大自由:

四大自由

  • 自由之零:可以依任何目的執行程式
  • 自由之壹:可以研究程式如何運作、並將程式修改以符合自身需求(程式源始碼能否近用是先決條件)
  • 自由之貳:可以再次散佈程式來幫助鄰居
  • 自由之參:可以改善程式、並將改善回饋給社群,讓整個社群均能因此受益(程式源始碼能否近用是先決條件)
這就是所謂的「自由軟體」,所謂的「Free Software」。值得注意的是,這裡所用的 Free 是指自由 Free as in freedom,而非免費 Free as in free beer,自由軟體是不限制販售行為的。至於前述的專有軟體授權,也可以對比說是「非自由軟體」Nonfree software。

有了以上的觀念,我們就能知道「自由軟體」一詞講的是軟體的使用授權方式。

常見的錯誤對比:自由軟體 vs 商業軟體

可是很多人都誤解了「自由軟體」的意思,他們常常拿自由軟體和「商業軟體」做比較,但這卻是無法比較的!因為與自由軟體授權概念相反的字詞是「專有軟體」,那個限制東、又限制西的授權方式。

至於軟體是不是「商業」軟體,就要看它是不是「透過商業行為開發出軟體」。只要軟體的開發受到商業行為的支持而開發成,那就是「商業軟體」。

市面上也有許多「自由授權的商業軟體」,雖然軟體是透過商業行為開發而成,但授權方式是自由軟體。這就是為什麼自由軟體無法跟商業軟體互相比較了,因為自由軟體也可以是商業軟體;商業軟體可以是自由軟體,也可以是專有軟體(或稱非自由軟體)。

請避免這樣的用字遣詞

請不要拿「商業軟體」作為「非自由軟體」的同義詞。 因為這會把兩類完全不同層面(軟體授權方式與商業行為與否)的事混為一談。

商業軟體可以是自由軟體、抑或是非自由軟體,取決於軟體散佈時的授權方式而定。任何人、任何組織機構開發的軟體可以是自由軟體、抑或是非自由軟體,也是一樣取決於軟體散佈時的授權方式。 軟體是否透過商業行為而開發、和軟體是否採用自由授權是兩個孑然不同、各自不相關的問題。

常有人錯把「商業」誤認為是「非自由」,因此覺得「自由的商業軟體」一詞自我矛盾。我們應該要特別小心不要用這樣的想法去使用「商業」這兩個字。

資料來源:Words to Avoid (or Use with Care) Because They Are Loaded or Confusing by GNU Project

  

「商業軟體」與「專有軟體」大大不同!

商業軟體是指軟體的開發是某營利事業的部分事業。大多數的商業軟體採用專有授權,但也有商業的自由授權軟體,還有非商業、也非自由授權的軟體。

舉例來說,GNU Ada 是營利公司開發的軟體,並採用 GNU GPL 的授權條款散佈軟體,因此所有的軟體拷貝也都是自由軟體;但它的開發者銷售軟體的支援合約。 當他們的業務和潛在顧客對談時,有的客戶會說「我們覺得商業的編譯器軟體比較安全」,他們的業務就會回「GNU Ada 商業的編譯器;剛好也是自由軟體。」

其實就 GNU Project 的觀點而言,重點剛好相反,而是 GNU Ada 是自由軟體,商業不商業倒其次。不過,GNU Ada 之所以能有更多開發,是源自於商業支持這點毋庸置疑,而且對其社群來說大有助益。

請幫助我們讓更多人知道有「自由的商業軟體」。你也可以用行動來支持我們:當你想說「專有軟體」時請不要講成「商業軟體」。

資料來源:Categories of free and nonfree software by GNU Project

商業軟體的對比

最後,如果在對話中想要強調某些軟體的「商業」行為或需要「收費」,想拿其他可以對應替代的軟體來比較時,那麼此情境下和「商業軟體」對比的則是「非商業軟體」。

即使想講的這個軟體剛好是自由軟體,在這個情境下也應該稱之為「非商業軟體」,畢竟自由軟體也是可以有商業行為或收費的,無法和商業軟體對比,只是剛好這裡的非商業軟體(包括免費軟體、共享軟體、非商業的自由軟體、公眾領域的軟體…等)採用自由授權罷了!


為了讓避免更多人誤解自由軟體,也為了讓大家瞭解世界上存在自由的商業軟體,請用行動幫忙我們:當你想要講的是「非商業軟體」時請不要講成「自由軟體」

範例:「Adobe Photoshop 是商業軟體,需要不少費用吧?但如果我們平時只需要裁切相片、小小修圖,不見得要用到 Photoshop 這麼多功能、這樣專業的軟體。這時其實還有許多類似的非商業軟體可以利用的!例如有個叫做 Gimp 的非商業軟體,(剛好也是自由軟體,)能勝任這些日常作業。」

總結

如果想要和他人討論軟體之間的對比時,凡論商業開發,必言「商業」「非商業」;凡論價格,必言「付費」「免費」;凡論授權,必言「自由」「非自由/專有」。不同層面的分類,不應該混淆在一起討論,以免造成後續的誤解。

深入閱讀

Free-Libre / Open Source Software (FLOSS) is Commercial Software by David A. Wheeler, 2006-12-27 (revised 2011-06-14)