2016年11月29日 星期二

11/25Linux心得

11/25

  • The GNU Manifesto
一、作者
Richard Stallman.
  1. Emacs 編輯器的原創者
    註:Emacs 較其他程式編輯快速
  2. 先前在麻省理工學院人工智慧實驗室任教
  3. 目前為 Project GNU 的計劃主持人
  4. 成立自由軟體基金會 (Free Software Foundation,簡稱 FSF)
  5. 座右銘:If I like a program I must share it with other people who like it.
    如果我喜歡一個程式的話,那我就應該分享給其他喜歡這個程式的人
    註:論語:己所不欲,勿施於人 (幾所欲,施於人 → 不對)
    註:服務隊往往認為自己高高在上,認為其他人比自己低一等,事實上,服務隊是「學習」團,藉由此場合和工具學習更多事物,給予是滿足自己的心理
二、歷史
  1. 1983 宣告原文
  2. 1985 著成
  3. 1987 宣告修改
  4. 1993 增加腳註
註:1980s,即訂下規格一直沿用至今,架構是 30 幾年前的,能夠存活至今而繼續被使用,可見人類沒有什麼長進

三、目的
發展 GNU 作業系統計畫
UNIX 雖然不是最好的作業系統,但是至少不會太差,Richard Stallman 自信有能力把 UNIX 不足的地方補全, 使它成為一個優良的作業系統, 即名為 GNU 的作業系統。

四、提出內容
  1. 使用自由軟體之人不應該被限制
  2. 即使不使用 MS Windows,也可以使用各式各樣的自由軟體
  3. 百分之百自由的 GNU/Linux 發行版 100% free software GNU/Linux distributions
  4. 通用公共授權條款 (General Public License,簡稱 GPL)
    軟體的原始碼應該自由流通,軟體程式設計師可以透過自由、不受智慧財產權約束地與他人交換心得,才能讓軟體的品質提高。自由軟體基金會先依著作權法獲得軟體的智慧財產權,再依照美國法律註冊並加上授權條款(GPL)散佈,釋放此權力給大眾,將自由傳給所有使用者,共享、學習、修改、傳播原始碼,絕不允許傳播者將修改後的程式佔為己有,對其所傳播的程式再加入其他的限制 (按照原來的授權 → 人人皆可以修改),使 GNU 所有的版本皆能保持自由,解除誰該擁有這個系統軟體、誰被允許或不允許運用這軟體做什麼事的限制,只要遵守 GPL,不將原始碼、對其所作的修改據為己有,就擁有使用 GPL 軟體的權力,且自由軟體散佈者有義務遵守授權條款,軟體公司不將原始碼佔據為己有,賺取發行 binary 的金錢,而是只有收取整合與服務的費用而已,以避免好利之徒把自由流通的軟體為己有,而成為專屬軟體。
    ⇒ 效益:
    (1) 避免重複設計系統的工作,省下來的力氣可以轉而增進此系統的技術層次與品質 (the state of the art)
    (2) 人人都能夠取得完整的程式碼,自由修改,以符合自身需求

    註:GNU 並非公開無約束的公版軟體 (public domain)
    註:很多程式設計者對系統軟體商業化感到不悅,雖然這可能使他們能夠賺更多的錢 ,但這使他們與其他的程式設計者衝突。程式設計者對友誼最基本的表現就是把程式分享出來 ,然而當前的市場競爭架構基本上禁止程式設計者彼此之間視為朋友。
註:經 GNU 計畫認可審核的官方翻譯本,包括:العربية [ar] 阿拉伯文、català [ca] 西班牙文 (西班牙近法國);Deutsch 德文 (從拉丁文而來)

註:100%絕對會沒辦法過生活,吃素會無意識接觸葷食

註:自由軟體是社會運動(movement)的一部分,將使用者的自由當作社運推動,但未受大眾認可,仍受限於著作權,軟體營運方仍以賺取金錢利潤為目的;政治運動是社會運動中的一部分
註:自由軟體專注於使用者而非軟體,是使用者擁有自由,而非軟體有自由

  • Linux 中文文件計畫 (Chinese Linux Documentation Project,簡稱 CLDP)
