1 / 45

自由軟體成功之道

自由軟體成功之道. 「開放 源碼軟體成功之道 」 這本書的封面以一句話 『 免費!不代表品質差,開放!不代表難以信任。 』 道出了開放源碼軟體的機會。 《 世界是平的 》 的作者佛里曼( Friedman, L. Thomas )將開放源碼( open source )列為夷平世界的九大推土機之一。. 什麼是自由軟體 (Free Software)?. 自由軟體指的是一種公開原始碼的軟體,使用者可以自由使用、下載、修改與散布執行程式及原始碼。 根據自由軟體之父理查.史托曼 (Richard Stallman) 提出的概念,自由軟體賦予使用者以下四種自由:

coty
Download Presentation

自由軟體成功之道

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 自由軟體成功之道

  2. 「開放源碼軟體成功之道」這本書的封面以一句話「開放源碼軟體成功之道」這本書的封面以一句話 『免費!不代表品質差,開放!不代表難以信任。』 道出了開放源碼軟體的機會。 • 《世界是平的》的作者佛里曼(Friedman, L. Thomas)將開放源碼(open source)列為夷平世界的九大推土機之一。

  3. 什麼是自由軟體(Free Software)? • 自由軟體指的是一種公開原始碼的軟體,使用者可以自由使用、下載、修改與散布執行程式及原始碼。 • 根據自由軟體之父理查.史托曼(Richard Stallman)提出的概念,自由軟體賦予使用者以下四種自由: 【自由一】使用的自由:可以不受任何限制地使用該軟體。 【自由二】研究的自由:可以研究該軟體的運作方式,並使其符合個人需求。   【自由三】散布的自由:可以自由地重製該軟體並散布給他人。 【自由四】改良的自由:可以自行改良該軟體並散布改良後的版本,以嘉惠眾人。 註:這張slide與之後的slides有關自由軟體的內容取材自中央研究院 資訊科學研究所 自由軟體鑄造場 Booklet

  4. 為什麼要用自由軟體? • 自由軟體強調知識分享理念,使得人們得以「站在巨人的肩膀上」而不必「重新發明輪子」。這對於科技的進步有著巨大的影響。

  5. 自由軟體是否等於免費的軟體? • 自由軟體(Free Software)不是免費軟體(Freeware)。Free Software當中的「Free」,代表的是「自由」而不是指「免費」。 • 即自由軟體自由傳遞的開放性,而非成本上的「免費」。

  6. 以自由軟體編輯的資料,檔案格式是否有相容性的問題?以自由軟體編輯的資料,檔案格式是否有相容性的問題? • 以自由軟體編輯的文件絕大多數都沒有相容性問題,以文書軟體為例,如以Microsoft Office的文書檔案為主要傳遞媒介,那麼OpenOffice.org可以支援開啟及編輯 .doc甚至 .docx檔 • 如果希望以Open Document為主要媒介,即使收到檔案的人使用Microsoft Word,也可以透過昇陽公司提供的Sun ODF Plugin for Microsoft Office讓Microsoft Office具有開啟Open Document的能力,這個外掛可以支援Microsoft Office 2007,2003,XP,2000,因此無論你使用何種平台或何種軟體都可以支援自由軟體所編輯的資料。 參考文章1:關於Sun ODF plugin for Microsoft Office http://www.openfoundry.org/component/option,com_content/ltemid,144/id,1693/task,view/

  7. 自由軟體和我們日常生活有什麼關係? • 全世界有將近七成的電子郵件,都是透過一套名為Sendmail的自由軟體伺服器進行傳遞與交換 • 自由軟體網頁伺服器Apache已經佔有全世界近五成的市佔率,遙遙領先微軟的IIS • 當您輸入「http://www.openfoundry.org/」這個網址後,協助查詢網址所在主機位置的程式,是一套名為BIND的自由軟體網域解析系統。 • 此外,校園裡最常用的BBS、MUD等軟體程式,以及討論區網站最常使用的phpNuke、Xoops、phpBB、Plone等,近幾年興起的部落格(Blog)網站程式,如pLog、WordPress等,都是自由軟體。

  8. 更為自由的開放源碼作業系統 • 1991年,芬蘭的Linus Torvalds無法滿足於現有的Unix-like作業系統,著手開發自己的作業系統核心,也就是後來的Linux kernel。 • 1994年,Red Hat和Caldera透過商標權及服務收費的方式拓展開Linux應用的消費市場,同時展現了自由軟體的獲利能力;而Debian Project則提供純粹自由開發且免費的Linux版本,現階段的Linux散布版本呈現百家爭鳴的局勢,提供了使用者豐富多元的選擇。而Linux也是從1994到2000年間,唯一非微軟系統卻能提高市場佔有率的作業系統。

  9. 台灣的發展與現況 • 2000年,國內自由軟體社群建立了軟體自由協會(Software Liberty Association of Taiwan,SLAT)這個非營利的法人機構,作為國內自由軟體社群與外界溝通的窗口。 • 接著,開始有推動者將自由軟體程式帶入校園和社區中,例如將自由軟體作業系統帶入相間的花蓮縣萬榮村計畫,便是自由軟體進入校園的起點,此類計畫希望藉由軟體自由的特性,縮短台灣城鄉差距的資訊落差窘境。 • 2003年,政府開始關注自由軟體商用的潛力,經濟部工業局展開「自由軟體產業推動計畫」,擴大自由軟體在台灣的應用幅度與研發能量。中央研究院資訊科學研究所接受該計畫執行社群分項工作,於該年成立自由軟體鑄造場(Open Source Software Foundry,OSSF)。 • 同年,屬於產業界的Linux促進會也提出「阿里山計畫」,結合產官學界的力量,推動Linux產業發展計畫。

  10. 台灣的發展與現況 • 政府部門近年更加重視自由軟體產業的發展,例如由教育部委辦,中華民國自由軟體協會(SLAT)承辦的教育部校園自由軟體應用諮詢中心(OSSACC),在全國中小學校園中,全力推動自由軟體的實際應用 • 經濟部工業的自由軟體入口網站,整合國內各類自由軟體資訊,以滿足各界對自由軟體訊息的需求 • 中研院資訊所自由軟體鑄造場(OSSF)則持續推廣自由軟體概念並提供自由軟體法律權的諮詢服務,促進台灣人才培育與產業合作。 • 另外在產業界,也開始將自由軟體應用融入產品販售策略裡,許多大廠如ASUS和Acer陸續以自由軟體作業系統作為新一代輕簡筆記型電腦的預設作業系統,使得自由軟體社群精神大振。在銷售數量大獲成功的新一代輕簡筆記型電腦,一併吸納自由軟體社群的創意結晶,讓產品得以不斷推陳出新,越做越好。

  11. 台灣的發展與現況 • 時至今日,推動自由軟體已不再是一種革命運動,而是可實作的軟體開發方式。在許多前人的共同努力之下,自由軟體已經再軟體應用上佔有一席之地,不論是伺服器領域或是個人桌面等都有良好的發展。也許就在不遠的未來,自由軟體甚至可能取代傳統商業授權軟體,取得主流地位。

  12. 常用的自由軟體 • 目前已經有許多跨平台的自由軟體應用程式可以媲美傳統商業授權軟體,諸如辦公室應用OpenOffice.org、用於影像處理的GIMP、以及受到各界矚目的Firefox瀏覽器等。我們整理了一個簡單的對照表如下,並介紹一些常用的自由軟體給讀者參考 • 應用分類 自由軟體 商業軟體 • 辦公室應用OpenOffice.org Microsoft Office • 電子郵件 Thunderbird MS Outlook • 影像處理 GIMP Adobe Photoshop • 多媒體播放 mplayer.VLC Windows Media Player • 音訊軟體 Audacious winamp • IRC xchat.irssi MC chat • 即時傳訊 Pidgin.emesne ICQ.Windows Live Messenger • 網頁瀏覽 firefox Windows Internet Explorer

  13. 開放源代碼軟體與自由軟體 • 嚴格地說來,開放源碼(open source)軟體(開源軟體)與自由軟體是兩個不同的概念。自由軟體是一個比開源軟體更嚴謹的概念 • 所有自由軟體都是開放源碼的,但不是所有的開源軟體都能被稱為“自由”。 • 在現實上,絕大多數開源軟體也都符合自由軟體的定義。比如,遵守GPL和BSD授權的軟體都是開放的並且是自由的。

  14. 自由軟體授權條款 • 自由軟體有些會直接聲明是採用某某條款授權,以下是常見的自由軟體授權條款。 1.Apache License1.1(Apache1.1) 2.Apache License2.0(Apache2.0) 3.Artistic Lincense(Artist) 4.BSD Lincense(BSD) 5.Common Public Lincense 1.0(CPL) 6.Common Development and Distribution License(CDDL) 7.Eclipse Public License 1.0(EPL) 8.GNU General Public License 2.0(GPL2) 9.GNU General Public License 3.0(GPL3) 10.GNU Lesser General Public License 2.1(LGPL2)

  15. 自由軟體授權條款 11.GNU Lesser General Public License 3.0(LGPL3) 12.MIT license(MIT) 13.Mozilla Public License 1.1(MPL) 14.Python License(Python) 15.Q public License 1.0(QPL) • 例如:自由軟體Samba,其開發網站首頁(http://us1.samba.orh/)的第一段說明文字採用GNU Lesser General Public License來授權 • 自由軟體授權條款當然不止這邊所列的十五份,其他的你可以到開放原碼促進會(Open Source Initiative,osI)與自由軟體基金會(Free Software Foundation.FSF)的網站上查閱參考: • OSI的侵權條款網頁:http://www.opensource.org/licenses/ • FSF的侵權條款網頁:http://www.fsf.org/licensing/licenses/

  16. 散布自由軟體需要注意哪些事項? • 確定一個軟體是自由軟體之後,,就可以安心地安裝到電腦上來使用。 • 若只是單純地自己使用,絕大部分的自由軟體並不會要我們遵守什麼規定,但若是想要再次散布或修改軟體的話,那就有一些規定必須特別注意。 • 散布軟體的規定在每份授權條款中都不一樣

  17. (一)保留所有的標示及說明(notice) • 一般來說,自由軟體的授權條款都會要求你必須保留軟體裡面的各種標示及說明,因此你若只是單純將軟體燒成光碟給朋友,或者是幫朋友安裝這個自由軟體,並不會更動到這些標示或說明,就不會違反授權條款的相關規定。

  18. (二)提供原始碼 • GPL2、GPL3、LGPL2、LGPL3、MPL、CPL、EPL以及CDDL等條款規定,散佈軟體的時候必須提供原始碼,也就是你雖然可以直接將程式目的碼給朋友,或者幫朋友將軟體安裝到電腦上,但是當這朋友向你索取這個軟體的原始碼時,你必須要讓這位朋友拿到原始碼。讓這位朋友拿到原始碼的方式很多,每份條款規定也有些不盡相同,重點在於你一定要讓你朋友知道他有所取原始碼的權利,而你也有提供原始碼的管道,例如:放在網路上,由你的朋友自行上網下載;燒在光碟上,寄給你的朋友等等。 • 但是像BSD、MIT、Apache2.0這些條款,卻並未這樣要求,對於採用這些條款授權的自由軟體,在是否提供原始碼這一點上,你有較大的選擇空間。

  19. (三)附上授權條款的文字內容 • 一些授權條款特別規定,無論你是以目的碼或原始碼的形式來散布軟體,都必須要將授權條款的文字內容一併附上給拿到軟體之人。GPL2、GPL3、LGPL2、LGPL3對此均有明文規定。

  20. 修改或取用自由軟體程式碼來開發程式,需要注意哪些事項?修改或取用自由軟體程式碼來開發程式,需要注意哪些事項?

  21. (一)請保留軟體中的標示(notice) • 這是最基本的一環:除非真的有必要,否則軟體中的任何標示請不要拿掉,例如著作權標示、軟體不負擔保的說明標示等。雖然並非所有的條款均強制要求保留所有的標示,但是因為不同條款規定略有不同,最保險與簡單的原則就是原封不動地保留所有標示。若你真的需要變動或修改這些標示的話,就有必要詳閱授權條款中關於刪留這些的規定。

  22. (二)標明軟體已經修改過 • 許多的授權條款會要求,你必須要在修改的檔案中標明這個檔案是被修改過的,並且加上修改日期,有些條款則並未有相關規定。 • 也有像Artistic這一系列的條款,則是要求必須另外附上說明檔案,描述檔案的修改過程,以及修改後的檔案與原檔案有什麼不同之處等等。

  23. (三)要提供取得原始碼的管道 • 修改或取用的自由軟體採用GPL2、GPL3、LGPL2、LGPL3、MPL、CPL、EPL或CDDL等條款授權,原則上,你必須要將修改過的程式或者新結合程式的原始碼提供給他人。但是各條款中對於修改與取用的細部規定不盡相同,所以在合於各授權條款規定的情況下,修改過的自由軟體或取用自由軟體程式碼而新寫出來的程式,也有可能不需要將原始碼在提供給他人。

  24. 自由軟體成功之道 • 成功的定義: 讓足夠多的使用者應用自由軟體

  25. 15% vs 85% • 早期採用者大約佔了科技市場的15% • 實用主義者則佔了其他的85% • 如果一項科技產品要成功打入市場,必須滿足實用主義者的需求與消除實用主義者的疑慮。

  26. 成功之道 • 自由軟體或其衍生的軟體要適合使用 • IT從業人員的覺醒 • 重視軟體系統的開發流程 • 組織能從整體效益考慮導入自由軟體 • 自由軟體社群的蓬勃發展 • 有一種平台讓 自由軟體之Client 應用 (至少商業用途)有低技術門檻-- 優使性-- 滿足一般用途之功能

  27. 開放源碼成熟度模型(Open Source Maturity Model™ • OSMM的目的:快速地評估開放源碼產品的成熟度以協助組織之IT人員評估開放源碼軟體的適用性。 • OSMM的設計理念,是要讓一或兩個IT人員可以在3到5天內就計算出單一產品的總體成熟度分數。

  28. OSMM • 另一個用意便是用來找出產品的哪些部份有不足之處,需要再加以強化的,連帶著便需評估公司內部是否有適當的人選/人力可支援,及是否有公司可提供合適的專業服務。

  29. OSMM • 以JBOSS這套middleware產品作為範例 • 評估的結果JBOSS的產品成熟度是78分,同時達到前期採用者及實用主義者可採用的標準門檻值。

  30. OSMM分三個評量階段 • 1.評估每個產品要素的成熟度並給予比分。 2.依組織的需求替每個要素定義權重。 3.計算產品的總體成熟度分數。

  31. 階段1:評估要素的成熟度 • 先找出關鍵的產品要素,並評估每個要素的成熟度。關鍵的產品要素,指的是成功運用一個產品不可或缺的因素。 關鍵產品要素有以下幾大項: 1.產品軟體 2.支援 3.文件 4.訓練 5.產品整合 6.專業服務 • 每個要素都會加以評估並以四個步驟的流程依序評分: 1. 定義組織需求 2. 找出資源 3. 評估要素成熟度 4. 給予1到10之間的評分

  32. 階段1:評估要素的成熟度 • 定義組織需求 必須定義該軟體必須具備哪些功能,才能滿足組織的目標(例如:要降低頻寬使用量、縮短反應時間等等…),定義每個產品要素的需求,是評估一個產品對某個組織是否有幫助的關鍵步驟。 • 找出資源 開放源碼產品的資源會分散在各處,要整合這些資源,相對於商業軟體會比較複雜。大部份產品都沒有所謂的「認證廠商」列表。此時要找出需要的資源會比較困難,但以下每一章都會提供一些識別資源的方法,協助您評估開放源碼軟體。 • 評估要素的成熟度 評定出要素屬於哪個成熟等級(從完全不存在到充份可實用)

  33. 階段1:評估要素的成熟度 • 給予要素分數 完成成熟度評估後,我們會給予一個介於0到10之間的分數,表示該要素的成熟度等級。分數愈高代表愈能滿足組織的需求。 成熟度分數也可以作為改進要素成熟度的判斷依據。一旦某個產品的總成熟度可以滿足需求,但其中一個要素成熟度卻過低,組織可以針對這個要素進行強化。

  34. 階段2:設定權重因子 OSMM模型會幫每個要素的成熟度分數設定權重,如此可忠實反應出每個要素在總體成熟度中的重要性。組織可以依照自己的需求修改預設權重的值,舉例來說,如果某個IT組織比較缺乏人力資源,就會認為由專業且有提供服務的廠商開發的產品相對有較大的優勢。此時他可以把權重調大,以反應出專業服務的重要性。調整權重值唯一需要注意的地方,就是權重的總合必須是10。

  35. 階段3:計算產品的總體成熟度分數 開放源碼最大優點,就是任何使用者都可以自由下載產品的原始碼。評估商業軟體時,可以藉由產品的說明文件得知產品具有哪些功能,產品的品質則可以利用專門的測試工具來檢測。這大概就是一般人評估產品時可以作到的極限了。 開放源碼產品則提供了更高的透明度,讓您可以進行更徹底的評估程序。原始碼可得性讓我們可以對程式碼本身進行檢驗和評估,此外還可以判斷出產品品管(QA)流程的內容和品質。

  36. IT從業人員的覺醒 • 現在的IT人員如果沒有把自由軟體視為一種可行的替代方案,就等於是在扯自己的後腿。

  37. 重視軟體系統的開發流程 • 如果決定要開發一個整合自由軟體的系統,不重視嚴謹的開發流程客戶訪談需求分析系統分析系統設計系統實作系統測試系統維護 • 等系統上線後出現大問題,再想辦法解決,利潤就會被侵蝕掉了

  38. 整合的方式之一 • Web Service • 服務在遠端 • Cloud Computing • SaaS

  39. RFID IMS 1.0.0 Web Server (WS 1.8.0) Database Internal Interface Web Based JSP後端管理系統 (JBMS 1.6.0) XDNA Server (XSM 1.7.0) Internal Interface External Interface (1) External Interface (2) 後端管理員 離線作業同步系統 (OOSS 1.4.0) Internal Interface (7) Internal Interface (1) Internal Interface (2) Internal Interface (3) RFID資訊管理系統 (RMS 1.1.0) 維修歷程紀錄 (MLS 1.3.0) 資訊設備新增系統 (IDAS 1.2.0) Local Database Internal Interface (4) Internal Interface (5) Internal Interface (6) External Interface (3) 資訊設備管理系統 (IDMS 1.5.0) External Interface (4) RFID Reader 維修工程師 軟體系統的開發流程舉例 • 資訊設備維護 RFID資訊系統 (本人所指導的研究生參加中央大學辦的軟體競賽)

  40. 組織能從整體效益考慮導入自由軟體 • 例如利用自由軟體來節省費用、加速工作流程及減少被廠商綁住 • 如何從整體效益考慮導入資訊系統,請參考『仍然還不夠』一書

  41. 自由軟體社群的蓬勃發展 • 善用社群的sharing是自由軟體成功的致勝關鍵。

  42. 獲利模式 • 自由軟體是一座金礦,只是開發者很難直接從撰寫程式碼這件事上賺取合理的報酬,反倒是由教育訓練、文件、書籍、技術支援上較易獲取報酬。 • 在美國自由軟體技術顧問每小時有100到400美金左右的報酬 • 在台灣????

  43. 成功之道 • 自由軟體或其衍生的軟體要適合使用 • IT從業人員的覺醒 • 重視軟體系統的開發流程 • 組織能從整體效益考慮導入自由軟體 • 自由軟體社群的蓬勃發展 • 有一種平台讓 自由軟體之Client 應用 (至少商業用途)有低技術門檻-- 優使性-- 滿足一般用途之功能

  44. 小兵立大功 • 基於自由軟體的XDNA分散式應用程式開發平台 • 開發者:跨越科技股份有限公司 • 總公司在高雄,員工約20人 • 台灣在許多資訊硬體與光電產品,甚至其他產品都曾是WORLD No. 1 • 合理判斷軟體應該也要有, XDNA分散式應用程式開發平台會是最有機會的

  45. 相關連結 • 開放源碼軟體成功之道一書作者的email • OSMM(Open Source Maturity Model) • 有OSMM評估的空白樣板可供下載 • Open Bar • 自由軟體基金會 • 裡有份對開放源碼社群使用者的問卷 • Source Forge • 可找到超過20種不同的開放源碼授權 • Security Code Review Guidelines Adam Shostack • Code Review Tools • tools for static code analysis • How to Evaluate Open Source Software • Perl : why review code • Is Open Source Secure? • OWASP • 註:OWASP 是一個非營利性,目前有5,000 個會員的組織,其主要的任務是要發現與對抗不安全軟體的成因。目前OWASP有20多個project 針對不同的軟體安全問題在進行研究。

More Related