Introduction to open source platform

1,079 views

Published on

This slide was prepared in Mandarin, and about open source system for non technical background people

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,079
On SlideShare
0
From Embeds
0
Number of Embeds
148
Actions
Shares
0
Downloads
13
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Introduction to open source platform

  1. 1. 開放式平台的機會與應用大華科技大學 數位內容科技系 林獻堂
  2. 2. Agenda 前言 開放觀念的演進 開放原始碼軟體的發展 行動開放平台: Android 人機互動的新趨勢 結論 Demo
  3. 3. 前言
  4. 4. 前言 話說「天下大勢,分久必合,合久必分」 今說「平台大勢,開久必閉,閉久必開」 開放的精神是取之於社會,用之於社會 個體貢獻一己之力,享受匯集全體的成果 1985 年萌芽的開放概念,間接直接造就今日科 技狂潮 即使如間接導致自由軟體與開放原始碼運動的微 軟,都必須擁抱開放原始碼 對於現在生活影響甚巨的 SoLoMo 服務,就是受 惠於開放概念的一個典型例子
  5. 5. 何謂 SoLoMo KPCB 合夥人 John Doerr 在 2011 年 2 月於 Google Think Mobile Conference 演講中,首度提 出 SoLoMo 一詞 So(Social) :當今火紅的 Social Network Sites 或是 Social Media ,都是 Web2.0 的典型,而 Web2.0 的精神就是 UGC (User Generated Content) Lo(Location): 以 Google Map, Earth 提供的服務為 典型 Mo(Mobile) :資訊科技的現在與未來趨勢行動運 算, Google 的 Android 是一個典型的平台 審視 SoLoMo 的三個支柱,開放觀念隨處可見
  6. 6. SoLoMo 的概念架構圖 ) Social ( 社群網站 Location ( 地理資 訊) Mobile ( 行動運 算)安裝應用程式 Apps 的行動裝置( Mobile) ,經由 GPS 或是 Wireless AP 取得位置資訊( Location) ,並經由 3G 或 Wireless 取得社群應用服務( Social)
  7. 7. 開放觀念的演進
  8. 8. 開放的歷史脈絡
  9. 9. 開放概念的萌芽 Richard Stallman 於 MIT AI Lab 期間,不滿於以封閉軟體取代 Lab 中可自由流通的軟體 他於 1985 年發表了著名的 GNU 宣言 (GNU Manifesto) 正式宣布要 開始進行一項宏偉的計劃:創造一套完全自由,兼容於 Unix 的作業 系統 GNU ( GNUs Not Unix! ) 並於 1985 年成立自由軟體基金會 (Free Software Foundation , FSF) 他於 1989 年與一群律師起草了廣為使用的 GPL(GNU General Public License, GNU GP) ,且提出「 Copyleft 」的概念 Richard Stallman 是堅定的自由軟體運動倡導者 他與其他提倡開放原始碼的人不同,他認為使用專利軟體是非常不道 德的事,只有自由的程序才是符合其道德標準的 對此許多人表示異議,並也因此有了自由軟體運動與開放原始碼軟體 運動之分
  10. 10. 自由的意義Richard Stallman 認為軟體使用要有四大自由 : 使用的自由:可以不受任何限制地來使用軟體 研究的自由:可以研究軟體運作方式、並使其 適合個人需要 散佈的自由:可以自由地複製此軟體並散佈給 他人 改良的自由:可以自行改良軟體並散佈改良後 的版本以使全體社群受益
  11. 11. 開放原始碼軟體 開放原始碼促進會於 1998 年成立,同時促使 Netscape 公布 Navigator 的原始程式碼 開放原始碼的內涵是由 Bruce Perens 所定義的 開放原始碼軟體 (Open source software) 是一種原 始碼可以任意取用的電腦軟體 開放原始碼軟體是以 GPL 授權發行的軟體,以保 障軟體使用者自由使用及接觸原始碼的權利。 這同時也保障了使用者自行修改、複製以及再分發 的權利。 簡而言之:所有公布軟體原始碼的程式,都可以稱 為開放原始碼軟體
  12. 12. 自由軟體概念圖資料來源: http://zh.wikipedia.org/wiki/File:Fsmap-zh_tw.svg
  13. 13. 開放原始碼軟體與自由軟體的差異 嚴格地說來,開放原始碼軟體與自由軟體是兩個不 同的概念 只要符合開放原始碼軟體定義的軟體就能被稱為開 放原始碼軟體 自由軟體是一個比開放原始碼軟體更嚴格的概念, 因此所有自由軟體都是開放原始碼的軟體,但不是 所有的開放原始碼軟體都能被稱為「自由」 在現實上,絕大多數開源軟體開放原始碼軟體也都 符合自由軟體的定義。比如,遵守 GPL 和 BSD 授 權的軟體都是開放的並且是自由的
  14. 14. 創用 CC(Creative Commons) 哈佛大學法學教授 Lawrence Lessig 於 2001 年在美國 成立 Creative Commons 組織 提出「保留部份權利」 (Some Rights Reserve) 的相對 思考與作法 Creative Commons 以模組化的簡易條件,透過排列組 合,提供了 6 種便利使用的公眾授權條款 創作者可以挑選出最合適自己作品的授權條款,透過簡 易的方式自行 標示 於其作品上,將作品釋出給大眾使 用 透過這種自願分享的方式,大家可以群力建立內容豐富 、權利清楚、且便於散布的各式內容資源,嘉惠自己與 其它眾多的使用者
  15. 15. 創用 CC 授權方式姓名標示姓名標示─非商業性姓名標示─非商業性─相同方式分享姓名標示─禁止改作姓名標示─非商業性─禁止改作姓名標示─相同方式分享
  16. 16. Linux Linux 是一種自由和開放原始碼的類 UNIX 作業系統核 心 目前存在著許多不同的 Linux 發行版,可安裝在各種各 樣的電腦硬體設備,從手機、平板電腦、路由器和影音 遊戲控制台,到桌上型電腦,大型電腦和超級電腦 只要遵循 GPL 授權 , 任何人和機構都可以自由地使用 Linux 的所有底層原始碼,也可以自由地修改和再發布 雖然 Linux 一詞本身只表示 Linux 核心,但在實際上人 們已經習慣了用 Linux 來形容整個基於 Linux 核心 通常 Linux 會封裝成供桌上型電腦和伺服器使用的 Linux 發行版本 一些主流的 Linux 發行版本包括 Debian( 衍生版本 Ubuntu) , Fedora 和 openSUSE 等
  17. 17. Unix 與 Linux 歷史源流資料來源 :
  18. 18. 開放原始碼軟體的發展
  19. 19. 開放原始碼軟體的種類與形式 有眾多的開放原始碼軟體,典型的系統有: Linux OpenOffice Firefix CMS platform, 例如 phpBB, Eclipse Xmind Gimp …… 本報告探討專為非資訊背景人員所發展的開發與應用平台
  20. 20. 開放原始碼軟體大事記
  21. 21. Design By Numbers (DBN) Design By Numbers (DBN) 是特地為教導沒有任何 程式設計背景的藝術家與設計師程式概念的系統, 它可以直接在瀏覽器內執行 DBN 最早是由帶領 MIT Media Lab 的 Aesthetics + Computation Group (ACG) 團隊的 John Maeda 所帶領的團隊在 1990s 年代所開發的 DBN 只使用最少數量的語法與最簡單的開發環境, 其目的是要容易使用,但是這也限縮了開發進階的 應用的機會 累積數年的發展與傳授 DBN 之後, ACG 團隊的 Casey Reas and Benjamin Fry 在 2001 年聯手開 發了 Processing Source: http://www.asquare.org/networkresearch/2007/11
  22. 22. Processing Processing 是一個開放原始碼的程式語言 與整合式開發環境 它是專為數位藝術家與視覺傳達設計者所 開發的環境 其目的是要教導與視覺內涵相關的電腦程 式基礎,以及作為電子繪本的基礎 Processing 是架構在 Java 的基礎上,但是 使用簡化的語法語及圖形式程式設計的模 型
  23. 23. Wiring Wiring 是 Hernando Barragán 在 2003 年開始開發的開放原始碼原型平台 這個平台包含程式語言,整合式發展環 境 (IDE) 與單板微控制器 Wiring IDE 是一個由 Processing 的 IDE 所衍生,且也是以 Java 所開發的 跨平台的應用程式 Wiring 的硬體參考設計是以創用 CC 授 權方式釋出 Wiring 的硬體使用 Atmel 的 ATMega 系列晶片,包含 atmega1281/atmega2561 與 atmega644p
  24. 24. Arduino 開放原始碼硬體的觀念衍生自開放原始碼硬體軟體的觀念 透過開放原始碼的授權方式,將硬體的資料公開。硬體的 原始資料通常包括材料表 (BOM: Bill of Material) 、電路圖 (Schematic) 、佈線圖 (Layout) 、驅動程式 (Device Driver) 、應用程式介面 (API) 、以及發展平台等 為協助學生以比較低的成本開發所設計的互動式專 案, Italy 某一大學的人員於 2005 年開發出以 Atmel 微控 制器為基礎的 Arduino 系統,此系統採用開放原始碼硬體 授權 Arduino 系統包含 Arduino 板,週邊介面板 Shields 以及 IDE 開發環境 Arduino 其實不是一個獨立的系統,而是衍生自其他更早 期發展的系統 (Processing, wiring) ,同時也有許多系統是
  25. 25. Arduino board & IDE
  26. 26. Arduino EcosystemsPre systems Arduino Post systems Processing Freeduino Wiring IDE Wiseduino Arduino Shields 開源碼社群
  27. 27. 圖形式程式語言 傳統的程式語言是一種敘述式的結構,程式是由一 連串將敘述 (statement) 依所需要的執行邏輯所構 成的 學習程式的最重要目的是要利用電腦來解決問題, 也就是將問題轉化成電腦可以處理的形式 大多數的人認為撰寫電腦程式是一件惱人且特殊的 工作,只有受過特殊專業訓練的人才做得來 就傳統的 C++ 或是 Java 程式語言來說,對於許多 人來說或許真的是不好學習 由 MIT Media Lab 所發展出來的圖形化程式設計語 言 Scratch ,就是嘗試要突破這個限制
  28. 28. Scratch MIT 為小學生 ( 尤其弱勢的學生 ) 所開發的 Scratch 圖形化程式語言,是一個以圖形化的方法來學習程 式語言 這個系統在非印歐語系國家,還有一個更重要的貢 獻,是排除了母語的障礙 第一版的 Scratch 是由 MIT Media Lab 的 Mitchel Resnick 所領導的 Lifelong Kindergarten group, 於 2006 年所開發出來 Scrtatch 的特點  積木式程式設計流程 (Building-block programming)  媒體的應用 (Media manipulation)  分享與合作 (Sharing and collaboration) 。
  29. 29. Scratch 範例
  30. 30. Fritzing Fritzing 是一個開放原始碼的計畫,目的是要支援 設計家,藝術家,研究者與玩家,靈活應用互動性 電子裝置 Fritzing 可視為專為非工程師所開發的電子設計自 動化 (EDA) 工具 此計畫受到 Processing 與 Arduino 的鼓舞而建立軟 體與網站,並開發讓使用者可以建立原型所需文件 ,與他人分享這些文件,在課堂上教導電子學,以 及產生可用於專業生產所需的 PCB 佈局 2009 年 3 月份的版本開始跟 Arduino 結合
  31. 31. Fritzinghttp://www.youtube.com/watch?v=Hxhd4HKrWpg&feature=player_embedded#!
  32. 32. 行動開放平台: Android
  33. 33. Android 重要里程碑
  34. 34. 開放式平台 有各式開放平台,但以 Google Android 最具代表性 Google 於 2007 年 11 月宣布推出以 Linux 為基礎的 Android 開放式平台, 讓加入開放手機聯盟( Open Handset Alliance )的 33 名中下游廠 商,藉此平台開發其手機或行動網路 裝置,而 Google 則以廣告營收來獲 取利益。
  35. 35. Android 概述 Android 平台由作業系統、中間層、用戶界面和應 用軟件組成 它採用 Software Stack 的架構,主要分為三部分 : 底層以 Linux 內核工作為基礎, android 系統效果 圖由 C 語言開發,只提供基本功能 中間層包括函數庫 Library 和虛擬機 Virtual Machine ,由 C++ 開發 最上層是各種應用軟體,包括通話程序, SMS 程 序等,應用軟體則由各公司自行開發,主要是以 Java 作為程式編寫
  36. 36. Android inside and outside
  37. 37. 一張圖道盡 Android 發展史 (1/6)資料來源 :http://www.xcubelabs.com/the-android-story.php
  38. 38. 一張圖道盡 Android 發展史 (2/6)資料來源 :http://www.xcubelabs.com/the-android-story.php
  39. 39. 一張圖道盡 Android 發展史 (3/6)資料來源 :http://www.xcubelabs.com/the-android-story.php
  40. 40. 一張圖道盡 Android 發展史 (4/6)
  41. 41. 一張圖道盡 Android 發展史 (5/6)
  42. 42. 一張圖道盡 Android 發展史 (6/6)
  43. 43. 何謂 APP APP 為 Application program 的縮寫,是在智 慧型裝置如手機與平板上執行的應用程式 類似電腦中執行的程式,例如 word, 記事本, 小畫家等 APP 為一種原生 (Native) 的程式碼,無法跨平 台執行,例如 Android 的 APP 不可以放到 Apple 的 iOS 中執行 而在網頁中應用程式 ( 例如 HTML5) 是可以跨 平台執行 APP 與 HTML5 各自擁有自己的支持陣營 選擇 APP 著重於效能,選擇 HTML5 著眼跨 平台,以及不需專屬 APP store 來發布
  44. 44. APP 的開發 需要使用一般程式語言整合式開發環境 IDE 來 開發,例如 Android 使用 Eclipse 作為開發環境 Windows Phone 使用 Visual Studio 為開發環 境 iOS 使用 xcode 開發環境 , 以 Objective C 語 言開發 上述開發環境的使用,通常需要資訊專業知識 一般非資訊專業者很難上手
  45. 45. APP Inventor MIT 教授 Hal Abelson 於 2008 年在 Google 休假 期間,興起 App Inventor 的想法 Google 在 2009 年底釋出 Beta 版的 APP Inventor App Inventor 於 2012 年 1 月 1 日移交給 MIT Center for Mobile Learning ,並已於 3 月 4 日公 佈使用 Google App Inventor 是一個完全線上開發的 Android 程式環境 拋棄複雜的程式碼而使用類似 Scratch 的積木式堆 疊法來設計 Android 程式
  46. 46. APP Inventor 概念圖
  47. 47. 智慧型裝置的趨勢 智慧型手機與平板電腦,已經成為個人最普遍 的電子裝置 由面板尺度來看,由智慧型手機的小螢幕,到 平板的中螢幕,進到電視的大螢幕是必然的趨 勢 智慧電視已經開始進駐家庭,智慧電視是具有 作業系統而且可以執行 APP 的數位電視 智慧家庭也是時代的潮流之一 開放平台龍頭,透過 Android@Home 將觸角 深入一般家庭內
  48. 48. Android@Home Google 在 2011 年 5 月份舉行的 I/O 開發者年度大會 中,提出允許使用者與幾乎任何的電子設備間互動的平 台 Android@Home 在家庭中可能的設備有家庭媒體設備、洗碗機、以及電 燈等,在未來將可以使用新的平台來進行控制 透過智慧型手機、平板電腦或其它的小裝置以控制有連 線的設備,已經討論多年,但是市場上一直沒有很恰當 的應用 Android 平台在 3.1 版的平台上引入對於 Android 開放 週邊的支援,這個規範允許外部的 USB 硬體 (Android USB 週邊 ) 可以與搭載 Android 作業系統的裝置系統或 是環境互動 現階段以 ADK(Accessory Development Kit) 對 Arduino 提供支援,目前版本為 ADK 2012
  49. 49. APP 開發與應用的未來 APP 具有最速流通的特點,開發具有創意 的 APP 可以迅速擴散,例如 Angry Bird 已經有一些類似 APP Inventor 的開發平台 存在 這些平台很多是以開發多媒體內容,例如 電腦遊戲為主 這些工具的特點是在只需最少技術之下, 可以讓自己的創意得到最大化的發揮
  50. 50. 人機互動的新趨勢手勢互動、臉部與語音辨識
  51. 51. 人機互動的本質 傳統的電腦介面,如鍵盤、滑鼠等不是最 佳的人機介面 日本第五代電腦雖未於其宣示的期間內完 成,但播下的種子卻在當今開花結果 體感式人機互動的蓬勃發展,得力於微機 電技術、感測器技術、以及電腦軟硬體技 術的進步 Wii, XBOX, Kinect, Siri 等提供人與機器間 更自然的互動途徑
  52. 52. Microsoft 沉浸式顯示 微軟最新申請與體感相關的專利:沉浸式顯示體驗 (Immersive Display) 能將大幅影像以 360 度投影在任何環境中 未來凡是遊戲機中的影像都能跳脫電視螢幕的大小與邊 框限制,直接在房間中呈現,虛擬與真實之間幾乎沒有 界線 這個新裝置與 Kinect 的深度感測鏡頭系統緊密結合, 能夠在現有的鏡頭處理以外納入多重影像捕捉裝置,將 遊戲影像以廣角全景呈現 深度感測鏡頭能協助環境投影機感測房間的陳設與格局 ,投影機會隨之調整顏色,不會因為投射在家具或不同 顏色的牆壁上而失真
  53. 53. Microsoft 沉浸式顯示
  54. 54. 來自硬體廠商的人機互動支援 Intel 在 2012 年 9 月份於舊金山 Intel Developer Forum (IDF) 中發表了以「 Haswell 」微架構為基 礎的第 4 代 Intel Core 處理器系列 IT 業界正與英特爾合力透過第一個英特爾感知運算 軟體開發套件 (Perceptual Computing Software Development Kit , SDK) 公開測試版,將下一波感 知運算功能融入到內含 Intel Core 處理器的平台 預計於 2012 年第四季初正式推出的軟體開發套件 ,讓硬體與軟體開發者把手勢互動、臉部與語音辨 識以及擴增實境等功能納入於未來內含 Intel Core 處理器的 Ultrabook 以及 PC 產品
  55. 55. 結論
  56. 56. 開放平台的機會 讓一般人可以用較便宜的價格取得軟硬體 設施 一般人可以容易學會電腦軟硬體技術,特 別是在程式開發部份 讓沒有資訊專業背景的人,也可以容易的 將資訊技術整合到自己的專業領域中 具資訊背景的專業人士也可以受惠於開放 平台,而加速產品的開發
  57. 57. 開放平台的應用 開放平台在教育方面,提供更活潑與簡單 的教學模式,特別是教導非技術人員,資 訊科技相關知識 智慧生活是開放平台在日常生活中應用的 具體呈現 數位內容工作者是開放平台的最大受益者 之一 人人都可以 DIY 建立自己的智慧生活
  58. 58. Demo

×