一、源起
20世紀末期,1997年,Linux中文文件計畫正式開始。黃志偉完成了HOWTO-INDEX、Chinese HOWTO等文件翻譯,並命名為 Linux 中文文件計畫,許多Linux玩家開始熱心響應。 (但不聲明其為翻譯)

二、歷史
1997 年 10 月,CLDP 的 ftp 站台建置於台大物理系
1998 年 7 月,新增許多對映站台,包括中國大陸地區。CLDP FAQ完成
1998 年 8 月,黃志偉發表 SGMLtools 中文套件 v0.7,以解決中文檔案的轉換問題
1998 年 9 月,開始提供 rpm 套件包裝格式 (1998年以前用 deb)
1998 年 11 月,ftp 主站台移至 ftp.linux.org.tw,由中央研究院提供網站主機與頻寬
1998 年 12 月,搜尋引擎上線 (不必一層一層查找)
1999 年 8 月,GNU GPL中譯版上線 (非官網,不承認英文以外的其他語言。原因:其他語言有狀況時,會麻煩他來作證)

註:輔大網路 → 臺灣學術網路,不須經過申請,只要是公益,即可使用
註:中國在網站架設上有規定一定要經過申請

註:SGML
非寫程式用,只是顯示用,不能解決問題,只是標記資料方法,包括:編輯器

三、現況
2003年,做到一定程度,由商業公司行號接手(商業化),已不用志工來做。 (停止不做)

根據該網站至2003年2月為止的統計,已翻釋或翻譯中的HOWTOs和mini-HOWTOs(如何)約250 餘篇,完成度約 50%。

四、呈現
翻譯檔案,而非軟體。採中英文對照  (原因:早年翻譯能力不佳,若翻譯有覺得不妥或不滿意之處,可直接修改)

五、目的
為 Linux 提供豐富、完整、高品質的中文文件。 (數量、品質達到並存,有其困難度)

