linux鸟哥私房菜 的学习进度怎么安排

相关文章推荐:
linux私房菜
今天收到《鸟哥的LINUX私房菜-基础学习篇》(第三版)根据书中的前言以及我的搜索,增加了我的外部链接“鸟哥的LINUX私房菜”,呵呵,将相关的电子版文件及有关讨论的网站全部链接上了,分享给大家!&一起学习LINUX!让我们共同努力!
其他文章推荐
想看《鸟哥linux私房菜》,可是买一本新书又太贵!不是不想买,囊中羞涩,于是想在这里,找一本已经用过的书!希望大家能够,为了小弟的学习,忍痛割爱将您手里的那本经典书,卖给小弟!价格可以再商量!静候佳音!!我的联系方式:E-mailQ:[本帖最后由woaila ......
鸟哥的Linux私房菜:服务器架设篇,那位有可以卖我!书旧点没关系,以2手价格卖我有的给我发站内短信!...
本帖最后由蓝色旅程于0:59编辑服务器架设篇主要讲的都是常见的服务器架设从简单的DHCP到王道的WEB服务器都有用了很多笔墨在写配图也很丰富,基本上照着做就没什么问题,但想了解原理的童鞋,还是看下鸟哥的文字吧另附例图:欢迎下载更欢迎交流============== ......
求鸟哥的LINUX私房菜基础学习篇第二版课后习题答案...
&终于零零散散地看完了第八章:Linux磁盘与文件系统管理。本来就是个硬件白痴,学这章内容真是连逼带哄才over的,效果也不怎么好,但总算知道了什么是ex2与ex3了,呵呵。&学完这一章,回过去总结一下所学,发现这章第一页其实就概括了:硬盘组成、inode与连接 ......
&&终于买了《鸟哥的Linux私房菜--基础学习篇》,但那已是一个多月之前的事情了;终于打开了这本书,因为实在受打击了--每每寻找网上的招聘信息,那“linuxadministrator”的字样总像一根刺卡在喉咙里,痛啊!于是,新年的第一个决心,是把这本书在一个月之 ......
.在X-WindowSystem的架構裡面,主要有幾個元件?各有何重點?答:X-WindowSystem有三個元件,分別是XServer,XClient與WindowManager三部分,分別的工作如下:&&&XServer:主要用於主機上面繪製影像的功能!而且他可以控管所有的主機上面的顯示介面硬體,諸 ......
以下内容完全摘自《鸟哥的Linux私房菜》引用网址--&http://linux.vbird.org/Linux目錄配置的依據--FHS因為利用Linux來開發產品或distributions的社群/公司與個人實在太多了,如果每個人都用自己的想法來配置檔案放置的目錄,那麼將可能造成很多管理上的困擾。你能想 ......
&&&这两天复习了CC的multisite,主要是在chmaster的时候遇到了点问题(改变流的mastership后,还要修改typeexplorer里的branch的mastership,才能让vob与pvob一致)。Linux学得有点散了,断断续续的:学习了第6章--Linux的文件属性与目录配置,重点也就 ......
6.2.3目录属性的意义针对目录,r,w,x是什么意思?简单而言:r(readcontentsindirectory)表示具有读取目录结构清单的权限,所以当您拥有读取(r)目录的权限时,就可以利用ls命令讲该目录的内容列出来w(modifycontentsofdirectory)可吸入权限对目录来说是很有用的.因为它将表示将 ......
文章推荐:
盛拓传媒:
友情链接:
特别鸣谢:
北京皓辰网域网络信息技术有限公司. 版权所有
北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证:编号(京)字第1149号
CHINAUNIX推荐文章解答你所有技术难题1.1 Linux是什麼1.1.1 Linux是什麼?作業系統/應用程式?Linux就是一套作業系統!如同下圖所示,Linux就是核心與系統呼叫介面那兩層。圖1.1.1、作業系統的角色早期的Linux是針對386來開發的,由於Linux只是一套作業系統並不含有其他的應用程式,因此很多工程師在下載了 Linux核心並且實際安裝之後,就只能看著電腦開始運作了!接下來這些高級工程師為了自己的需求,再在Linux上面安裝他們所需要的軟體就是了。由於不同的硬體他的功能函數並不相同,例如IBM的Power CPU與Intel的x86架構就是不一樣!所以同一套作業系統是無法在不同的硬體平台上面運作的!如果能夠參考硬體的功能函數並據以修改你的作業系統程式碼,那經過改版後的作業系統就能夠在另一個硬體平台上面運作了。這個動作我們通常就稱為『軟體移植』了!Linux由於是Open Source的作業系統,所以他的程式碼可以被修改成適合在各種機器上面運行的,也就是說,Linux是具有『可移植性』,這可是很重要的一個功能喔! ^_^Linux提供了一個完整的作業系統當中最底層的硬體控制與資源管理的完整架構,這個架構是沿襲Unix良好的傳統來的,所以相當的穩定而功能強大!1.1.2 Linux之前,Unix的歷史Linux的核心是由Linus Torvalds在1991年的時候給他開發出來的。讲历史的时候来了,木有兴趣的请绕路~~--------------------------------------------------这是一条开始讲故事的分界线----------------------------------------------------------------------------------------------------------------------------------------1969年以前:一個偉大的夢想--Bell,MIT與GE的『Multics』系統因為那個時候的輸入設備只有讀卡機、輸出設備只有印表機,使用者也無法與作業系統互動(批次型作業系統)。在那之後,由於硬體與作業系統的改良,使得後來可以使用鍵盤來進行資訊的輸入。不過,早期的電腦並不像現在的個人電腦一樣普遍,他可不是一般人碰的起的呢~在一間學校裡面,主機畢竟可能只有一部,如果多人等待使用,那怎麼辦?大家還是得要等待啊!好在1960年代初期麻省理工學院(MIT)發展了所謂的:『相容分時系統(Compatible Time-Sharing System, CTSS)』,它可以讓大型主機透過提供數個終端機(terminal)以連線進入主機,來利用主機的資源進行運算工作。架構有點像這樣:圖1.1.2、早期主機與終端機的相關性圖示Tips這個相容分時系統可以說是近代作業系統的始祖呢!他可以讓多個使用者在某一段時間內分別使用CPU的資源,感覺上你會覺得大家是同時使用該主機的資源!事實上,是CPU在每個使用者的工作之間進行切換,在當時,這可是個劃時代的技術喔!如此一來,無論主機在哪裡,只要在終端機前面進行輸入輸出的作業,就可利用主機提供的功能了。不過,需要注意的是,此時終端機只具有輸入/輸出的功能,本身完全不具任何運算或者軟體安裝的能力。而且,比較先進的主機大概也只能提供30個不到的終端機而已。為了更加強化大型主機的功能,以讓主機的資源可以提供更多使用者來利用,所以在1965年前後,由貝爾實驗室(Bell)、麻省理工學院(MIT)及奇異公司(GE, 或稱為通用電器)共同發起了Multics的計畫 (註1),Multics計畫的目的是想要讓大型主機可以達成提供300個以上的終端機連線使用的目標。不過,到了1969年前後,計畫進度落後,資金也短缺,所以該計畫雖然繼續在研究,但貝爾實驗室還是退出了該計畫的研究工作。Tips 最終Multics還是有成功的發展出他們的系統,完整的歷史說明可以參考:http://www.multicians.org/網站內容。Multics計畫雖然後來沒有受到很大的重視,但是他培養出來的人材是相當優秀的! ^_^1969年:Ken Thompson的小型file server system在認為Multics計畫不可能成功之後,貝爾研究室就退出該計畫。不過,原本參與Multics計畫的人員中,已經從該計畫當中獲得一些點子,Ken Thompson (註2)就是其中一位!Thompson因為自己的需要,希望開發一個小小的作業系統以提供自己的需求。在開發時,有一部DEC (Digital Equipment Corporation)公司推出的PDP-7剛好沒人使用,於是他就準備針對這部主機進行作業系統核心程式的撰寫。本來Thompson應該是沒時間的(有家有小孩的宿命?),無巧不巧的是,在1969年八月份左右,剛好Thompson的妻兒去了美西探親,於是他有了額外的一個月的時間好好的待在家將一些構想實現出來!經過四個星期的奮鬥,他終於以組合語言(汇编语言,Assembler)寫出了一組核心程式,同時包括一些核心工具程式,以及一個小小的檔案系統。那個系統就是Unix的原型!當時Thompson將Multics龐大的複雜系統簡化了不少,於是同實驗室的朋友都戲稱這個系統為:Unics。(當時尚未有Unix的名稱)Thompson 的這個檔案系統有兩個重要的概念,分別是:所有的程式或系統裝置都是檔案不管建構編輯器還是附屬檔案,所寫的程式只有一個目的,且要有效的完成目標。這些概念在後來對於Linux的發展有相當重要的影響喔!Tips 套一句常聽到的廣告詞:『科技始終來自於人性』,當初Thompson會寫這套Unix核心程式,卻是想要移植一套名為『太空旅遊』的遊戲呢! ^_^1973年:Unix的正式誕生,Ritchie等人以C語言寫出第一個正式Unix核心由於Thompson寫的那個作業系統實在太好用了,所以在貝爾實驗室內部廣為流傳,並且數度經過改版。但是因為Unics本來是以組合語言寫成的,而如第零章計算機概論談到的,組合語言(汇编语言)具有專一性,加上當時的電腦機器架構都不太相同,所以每次要安裝到不同的機器都得要重新編寫組合語言,真不方便!後來Thompson與Ritchie合作想將Unics改以高階程式語言來撰寫。當時現成的高階程式語言有B語言。但是由B語言所編譯出來的核心效能不是很好。後來Dennis Ritchie (註3) 將B語言重新改寫成C語言,再以C語言重新改寫與編譯Unics的核心,最後正名與發行出Unix的正式版本!Tips 這群高級駭客實在很厲害!因為自己的需求來開發出這麼多好用的工具!C程式語言開發成功後,甚至一直沿用至今呢!你說厲不厲害啊!這個故事也告訴我們,不要小看自己的潛能喔!你想作的,但是現實生活中沒有的,就動手自己搞一個來玩玩吧!由於貝爾實驗室是隸屬於美國電信大廠AT&T公司的,只是AT&T當時忙於其他商業活動,對於Unix並不支持也不排斥。此外,Unix在這個時期的發展者都是貝爾實驗室的工程師,這些工程師對於程式當然相當有研究,所以,Unix在此時當然是不容易被一般人所接受的!不過對於學術界的學者來說,這個 Unix 真是學者們進行研究的福音!因為程式碼可改寫並且可作為學術研究之用嘛!需要特別強調的是,由於Unix是以較高階的C語言寫的,相對於組合語言需要與硬體有密切的配合,高階的C語言與硬體的相關性就沒有這麼大了!所以,這個改變也使得Unix很容易被移植到不同的機器上面喔!1977年:重要的Unix分支--BSD的誕生雖然貝爾屬於AT&T,但是AT&T此時對於Unix是採取較開放的態度,此外,Unix是以高階的C語言寫成的,理論上是具有可移植性的!亦即只要取得Unix的原始碼,並且針對大型主機的特性加以修訂原有的原始碼(Source Code),就可能將Unix移植到另一部不同的主機上頭了。所以在1973年以後,Unix便得以與學術界合作開發!最重要的接觸就是與加州柏克萊(Berkeley)大學的合作了。柏克萊大學的Bill Joy (註4)在取得了Unix的核心原始碼後,著手修改成適合自己機器的版本,並且同時增加了很多工具軟體與編譯程式,最終將它命名為Berkeley Software Distribution (BSD)。這個BSD是Unix很重要的一個分支,Bill Joy也是Unix業者『Sun(昇陽)』這家公司的創辦者!Sun公司即是以BSD發展的核心進行自己的商業Unix版本的發展的。(後來可以安裝在x86硬體架構上面FreeBSD即是BSD改版而來!)1979年:重要的 System V 架構與版權宣告由於Unix的高度可移植性與強大的效能,加上當時並沒有版權的糾紛,所以讓很多商業公司開始了Unix作業系統的發展,例如AT&T自家的System V、IBM的AIX以及HP與DEC等公司,都有推出自家的主機搭配自己的Unix作業系統。但是,如同我們前面提到的,作業系統的核心(Kernel)必須要跟硬體配合,以提供及控制硬體的資源進行良好的工作!而在早期每一家生產電腦硬體的公司還沒有所謂的『協定』的概念,所以每一個電腦公司出產的硬體自然就不相同囉!因此他們必須要為自己的電腦硬體開發合適的Unix系統。例如在學術機構相當有名的Sun、Cray與HP就是這一種情況。他們開發出來的Unix作業系統以及內含的相關軟體並沒有辦法在其他的硬體架構下工作的!另外,由於沒有廠商針對個人電腦設計Unix系統,因此,在早期並沒有支援個人電腦的Unix作業系統的出現。Tips 如同相容分時系統的功能一般,Unix強調的是多人多工的環境!但早期的286個人電腦架構下的CPU是沒有能力達到多工的作業,因此,並沒有人對移植Unix到x86的電腦上有興趣。每一家公司自己出的Unix雖然在架構上面大同小異,但是卻真的僅能支援自身的硬體,所以囉,早先的Unix只能與伺服器(Server)或者是大型工作站(Workstation)劃上等號!但到了 1979 年時,AT&T推出System V 第七版 Unix 後,這個情況就有點改善了。這一版最重要的特色是可以支援x86架構的個人電腦系統,也就是說 System V 可以在個人電腦上面安裝與運作了。不過因為AT&T由於商業的考量,以及在當時現實環境下的思考,於是想將Unix的版權收回去(貝爾实验室屬於AT&T)。因此,AT&T在1979年發行的第七版Unix中,特別提到了『不可對學生提供原始碼』的嚴格限制!同時,也造成Unix業界之間的緊張氣氛,並且也引爆了很多的商業糾紛~Tips 目前被稱為純種的Unix指的就是System V以及BSD這兩套囉!1984年之一:x86架構的Minix作業系統開始撰寫並於兩年後誕生關於1979年的版權聲明中,影響最大的當然就是學校教Unix核心原始碼相關學問的教授了!想一想,如果沒有核心原始碼,那麼如何教導學生認識Unix呢?這問題對於Andrew Tanenbaum (譚寧邦,註5)教授來說,實在是很傷腦筋的!不過,學校的課程還是得繼續啊!那怎麼辦?既然1979年的Unix第七版可以在Intel的x86架構上面進行移植,那麼是否意味著可以將Unix改寫並移植到x86上面了呢?在這個想法上,譚寧邦教授於是乎自己動手寫了Minix這個Unix Like的核心程式!在撰寫的過程中,為了避免版權糾紛,譚寧邦完全不看Unix核心原始碼!並且強調他的Minix必須能夠與Unix相容才行!譚寧邦在1984年開始撰寫核心程式,到了1986年終於完成,並於次年出版Minix相關書籍,同時與新聞群組(BBS及News)相結合~Tips 之所以稱為Minix的原因,是因為他是個Mini (微小的) 的Unix系統囉!^_^這個Minix版本比較有趣的地方是,他並不是完全免費的,無法在網路上提供下載!必須要透過磁片/磁帶購買才行!雖然真的很便宜~不過,畢竟因為沒有在網路上流傳,所以Minix的傳遞速度並沒有很快速!此外,購買時,隨磁片還會附上Minix的原始碼!這意味著使用者可以學習Minix的核心程式設計概念喔!(這個特色對於Linux的啟始開發階段,可是有很大的關係喔!)此外,Minix作業系統的開發者僅有譚寧邦教授,因為學者很忙啊 (鳥哥當了老師之後,才發現,真的忙...)!加上譚寧邦始終認為Minix主要用在教育用途上面,所以對於Minix是點到為止!沒錯,Minix是很受歡迎,不過,使用者的要求/需求的聲音可能就比較沒有辦法上升到比較高的地方了!這樣說,你明白吧?^_^1984年之二:GNU計畫與FSF基金會的成立Richard Mathew Stallman(史托曼)在1984年發起的GNU計畫,對於現今的自由軟體風潮,真有不可磨滅的地位!目前我們所使用的很多自由軟體或開源軟體,幾乎均直接或間接受益於GNU這個計畫呢!那麼史托曼是何許人也?為何他會發起這個GNU計畫呢?一個分享的環境:Richard Mathew Stallman(生於1953年,網路上自稱的ID為RMS,註6)從小就很聰明!他在1971年的時候,進入駭客圈中相當出名的人工智慧實驗室(AI Lab.),這個時候的駭客專指電腦功力很強的人,而非破壞電腦的怪客(cracker)喔!當時的駭客圈對於軟體的著眼點幾乎都是在『分享』,駭客們都認為互相學習對方的程式碼,這樣才是產生更優秀的程式碼的最佳方式!所以 AI 實驗室的駭客們通常會將自己的程式碼公佈出來跟大家討論喔!這個特色對於史托曼的影響很大!不過,後來由於管理階層以及駭客群們自己的生涯規劃等問題,導致實驗室的優秀駭客離開該實驗室,並且進入其他商業公司繼續發展優秀的軟體。但史托曼並不服輸,仍然持續在原來的實驗室開發新的程式與軟體。後來,他發現到,自己一個人並無法完成所有的工作,於是想要成立一個開放的團體來共同努力!使用Unix開發階段:1983年以後,因為實驗室硬體的更換,使得史托曼無法繼續以原有的硬體與作業系統繼續自由程式的撰寫~而且他進一步發現到,過去他所使用的Lisp作業系統,是麻省理工學院的專利軟體,是無法共享的,這對於想要成立一個開放團體的史托曼是個阻礙。於是他便放棄了Lisp這個系統。後來,他接觸到Unix這個系統,並且發現,Unix在理論與實際上,都可以在不同的機器間進行移植。雖然 Unix 依舊是專利軟體,但至少 Unix 架構上還是比較開放的!於是他開始轉而使用Unix系統。因為Lisp與Unix是不同的系統,所以,他原本已經撰寫完畢的軟體是無法在Unix上面運行的!為此,他就開始將軟體移植到Unix上面。並且,為了讓軟體可以在不同的平台上運作,因此,史托曼將他發展的軟體均撰寫成可以移植的型態!也就是他都會將程式的原始碼公佈出來!GNU計畫的推展(註7):1984年,史托曼開始GNU計畫,這個計畫的目的是:建立一個自由、開放的Unix作業系統(Free Unix)。但是建立一個作業系統談何容易啊!而且在當時的GNU是僅有自己一個人單打獨鬥的史托曼~這實在太麻煩,但又不想放棄這個計畫,那可怎麼辦啊?聰明的史托曼乾脆反其道而行~『既然作業系統太複雜,我就先寫可以在Unix上面運行的小程式,這總可以了吧?』在這個想法上,史托曼開始參考Unix上面現有的軟體,並依據這些軟體的作用開發出功能相同的軟體,且開發期間史托曼絕不看其他軟體的原始碼,以避免吃上官司。後來一堆人知道免費的GNU軟體,並且實際使用後發現與原有的專利軟體也差不了太多,於是便轉而使用GNU軟體,於是GNU計畫逐漸打開知名度。雖然GNU計畫漸漸打開知名度,但是能見度還是不夠。這時史托曼又想:不論是什麼軟體,都得要進行編譯成為二進位檔案(binary program)後才能夠執行,如果能夠寫出一個不錯的編譯器,那不就是大家都需要的軟體了嗎?因此他便開始撰寫C語言的編譯器,那就是現在相當有名的GNU C Compiler(gcc)!這個點相當的重要!這是因為C語言編譯器版本眾多,但都是專利軟體,如果他寫的C編譯器夠棒,效能夠佳,那麼將會大大的讓GNU計畫出現在眾人眼前!如果忘記啥是編譯器,請回到第零章去瞧瞧編譯程式吧!但開始撰寫GCC時並不順利,為此,他先轉而將他原先就已經寫過的Emacs編輯器寫成可以在Unix上面跑的軟體,並公布原始碼。Emacs是一種程式編輯器,他可以在使用者撰寫程式的過程中就進行程式語法的檢驗,此一功能可以減少程式設計師除錯的時間!因為Emacs太優秀了,因此,很多人便直接向他購買。此時網際網路尚未流行,所以,史托曼便藉著Emacs以磁帶(tape)出售,賺了一點錢,進而開始全力撰寫其他軟體。並且成立自由軟體基金會(FSF, Free Software Foundation),請更多工程師與志工撰寫軟體。終於還是完成了GCC,這比Emacs還更有幫助!此外,他還撰寫了更多可以被呼叫的C函式庫(GNU C library),以及可以被使用來操作作業系統的基本介面BASH shell!這些都在1990年左右完成了!Tips 如果純粹使用文字編輯器來編輯程式的話,那麼程式語法如果寫錯時,只能利用編譯時發生的錯誤訊息來修訂了,這樣實在很沒有效率。Emacs則是一個很棒的編輯器!注意!是編輯(editor)而非編譯(compiler)!他可以很快的立刻顯示出你寫入的語法可能有錯誤的地方,這對於程式設計師來說,實在是一個好到不能再好的工具了!所以才會這麼的受到歡迎啊!GNU的通用公共許可證:到了1985年,為了避免GNU所開發的自由軟體被其他人所利用而成為專利軟體,所以他與律師草擬了有名的通用公共許可證(General Public License, GPL),並且稱呼他為copyleft(相對於專利軟體的copyright!)。關於GPL的相關內容我們在下一個小節繼續談論,在這裡,必須要說明的是,由於有GNU所開發的幾個重要軟體,如:EmacsGNU C (GCC)GNU C Library (glibc)Bash shell造成後來很多的軟體開發者可以藉由這些基礎的工具來進行程式開發!進一步壯大了自由軟體團體!這是很重要的!不過,對於GNU的最初構想『建立一個自由的Unix作業系統』來說,有這些優秀的程式是仍無法滿足,因為,當下並沒有『自由的Unix核心』存在...所以這些軟體仍只能在那些有專利的 Unix平台上工作~~一直到Linux的出現...更多的FSF開發的軟體可以參考如下網頁:https://www.fsf.org/resourcesTips 事實上,GNU 自己開發的核心稱為hurd,是一個架構相當先進的核心。不過由於開發者在開發的過程中對於系統的要求太過於嚴謹,因此推出的時程一再延後,所以才有後來 Linux 的開發!1988年:圖形介面XFree86計畫有鑑於圖形使用者介面(Graphical User Interface, GUI)的需求日益加重,在1984年由MIT與其他協力廠商首次發表了X Window System,並且更在1988年成立了非營利性質的XFree86這個組織。所謂的XFree86其實是X Window System + Free + x86的整合名稱呢!而這個XFree86的GUI介面更在Linux的核心1.0版於1994年釋出時,整合於Linux作業系統當中!Tips 為什麼稱圖形使用者介面為X呢?因為由英文單字來看,Window的W接的就是X啦!意指Window的下一版就是了!需注意的是,X Window並不是X Windows喔!1991年:芬蘭大學生Linus Torvalds的一則簡訊到了1991年,芬蘭的赫爾辛基大學的Linus Torvalds在BBS上面貼了一則消息,宣稱他以bash, gcc等 GNU 的工具寫了一個小小的核心程式,該核心程式單純是個玩具,不像 GNU 那麼專業。不過該核心程式可以在Intel的386機器上面運作就是了。這讓很多人很感興趣!從此開始了Linux不平凡的路程!----------------------------------------------这是一条讲完故事的分界线-----------------------------------------------------------------------------------------这是一条介绍GNU和软件专利的分界线----------------------------1.1.3 關於GNU計畫、自由軟體與開放原始碼GNU計畫對於整個自由軟體與開放原始碼軟體來說是佔有非常重要的角色!底下我們就來談談這咚咚吧!自由軟體的活動:1984年創立GNU計畫與FSF基金會的Stallman先生認為,寫程式最大的快樂就是讓自己發展的良好的軟體讓大家來使用了!另外,如果使用方撰寫程式的能力比自己強,那麼當對方修改完自己的程式並且回傳修改後的程式碼給自己,那自己的程式撰寫功力無形中就更往上爬了!這就是最早之前 AI 實驗室的駭客風格!而既然程式是想要分享給大家使用的,不過,每個人所使用的電腦軟硬體並不相同,既然如此的話,那麼該程式的原始碼(Source code)就應該要同時釋出,這樣才能方便大家修改而適用於每個人的電腦中呢!這個將原始碼連同軟體程式釋出的舉動,在 GNU 計畫的範疇之內就稱為自由軟體(Free Software)運動!此外,史托曼同時認為,如果你將你程式的Source code分享出來時,若該程式是很優秀的,那麼將會有很多人使用,而每個人對於該程式都可以查閱source code,無形之中,就會有一票人幫你除錯囉!你的這支程式將會越來越壯大!越來越優秀呢!自由軟體的版權GNU GPL:而為了避免自己的開發出來的Open source自由軟體被拿去做成專利軟體,於是Stallman同時將GNU與FSF發展出來的軟體,都掛上GPL的版權宣告~這個FSF的核心觀念是『版權制度是促進社會進步的手段,版權本身不是自然權力。』對於FSF有興趣或者對於GNU想要更深入的瞭解時,請參考朝陽科技大學洪朝貴教授的網站http://people.ofset.org/~ckhung/a/c_83.php,或直接到GNU去:http://www.gnu.org 裡面有更為深入的解說!Tips 為什麼要稱為GNU呢?其實GNU是GNU's Not Unix的縮寫,意思是說,GNU並不是Unix啊!那麼GNU又是什麼呢?就是GNU's Not Unix嘛!.....如果你寫過程式就會知道,這個GNU = GNU's Not Unix可是無窮迴圈啊!忙碌~另外,什麼是Open Source呢?所謂的source code是程式發展者寫出的原始程式碼,Open Source就是,軟體在發佈時,同時將作者的原始碼一起公布的意思!自由(Free)的真諦:那麼這個GPL(GNU General Public License, GPL)是什麼玩意兒?為什麼要將自由軟體掛上GPL的『版權宣告』呢?這個版權宣告對於作者有何好處?首先,Stallman對GPL一直是強調Free的,這個Free的意思是這樣的:&Free software& is a matter of liberty, not price. To understand the concept, you should think of &free speech&, not &free beer&. &Free software& refers to the users' freedom to run, copy, distribute, study, change, and improve the software 大意是說,Free Software(自由軟體)是一種自由的權力,並非是『價格!』舉例來說,你可以擁有自由呼吸的權力、你擁有自由發表言論的權力,但是,這並不代表你可以到處喝『免費的啤酒!(free beer)』,也就是說,自由軟體的重點並不是指『免費』的,而是指具有『自由度, freedom』的軟體,史托曼進一步說明了自由度的意義是:使用者可以自由的執行、複製、再發行、學習、修改與強化自由軟體。這無疑是個好消息!因為如此一來,你所拿到的軟體可能原先只能在Unix上面跑,但是經過原始碼的修改之後,你將可以拿他在Linux或者是Windows上面來跑!總之,一個軟體掛上了GPL版權宣告之後,他自然就成了自由軟體!這個軟體就具有底下的特色:取得軟體與原始碼:你可以根據自己的需求來執行這個自由軟體;複製:你可以自由的複製該軟體;修改:你可以將取得的原始碼進行程式修改工作,使之適合你的工作;再發行:你可以將你修改過的程式,再度的自由發行,而不會與原先的撰寫者衝突;回饋:你應該將你修改過的程式碼回饋於社群!但請特別留意,你所修改的任何一個自由軟體都不應該也不能這樣:修改授權:你不能將一個GPL授權的自由軟體,在你修改後而將他取消GPL授權~單純販賣:你不能單純的販賣自由軟體。也就是說,既然GPL是站在互助互利的角度上去開發的,你自然不應該將大家的成果佔為己有,對吧!因此你當然不可以將一個GPL軟體的授權取消,即使你已經對該軟體進行大幅度的修改!那麼自由軟體也不能販賣嗎?當然不是!還記得上一個小節裡面,我們提到史托曼藉由販賣Emacs取得一些經費,讓自己生活不至於匱乏吧?是的!自由軟體是可以販售的,不過,不可僅販售該軟體,應同時搭配售後服務與相關手冊~這些可就需要工本費了呢!自由軟體與商業行為:很多人還是有疑問,目前不是有很多Linux開發商嗎?為何他們可以販售Linux這個GPL授權的軟體?原因很簡單,因為他們大多都是販售『售後服務!』所以,他們所使用的自由軟體,都可以在他們的網站上面下載!(當然,每個廠商他們自己開發的工具軟體就不是GPL的授權軟體了!)但是,你可以購買他們的Linux光碟,如果你購買了光碟,他們會提供相關的手冊說明文件,同時也會提供你數年不等的諮詢、售後服務、軟體升級與其他協力工作等等的附加價值!所以說,目前自由軟體工作者,他們所賴以維生的,幾乎都是在『服務』這個領域呢!畢竟自由軟體並不是每個人都會撰寫,有人有需要你的自由軟體時,他就會請求你的協助,此時,你就可以透過服務來收費了!這樣來說,自由軟體確實還是具有商業空間的喔!Tips 很多人對於GPL授權一直很疑惑,對於GPL的商業行為更是無法接受!關於這一點,鳥哥在這裡還是要再次的申明,GPL是可以從事商業行為的!而很多的作者也是藉由這些商業行為來得以取得生活所需,更進一步去發展更優秀的自由軟體!千萬不要聽到『商業』就排斥!這對於發展優良軟體的朋友來說,是不禮貌的!上面提到的大多是與使用者有關的項目,那麼 GPL 對於自由軟體的作者有何優點呢?大致的優點有這些:軟體安全性較佳;軟體執行效能較佳;軟體除錯時間較短;貢獻的原始碼永遠都存在。這是因為既然是提供原始碼的自由軟體,那麼你的程式碼將會有很多人幫你查閱,如此一來,程式的漏洞與程式的優化將會進展的很快!所以,在安全性與效能上面,自由軟體一點都不輸給商業軟體喔!此外,因為GPL授權當中,修改者並不能修改授權,因此,你如果曾經貢獻過程式碼,嘿嘿!你將名留青史呢!不錯吧! ^_^對於程式開發者來說,GPL實在是一個非常好的授權,因為大家可以互相學習對方的程式撰寫技巧,而且自己寫的程式也有人可以幫忙除錯。那你會問啊,對於我們這些廣大的終端用戶,GPL有沒有什麼好處啊?有啊!當然有!雖然終端用戶或許不會自己編譯程式碼或者是幫人家除錯,但是終端用戶使用的軟體絕大部分就是GPL的軟體,全世界有一大票的工程師在幫你維護你的系統,這難道不是一件非常棒的事嗎? ^_^Tips 就跟人類社會的科技會進步一樣,授權也會進步喔!因應原始碼分割與重組的問題,與其他開源軟體的授權包容性,以及最重要的數位版權管理 (Digital Rights Management, DRM) 等問題,GPL 目前已經出到第三版 GPLv3。但是,目前使用最廣泛的,還是 GPLv2 喔!包括 Linux 核心就還是使用 GPLv2 的說!開放原始碼:由於自由軟體使用的英文為 free software,這個 free 在英文是有兩種以上不同的意義,除了自由之外,免費也是這個單字!因為有這些額外的聯想,因此許多的商業公司對於投入自由軟體方面確實是有些疑慮存在的!許多人對於這個情況總是有些擔心~為了解決這個困擾,1998 年成立的『開放原始碼促進會 (Open Source Initiative)』提出了開放原始碼 (Open Source,亦可簡稱開源軟體) 這一名詞!另外,並非軟體可以被讀取原始碼就可以被稱為開源軟體喔!該軟體的授權必須要符合底下的基本需求,才可以算是 open source 的軟體哩!(註8)公佈原始碼且用戶具有修改權:用戶可以任意的修改與編譯程式碼,這點與自由軟體差異不大;任意的再散佈:該程式碼全部或部份可以被販售,且程式碼可成為其他軟體的元件之一,作者不該宣稱具有擁有權或收取其他額外費用。必須允許修改或衍生的作品,且可讓再發佈的軟體使用相似的授權來發表即可。承上,用戶可使用與原本軟體不同的名稱或編號來散佈。不可限制某些個人或團體的使用權不可限制某些領域的應用:例如不可限制不能用於商業行為或者是學術行為等特殊領域等等不可限制在某些產品當中,亦即程式碼可以應用於多種不同產品中。不可具有排他條款,例如不可限制本程式碼不能用於教育類的研究中,諸如此類。根據上面的定義,GPL 自由軟體也可以算是開源軟體的一個,只是對於商業應用的限止稍微多一些而已。與 GPL 自由軟體相比,其他開源軟體的授權可能比較輕鬆喔!比較輕鬆的部份包括:再發佈的授權可以跟原本的軟體不同;另外,開源軟體的全部或部份可作為其他軟體的一部分,且其他軟體無須使用與開源軟體相同的授權來發佈!這跟GPL自由軟體差異就大了!自由軟體的GPL授權規定,任何軟體只要用了GPL的全部或部份程式碼,那麼該軟體就得要使用GPL的授權!這對於自由軟體的保障相當大!但對於想要保有商業公司自己的商業機密的專屬軟體來說,要使用GPL授權還是怕怕的!這也是後來商業公司擁抱其他 open source 開源軟體授權的緣故!因為可以用於商業行為囉!更多的差異或許可以參考一下開源促進會的說明(註8)。另外,Open source 這個名詞只是一個指引,而實際上並不是先有 open source 才有相關的授權。早在 open source 出來之前就有些開源軟體的授權存在了 (例如 GPL 啊!)!不過有 open source 這個名詞之後,大家才更了解到開源軟體授權的意義就是了。那常見的開放原始碼授權有哪些呢?Apache License 2.0BSD 3-Clause &New& or &Revised& licenseBSD 2-Clause &Simplified& or &FreeBSD& licenseGNU General Public License (GPL)GNU Library or &Lesser& General Public License (LGPL)MIT licenseMozilla Public License 2.0Common Development and Distribution License鳥哥也不是軟體授權的高手!每個授權詳細的內容也可以參考 OSI 協會的介紹啦(註9)。Tips 如前所述,GPL 也是合乎 Open source 所定義的授權之一,只是它更著重於保護自由軟體本身的學習與發展就是了!那如果你想要開發開源軟體時,到底使用哪種授權比較好呢?其實跟妳對這個軟體的未來走向的定義有關啦!簡單的來說,如果你的軟體未來你允許它用於商業活動中,可以考慮 BSD 之類的授權,如果你的軟體希望少一些商業色彩,GPLv2 大概是不二選擇囉!那如果你的軟體允許分支開發,甚至可以考慮分成兩種版本分別授權哩! ^_^專屬軟體/專利軟體 (close source)相對於Open Source的軟體會釋出原始碼,Close source的程式則僅推出可執行的二進位程式(binary program)而已。這種軟體的優點是有專人維護,你不需要去更動他;缺點則是靈活度大打折扣,使用者無法變更該程式成為自己想要的樣式!此外,若有木馬程式或者安全漏洞,將會花上相當長的一段時間來除錯!這也是所謂專利軟體(copyright)常見的軟體出售方式。雖然專利軟體常常代表就是需要花錢去購買,不過有些專利軟體還是可以『免費』提供大眾使用的!免費的專利軟體代表的授權模式有:Freeware:http://en.wikipedia.org/wiki/Freeware不同於Free software,Freeware為『免費軟體』而非『自由軟體!』雖然它是免費的軟體,但是不見得要公布其原始碼,端看釋出者的意見囉!這個東西與Open Source畢竟是不太相同的東西喔!此外,目前很多標榜免費軟體的程式很多都有小問題!例如假藉免費軟體的名義,實施使用者資料竊取的目的!所以『來路不明的軟體請勿安裝!』Shareware:http://en.wikipedia.org/wiki/Shareware共享軟體這個名詞就有趣了!與免費軟體有點類似的是,Shareware在使用初期,它也是免費的,但是,到了所謂的『試用期限』之後,你就必須要選擇『付費後繼續使用』或者『將它移除』的宿命~通常,這些共享軟體都會自行撰寫失效程式,讓你在試用期限之後就無法使用該軟體。----------------------------------------------这是一条介绍完GNU和软件专利的分界线------------------------------------
最新教程周点击榜
微信扫一扫

我要回帖

 

随机推荐