<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                #![](http://vbird.dic.ksu.edu.tw/image/logo.png)Linux是什么 我們知道Linux這玩意兒是在計算機上面運作的,所以說Linux就是一組軟件。問題是這個軟件是操作系統還是應用程序?<i>且Linux可以在哪些種類的計算機上面運作?而Linux源自哪里?為什么 Linux 還不用錢?這些我們都得來談一談先!</i> ##Linux是什么 我們在<i>[第零章、計算器概論](http://www.hmoore.net/thinkphp/linux_basic/39979)</i>里面有提到過整個計算機系統的概念, 計算機是由一堆硬件所組成的,為了有效率的控制這些硬件資源,于是乎就有操作系統的產生了。 操作系統除了有效率的控制這些硬件資源的分配,并提供計算機運作所需要的功能(如網絡功能)之外, 為了要提供程序設計師更容易開發軟件的環境,所以操作系統也會提供一整組系統呼叫接口來給軟件設計師開發用喔! 知道為什么要講這些了嗎?嘿嘿!沒錯,因為Linux就是一套操作系統!如同下圖所示, Linux就是核心與系統呼叫接口那兩層。至于應用程序算不算Linux呢?當然不算啦!這點要特別注意喔! <center> !["圖1.1.1、操作系統的角色"](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/os_01.gif '圖1.1.1、操作系統的角色') 圖1.1.1、操作系統的角色 </center> 由上圖中我們可以看到其實核心與硬件的關系非常的強烈。早期的Linux是針對386來開發的, 由于Linux只是一套操作系統并不含有其他的應用程序,因此很多工程師在下載了 Linux 核心并且實際安裝之后,就只能看著計算機開始運作了! 接下來這些高級工程師為了自己的需求,再在Linux上面安裝他們所需要的軟件就是了。 **tips** <i>Torvalds先生在寫出Linux的時候,其實該核心僅能『驅動386所有的硬件』而已, 所謂的『讓386計算機開始運作,并且等待用戶指令輸入』而已,事實上, 當時能夠在Linux上面跑的軟件還很少呢!</i> 由于不同的硬件他的功能函數并不相同,例如IBM的Power CPU與Intel的x86架構就是不一樣! 所以同一套操作系統是無法在不同的硬件平臺上面運作的!舉例來說,如果你想要讓x86上面跑的那套操作系統也能夠在Power CPU上運作時,就得要將該操作系統進行修改才行。如果能夠參考硬件的功能函數并據以修改你的操作系統程序代碼, 那經過改版后的操作系統就能夠在另一個硬件平臺上面運作了。 這個動作我們通常就稱為『軟件移植』了! **例題:** * * * * * >請問Windows操作系統能否在蘋果公司的麥金塔計算機(MAC)上面安裝與運作? **答:** >由上面的說明中,我們知道硬件是由『核心』來控制的,而每種操作系統都有他自己的核心。 在2006年以前的蘋果計算機公司是請IBM公司幫忙開發硬件(所謂的Power CPU), 而蘋果計算機公司則在該硬件架構上發展自家的操作系統(就是俗稱的麥金塔,MAC是也)。Windows則是開發在x86架構上的操作系統之一, 因此Windows是沒有辦法安裝到麥金塔計算機硬件上面的。 >不過,在2006年以后,蘋果計算機轉而請Intel設計其硬件架構,亦即其硬件架構已經轉為x86系統, 因此在2006年以后的蘋果計算機若使用x86架構時,其硬件則『可能』可以安裝Windows操作系統了。 不過,你可能需要自己想些方式來處理該硬件的兼容性啰! **TIPS** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>Windows操作系統本來就是針對個人計算機x86架構的硬件去設計的,所以他當然只能在x86的個人計算機上面運作, 在不同的平臺當然就無法運行了。也就是說,每種操作系統都是在他專門的機器上面運行的喔!這點得要先了解。 不過,Linux由于是Open Source的操作系統,所以他的程序代碼可以被修改成適合在各種機器上面運行的, 也就是說,Linux是具有『可移植性』,這可是很重要的一個功能喔! ^_^</i> Linux提供了一個完整的操作系統當中最底層的硬件控制與資源管理的完整架構, 這個架構是沿襲Unix良好的傳統來的,所以相當的穩定而功能強大!此外, 由于這個優良的架構可以在目前的個人計算機(x86系統)上面跑, 所以很多的軟件開發者漸漸的將他們的工作心血移轉到這個架構上面,所以 Linux 操作系統也有很多的應用軟件啦! 雖然Linux僅是其核心與核心提供的工具,不過由于核心、核心工具與這些軟件開發者提供的軟件的整合, 使得Linux成為一個更完整的、功能強大的操作系統啰!約略了解Linux是何物之后,接下來,我們要談一談, 『為什么說Linux是很穩定的操作系統呢?他是如何來的?』 * * * * * **![Linux之前,Unix的歷史](http://vbird.dic.ksu.edu.tw/image/logo.png 'Linux之前,Unix的歷史')Linux之前,Unix的歷史** ***** 早在Linux出現之前的二十年(大約在1970 年代),就有一個相當穩定而成熟的操作系統存在了! 那就是Linux的老大哥『Unix』是也!怎么這么說呢?他們這兩個家伙有什么關系呀?這里就給他說一說啰! 眾所皆知的,Linux的核心是由Linus Torvalds在1991年的時候給他開發出來的, 并且丟到網絡上提供大家下載,后來大家覺得這個小東西(Linux Kernel)相當的小而精巧, 所以慢慢的就有相當多的朋友投入這個小東西的研究領域里面去了! 但是為什么這個小東西這么棒呢?又為什么大家都可以免費的下載這個東西呢? 嗯!等鳥哥慢慢的道來! ***** **1969年以前:一個偉大的夢想--Bell,MIT與GE的『Multics』系統** 早期的計算機并不像現在的個人計算機一樣普遍,他可不是一般人碰的起的呢~ 除非是軍事或者是高科技用途,或者是學術單位的學術研究,否則真的很難接觸到。 非但如此,早期的計算機架構還很難使用,除了指令周期并不快之外,操作接口也很困擾的! 因為那個時候的輸入設備只有卡片閱讀機、輸出設備只有打印機, 用戶也無法與操作系統互動(批次型操作系統)。 在那個時候,寫程序是件很可憐的事情,因為程序設計者,必須要將程序相關的信息在讀卡紙上面打洞, 然后再將讀卡紙插入卡片閱讀機來將信息讀入主機中運算。光是這樣就很麻煩了,如果程序有個小地方寫錯, 哈哈!光是重新打卡就很慘,加上主機少,用戶眾多,光是等待,就耗去很多的時間了! 在那之后,由于硬件與操作系統的改良,使得后來可以使用鍵盤來進行信息的輸入。 不過,在一間學校里面,主機畢竟可能只有一部,如果多人等待使用,那怎么辦?大家還是得要等待啊! 好在1960年代初期麻省理工學院(MIT)發展了所謂的: 『<i>兼容分時系統(Compatible Time-Sharing System, CTSS)</i>』, 它可以讓大型主機透過提供數個終端機(terminal)以聯機進入主機,來利用主機的資源進行運算工作。 架構有點像這樣: <center> ![圖1.2.1、早期主機與終端機的相關性圖標](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/0110whatislinux_2.jpg '圖1.2.1、早期主機與終端機的相關性圖標') 圖1.2.1、早期主機與終端機的相關性圖標 </center> **TIPS** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>這個兼容分時系統可以說是近代操作系統的始祖呢!他可以讓多個使用者在某一段時間內分別使用CPU的資源, 感覺上你會覺得大家是同時使用該主機的資源!事實上,是CPU在每個使用者的工作之間進行切換, 在當時,這可是個劃時代的技術喔!</i> 如此一來,無論主機在哪里,只要在終端機前面進行輸入輸出的作業,就可利用主機提供的功能了。 不過,需要注意的是,此時終端機只具有輸入/輸出的功能,本身完全不具任何運算或者軟件安裝的能力。 而且,比較先進的主機大概也只能提供30個不到的終端機而已。 為了更加強化大型主機的功能,以讓主機的資源可以提供更多使用者來利用,所以在1965年前后, 由貝爾實驗室(Bell)、麻省理工學院(MIT)及奇異公司(GE, 或稱為通用電器)共同發起了Multics的計劃, Multics計劃的目的是想要讓大型主機可以達成提供300個以上的終端機聯機使用的目標。 不過,到了1969年前后,計劃進度落后,資金也短缺,所以該計劃雖然繼續在研究,但貝爾實驗室還是退出了該計劃的研究工作。 (注:Multics有復雜、多數的意思存在。) **TIPS** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>最終Multics還是有成功的發展出他們的系統,完整的歷史說明可以參考: http://www.multicians.org/網站內容。 Multics計劃雖然后來沒有受到很大的重視,但是他培養出來的人材是相當優秀的! ^_^</i> ***** **1969年:Ken Thompson的小型file server system** 在認為Multics計劃不可能成功之后,貝爾研究室就退出該計劃。不過,原本參與Multics計劃的人員中,已經從該計劃當中獲得一些點子, Ken Thompson 就是其中一位! Thompson因為自己的需要,希望開發一個小小的操作系統以提供自己的需求。 在開發時,有一部DEC(Digital Equipment Corporation)公司推出的PDP-7剛好沒人使用, 于是他就準備針對這部主機進行操作系統核心程序的撰寫。本來Thompson應該是沒時間的(有家有小孩的宿命?), 無巧不巧的是,在1969年八月份左右,剛好Thompson的妻兒去了美西探親, 于是他有了額外的一個月的時間好好的待在家將一些構想實現出來! 經過四個星期的奮斗,他終于以匯編語言(Assembler)寫出了一組核心程序,同時包括一些核心工具程序, 以及一個小小的文件系統。那個系統就是Unix的原型! 當時Thompson將Multics龐大的復雜系統簡化了不少,于是同實驗室的朋友都戲稱這個系統為:Unics。(當時尚未有Unix的名稱) Thompson 的這個文件系統有兩個重要的概念,分別是: - 所有的程序或系統裝置都是檔案 - 不管建構編輯器還是附屬檔案,所寫的程序只有一個目的,且要有效的完成目標。 這些概念在后來對于Linux的發展有相當重要的影響喔! **TIPS** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>套一句常聽到的廣告詞:『科技始終來自于人性』,當初Thompson會寫這套Unix核心程序, 卻是想要移植一套名為『太空旅游』的游戲呢! ^_^</i> ***** **1973年:Unix的正式誕生,Ritchie等人以C語言寫出第一個正式Unix核心** 由于Thompson寫的那個操作系統實在太好用了,所以在貝爾實驗室內部廣為流傳,并且數度經過改版。 但是因為Unics本來是以匯編語言寫成的,而如第零章計算器概論談到的, 匯編語言具有專一性,加上當時的計算機機器架構都不太相同,所以每次要安裝到不同的機器都得要重新編寫匯編語言,真不方便! 后來Thompson與Ritchie合作想將Unics改以高階程序語言來撰寫。當時現成的高階程序語言有B語言。 但是由B語言所編譯出來的核心效能不是很好。后來Dennis Ritchie將B語言重新改寫成C語言,再以C語言重新改寫與編譯Unics的核心, 最后正名與發行出Unix的正式版本! **TIPS** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>這群高級黑客實在很厲害!因為自己的需求來開發出這么多好用的工具! C程序語言開發成功后,甚至一直沿用至今呢!你說厲不厲害啊!這個故事也告訴我們,不要小看自己的潛能喔! 你想作的,但是現實生活中沒有的,就動手自己搞一個來玩玩吧!</i> 由于貝爾實驗室是隸屬于美國電信大廠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在取得了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** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>如同兼容分時系統的功能一般,Unix強調的是多人多任務的環境! 但早期的286個人計算機架構下的CPU是沒有能力達到多任務的作業,因此,并沒有人對移植Unix到x86的計算機上有興趣。</i> 每一家公司自己出的Unix雖然在架構上面大同小異,但是卻真的僅能支持自身的硬件, 所以啰,早先的Unix只能與服務器(Server)或者是大型工作站(Workstation)劃上等號! 但到了 1979 年時,AT&T推出 System V 第七版 Unix 后,這個情況就有點改善了。 這一版最重要的特色是可以支持x86架構的個人計算機系統,也就是說 System V 可以在個人計算機上面安裝與運作了。 不過因為AT&T由于商業的考慮,以及在當時現實環境下的思考,于是想將Unix的版權收回去。因此, AT&T在1979年發行的第七版Unix中,特別提到了 『不可對學生提供原始碼』的嚴格限制! 同時,也造成Unix業界之間的緊張氣氛,并且也引爆了很多的商業糾紛~ **TIPS** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>目前被稱為純種的Unix指的就是System V以及BSD這兩套啰!</i> ***** **1984年之一:x86架構的Minix操作系統誕生** 關于1979年的版權聲明中,影響最大的當然就是學校教Unix核心原始碼相關學問的教授了! 想一想,如果沒有核心原始碼,那么如何教導學生認識Unix呢?這問題對于Andrew Tanenbaum(譚寧邦)教授來說,實在是很傷腦筋的!不過,學校的課程還是得繼續啊!那怎么辦? 既然1979年的Unix第七版可以在Intel的x86架構上面進行移植, 那么是否意味著可以將Unix改寫并移植到x86上面了呢?在這個想法上, 譚寧邦教授于是乎自己動手寫了Minix這個Unix Like的核心程序! 在撰寫的過程中,為了避免版權糾紛,譚寧邦完全不看Unix核心原始碼! 并且強調他的Minix必須能夠與Unix兼容才行!譚寧邦在1984年開始撰寫核心程序, 到了1986年終于完成,并于次年出版Minix相關書籍,同時與新聞組(BBS及News)相結合~ **TIPS** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>之所以稱為Minix的原因,是因為他是個Mini的Unix系統啰!^_^</i> 這個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)從小就很聰明!他在1971年的時候,進入黑客圈中相當出名的人工智能實驗室(AI Lab.), 這個時候的黑客專指計算機功力很強的人,而非破壞計算機的怪客(cracker)喔! >當時的黑客圈對于軟件的著眼點幾乎都是在『分享』,所以并沒有專利方面的困擾! 這個特色對于史托曼的影響很大!不過,后來由于管理階層的問題,導致實驗室的優秀黑客離開該實驗室, 并且進入其他商業公司繼續發展優秀的軟件。但史托曼并不服輸,仍然持續在原來的實驗室開發新的程序與軟件。 后來,他發現到,自己一個人并無法完成所有的工作,于是想要成立一個開放的團體來共同努力! - 使用Unix開發階段: >1983年以后,因為實驗室硬件的更換,使得史托曼無法繼續以原有的硬件與操作系統繼續自由程序的撰寫~ 而且他進一步發現到,過去他所使用的Lisp操作系統,是麻省理工學院的專利軟件, 是無法共享的,這對于想要成立一個開放團體的史托曼是個阻礙。于是他便放棄了Lisp這個系統。 后來,他接觸到Unix這個系統,并且發現,Unix在理論與實際上,都可以在不同的機器間進行移植。雖然 Unix 依舊是專利軟件, 但至少 Unix 架構上還是比較開放的!于是他開始轉而使用Unix系統。 >因為Lisp與Unix是不同的系統,所以,他原本已經撰寫完畢的軟件是無法在Unix上面運行的!為此, 他就開始將軟件移植到Unix上面。并且,為了讓軟件可以在不同的平臺上運作, 因此,史托曼將他發展的軟件均撰寫成可以移植的型態!也就是他都會將程序的原始碼公布出來! - GNU計劃的推展: >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** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>如果純粹使用文本編輯器來編輯程序的話,那么程序語法如果寫錯時,只能利用編譯時發生的錯誤訊息來修訂了,這樣實在很沒有效率。 Emacs則是一個很棒的編輯器!注意!是編輯(editor)而非編譯(compiler)! 他可以很快的立刻顯示出你寫入的語法可能有錯誤的地方,這對于程序設計師來說, 實在是一個好到不能再好的工具了!所以才會這么的受到歡迎啊!</i> - GNU的通用公共許可證: >到了1985年,為了避免GNU所開發的自由軟件被其他人所利用而成為專利軟件, 所以他與律師草擬了有名的通用公共許可證(General Public License, GPL), 并且稱呼他為copyleft(相對于專利軟件的copyright!)。 關于GPL的相關內容我們在下一個小節繼續談論,在這里,必須要說明的是, 由于有GNU所開發的幾個重要軟件,如: - - Emacs - - GNU C (GCC) - - GNU C Library (glibc) - - Bash shell 造成后來很多的軟件開發者可以藉由這些基礎的工具來進行程序開發! 進一步壯大了自由軟件團體!這是很重要的!不過,對于GNU的最初構想 『建立一個自由的Unix操作系統』來說,有這些優秀的程序是仍無法滿足, 因為,當下并沒有『自由的Unix核心』存在...所以這些軟件仍只能在那些有專利的 Unix平臺上工作~~一直到Linux的出現...更多的FSF開發的軟件可以參考如下網頁: - **[https://www.fsf.org/resources](https://www.fsf.org/resources)** ***** **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** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>為什么稱圖形用戶接口為X呢?因為由英文單字來看,Window的W接的就是X啦!意指Window的下一版就是了! 需注意的是,X Window并不是X Windows喔!</i> ***** **1991年:芬蘭大學生Linus Torvalds的一則簡訊** 到了1991年,芬蘭的赫爾辛基大學的Linus Torvalds在BBS上面貼了一則消息, 宣稱他以bash, gcc等工具寫了一個小小的核心程序,這個核心程序可以在Intel的386機器上面運作, 讓很多人很感興趣!從此開始了Linux不平凡的路程! GNU計劃對于整個自由軟件來說是占有非常重要的角色!底下我們就來談談這些! **![](http://vbird.dic.ksu.edu.tw/image/logo.png)關于GNU計劃** GNU計劃對于整個自由軟件來說是占有非常重要的角色!底下我們就來談談這些! ***** **自由軟件的活動:** 1984年創立GNU計劃與FSF基金會的Stallman先生認為,寫程序最大的快樂就是讓自己發展的良好的軟件讓大家來使用了! 而既然程序是想要分享給大家使用的,不過,每個人所使用的計算機軟硬件并不相同, 既然如此的話,那么該程序的原始碼(Source code)就應該要同時釋出, 這樣才能方便大家修改而適用于每個人的計算機中呢!這個將原始碼連同軟件程序釋出的舉動, 就稱為自由軟件(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** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i> 為什么要稱為GNU呢?其實GNU是GNU's Not Unix的縮寫,意思是說,GNU并不是Unix啊!那么GNU又是什么呢? 就是GNU's Not Unix嘛!.....如果你寫過程序就會知道,這個GNU = GNU's Not Unix可是無窮循環啊!忙碌~ 另外,什么是Open Source呢?所謂的source是程序發展者寫出的源代碼, Open Source就是,軟件在發布時,同時將作者的原始碼一起公布的意思! </i> ***** **自由(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** ![鳥哥的圖示](http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_files/vbird_face.gif '鳥哥的圖示') <i>很多人對于GPL授權一直很疑惑,對于GPL的商業行為更是無法接受! 關于這一點,鳥哥在這里還是要再次的申明,GPL是可以從事商業行為的! 而很多的作者也是藉由這些商業行為來得以取得生活所需,更進一步去發展更優秀的自由軟件! 千萬不要聽到『商業』就排斥!這對于發展優良軟件的朋友來說,是不禮貌的!</i> 上面提到的大多是與用戶有關的項目,那么 GPL 對于自由軟件的作者有何優點呢?大致的優點有這些: - 軟件安全性較佳; - 軟件執行效能較佳; - 軟件除錯時間較短; - 貢獻的原始碼永遠都存在。 這是因為既然是Open Source的自由軟件,那么你的程序代碼將會有很多人幫你查閱, 如此一來,程序的漏洞與程序的優化將會進展的很快!所以,在安全性與效能上面, 自由軟件一點都不輸給商業軟件喔!此外,因為GPL授權當中,修改者并不能修改授權, 因此,你如果曾經貢獻過程序代碼,嘿嘿!你將名留青史呢!不錯吧! ^_^ 對于程序開發者來說,GPL實在是一個非常好的授權,因為大家可以互相學習對方的程序撰寫技巧, 而且自己寫的程序也有人可以幫忙除錯。那你會問啊,對于我們這些廣大的終端用戶,GPL有沒有什么好處啊?有啊!當然有! 雖然終端用戶或許不會自己編譯程序代碼或者是幫人家除錯,但是終端用戶使用的軟件絕大部分就是GPL的軟件, 全世界有一大票的工程師在幫你維護你的系統,這難道不是一件非常棒的事嗎? ^_^ ****
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看