六、GNU (GNU's Not Unix)  不為 CLDP 的一部分,是另外做的
(一) 釋義
Richard Stallman 正在寫與 UNIX 相容自由軟體作業系統,其內容軟體完全以FSF制定的GPL方式釋出。
⇨ 和 UNIX 相容的系統可以讓較多的人容易接受
⇨ GNU 一定能夠執行 Unix 的程式,但是不會和 Unix 完全一樣
    (提供一般 UNIX 系統所能提供的每一件有用的東西,甚至加入更多其所缺少的東西)
  1. 擁有較長的檔名、檔案版本號碼、一個不怕當機的檔案系統
    (或許還有自動檔名補全、與終端機無關的顯示支援)
  2. C和 Lisp 都將會成為系統的程式語言
    → 可能有一個以 Lisp 為基礎的視窗系統,使好幾個 Lisp 程式和普通的 Unix 程式共同分享一個螢幕
  3. 設法支援UUCP,MIT Chaosnet,及Internet的通訊協定。
譯註:gnu 音譯 葛怒,非洲的大羚羊

註:Linux 以一個作業系統稱呼之,實際上,所指為一個作業系統的核心本身。Linux 核心以C 語言和組合語言寫成
註:一套作業系統 = 週邊公用程式 +  kernel,即系統資源管理程式

(二) 目的
能夠自由地提供此系統給欲使用的人  GNU 可幫忙省下研發作業系統所需要的昂貴經費。

(三) 當時發展狀況
■ 已經完成
(1) 1 個 Emacs 編輯器,可用 Lisp 寫巨集命令
(2) 1 個原始碼層次的除錯器 (debugger)
(3) 1 個與yacc相容的語法分析程式產生器
(4) 1 個聯結器
(5) 大概 35 個公用程式
■ 幾乎完成
(1) 1個 Shell (命令解譯器)
(2) 1 個新的、易於移植的(portable)、有最佳化功能的 C 編譯器已經可自我編譯, 可以在當年發表
■尚待研究
1 個初期的核心,但需要更多特性模擬 UNIX
■ 總結
先發展 UNIX 現有的程式,而 UNIX 下的標準介面都已經蠻完備了,只要按照標準完成程式,將來當 GNU Kernel 核心和編譯器都結束後,就能夠傳播一個穩定的、適合發展程式的 GNU 系統 (UNIX 的公用程式)。

(三) 使用者介面
X Window 桌面視窗系統 (不為 GNU 所做)
  1. 圖形介面
  2. 文字排版器:@TeX{}(後經修改衍生為 La@TeX{}→ 多用於數學公式、複雜表格)
    當時正在撰寫 nroff (Unix的文本格式化程序)
  3. 免費
  4. 可攜式 (portable)
註:桌面系統
X Window (內行人)
圖形介面 (外行人)
註:Windows → Microsoft Windows
註:圖形介面 v.s. 終端機介面
  1. 圖形介面
    (1) 整個螢幕也必須重新整理
    (2) 吃 CPU
    (3) 顯卡處理

    註:使用 word 軟體開啟所耗費的時間慢
  2. 終端機介面
    (1) 僅需跑幾個 byte
  3. Nano 還有一點圖形概念;Vi 完全純文字,更快

註:安裝 Debian 時,會自動安裝 libreoffice,但不為 Debian 所開發製作
註:強調使用,而非使用方式;關鍵是寫程式,而非使用何種程式語言;重點是做報告,而非使用 word

(四) GNU 的理想最容易遭受反駁質疑的部分
  1. 若它是免費的,就沒有人會用它,因為這表示他們沒有任何協助可以依賴
    Nobody will use it if it is free, because that means they can't rely on any support.
  2. 你必須對程式收費,用來支持提供支援服務所需之費用
    You have to charge for the program to pay for providing the support.
  3. 沒有廣告的話,就沒辦法讓很多人知道你的東西,而你必須對程式收錢以支持廣告經費You cannot reach many people without advertising, and you must charge for the program to support that.
  4. 廣告一個別人可以免費得到的程式是沒有用的
    It's no use advertising a program people can get free.
  5. 我的公司需要一個專屬的作業系統才能夠較有競爭力
    My company needs a proprietary operating system to get a competitive edge
  6. 難道程式師不應該從他的創造力獲得回報嗎?
    Don't programmers deserve a reward for their creativity?
  7. 難道程式師不能為他的創造力要求報酬嗎?
    Shouldn't a programmer be able to ask for a reward for his creativity?
  8. 程式師會沒工作而挨餓嗎?
    Won't programmers starve?
  9. 難道人們不應有控制他們的創造力該如何運用的權力嗎?
    Don't people have a right to control how their creativity is used?
  10. 競爭可以促進進步
    Competition makes things get done better.
  11. 會不會因為沒有金錢上的誘因而大家都停止寫程式了呢?
    Won't everyone stop programming without a monetary incentive?

(五) 支援服務
方式:準備一切所需的原始碼和工具,聘請任何一位可以勝任的人解決問題
就 UNIX 而言,大部分的企業無法負擔原始碼的價錢;GNU 相對就容易許多
種類
程式維修支援 (real programming):付費取得維修,而非取得軟體
問題:若無足夠的人數和自己有相同的問題,軟體公司可能無法支援
純服務支援 (mere handholding):可提供對電腦一無所知的使用者需要的幫助與服務

若使用者寧願付費購買一個有售後服務的軟體,相對也願意為免費得到的軟體購買服務
⇒ 這些服務公司會在品質和價錢上競爭,使用者不受限於特定一 家公司

(六) 他人的貢獻方式
  1. 時間
  2. 金錢
  3. 程式
  4. 機器
註:可做有關 GNU、無關 GNU 的事
註:奉獻人、創新絕大多數都是大學生


註:想做就去做,沒有等我下次有空再去做這回事,必須立刻去做
註:人不需要將生命中的每一分每一秒投資在工作中,除非窮困到沒錢吃下一餐,否則並不需要存這麼多錢
註:Google 員工五個工作天,四天工作,五天領薪水;HP,允許申請服務休假,新水照給

(七) 智慧財產權
GNU 將會把系統軟體移出競爭的領域。

控制某人如何運用他的點子 → 實際上包含控制他人的生活,通常會使得他們的日子更難過

古時候並沒有智慧財產權的概念,有一段很長的時間在非小說的領域裡 面,作者常常引用他人的作品,這是很多作者的作品能夠部份被保留下來的唯一途徑。

實際上智慧財產權並非固有的(天生的) 權力,只不過是社會給予的特權,政府所認同的那種智慧財產權是為了特定的目的而透過特別的立法程序創造出來的,例如:智慧財產權系統原為了鼓勵創作而設立;專利制度是為了鼓勵發明者公開其發明的詳細內容而設立,目的是為了幫助整個社會,而不是發明者。

一般認為給予這個權利可以對這整個社會有所幫助,但是我們必須個案思考:我們給予這些權利後真的變得更好了嗎?

當時,17年的專利有效期相對於科技的進步相當短暫。因為專利權只是製造商之間的問題,而且對他們而言,簽一個專利合約的負擔相對較小 ,所以專利權對他們而言通常不會有什麼傷害,也沒有妨礙到使用專利產品的個人。

程式設計師還有很多不需要販賣軟體使用權、限制軟體的拷貝,也可以維持生計的方法,並非是做軟體生意的唯一手段。由於販賣軟體幫程式設計師和商人賺最多的錢,所以是目前普遍的方法,而非因為它是維持生計的唯一方法。

人還是會為了財富以外的東西寫程式,但是若有賺大錢的機會,就會期待、爭求它。

註:新資低的組織的競爭力一定比薪資高的組織差,但若禁止高薪政策,新資低的組織就不一定較差

註:不要去控制別人的生活,只是提供生活的參考,不一定要照做

註:競爭才能促進社會進步? 合作才能真正達到社會進步
註:第一名又怎樣,很多東西都無法實現

註:程式設計師不會靠錢度日,無能者才會靠錢維持生活
註:心態要轉換到別的角度看人生,不要眼裡只有錢

註:欲取得品質良好的空氣,沒那麼簡單,並非隨手可得,需經管制、努力。努力的過程別人可不用參與,但努力成果別人可享受


(八) 結論
長遠來看,免費提供軟體是邁向不虞匱乏的世界的一步驟,在那世界裡,沒有人需要為了生計而辛勤工作。

不是用限制解決問題,而是開放。

雖然我們利用現有的科技,已經大量減少達到目前生產力所需要的工作量,但由於官僚系統和各種角力對競爭的阻礙,而使達到有生產力的活動往往伴隨著很多沒有生產力的活動,引此所減少的工作量當中只有其中的一部份轉化成工作者的閒暇。

然而,自由軟體的觀念在軟體的生產上可以大幅度地減少這些沒有生產力的羈絆,使科技對生產力的增益能實質上減少我們的工作量。


(九) 圖示









註:學校可透過鼓勵所有學生學習及改進程式碼的方式提供更富教育性的環境
註:哈佛電腦實驗室曾有此政策:不允許一個不能公開展示原始碼的程式安裝到系統中
註:不可能有一臺電腦全部都是自由軟體或專屬軟體,自由軟體與專屬軟體應該共存,可讀取開放文件格式 (Open Document Format,簡稱 ODF)與非自由軟體的封閉文件格式


文書
表格
簡報
繪圖
開放文件格式
OpenOffice
Writer
OpenOffice
Calc
OpenOffice
Impress
OpenOffice
Draw
.odt
.ods
.odp
.odg
封閉文件格式
MS Office
Word
MS Office
Excel
MS Office
PowerPoint
Ulead
PhotoImpact
.doc
.xls
.ppt
.ufo


  • Linux 文件計畫 The Linux Documentation Project 
Website:http://www.tldp.org/


reference:
The GNU Manifesto [GNU 計畫立場聲明] http://linux.org.tw/CLDP/OLD/doc/gnu-manifesto.html

沒有留言:

張貼留言