![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/5351a6d80d7ff00d1a006cbf6c8d6cc0.jpg)
內容簡介
1、課程大綱
2、第一部分第一課:什么是Linux?
3、第一部分第二課預告:下載Linux,免費的噢!
開宗明義
我們總聽到別人說:Linux挺復雜的,是給那些追求逼格的程序員用的。咱們老百姓呀,用用Windows就高興。
但事實并非如此,Linux不是那么“難于上青天”的。
不少學編程的朋友看過《鳥哥的Linux私房菜》,是臺灣的鳥哥寫的,非常棒。
小編也開始寫一個系列教程,希望對自己對別人都有幫助。但我會非常認真的,不會亂來。
在這個教程中,小編會向您證明:Linux并不復雜。
如果你不知道什么是Linux,完全不要緊,這個教程就是給初學者準備的。
這個課程面向的對象:
那些使用Windows或Mac,但是希望了解Linux的人
初學Linux,希望更好地掌控Linux的人
網絡管理員,希望管理好Linux下的服務器
其他對Linux感興趣的人
什么是Linux?
當今時代,要說沒聽過Linux,那是比較難的一件事。
小編上初中的時候(20世紀初,不小心暴露了年齡),第一次看到Linux,還是在學校的機房的電腦上。但是一直沒機會使用,因為也就一臺電腦有Linux,大家上機課用的還是Windows。那時候就光記得Linux的那只呆萌的企鵝了。
今天,Linux幾乎無所不在:大部分網站的服務器都是Linux系統(tǒng);Android系統(tǒng)的底層用的是修改過的Linux內核;還有了Ubuntu(一種Linux發(fā)行版,下文中會介紹)手機。
小編你扯了半天,那么Linux到底是什么呀?
不要急嘛,今天這一課我們就循序漸進地帶你認識一下Linux。下一課我們才開始安裝開發(fā)環(huán)境。
什么是操作系統(tǒng)?
說起Windows大概無人不知,無人不曉吧。它是Microsoft(比爾蓋茨的微軟帝國)的主要操作系統(tǒng),其他例如嵌入式里有Win CE,我們就不討論了。
以前,Windows在桌面PC(PC是“個人電腦”,Personal Computer的意思)上面確實是一統(tǒng)天下。
現(xiàn)在蘋果的Mac電腦也開始逐步崛起,Linux的份額也增加了,但是兩者加起來還是和Windows差了很多。Windows所有版本(Win XP,Windows 98, Windows Vista,Win 7,Win 8等,之后還會有Win 10,Windows跳過了Win 9,直接從Win 8到Win 10)加起來在桌面領域的份額超過90%。
2015年2月桌面操作系統(tǒng)份額:
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/e329efbcbb75059163ecee40900be5ee.jpg)
雖然Windows繼續(xù)稱霸桌面PC,但是在移動端(手機,平板,手表等)的份額卻不多,一般還是iOS和Android兩強爭霸之地。
大部分桌面電腦的預裝系統(tǒng)是Windows,或者說都是以Windows作為發(fā)售系統(tǒng)。
那這意味著什么呢?
也許你會說:“這還不簡單,也就是說,開機看到的是Windows標志唄”。
雖然這樣說不夠完全,但是不可否認是個好的開頭。
當你開啟一個預裝系統(tǒng)是Windows的電腦時,最先看到的可能是下圖這樣:
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/9b204c69e12f4de22516ed519ee7ab65.jpg)
當然了,上圖隨著Windows的不同版本會有所變化。但是我們主要想說明的是:電腦啟動時Windows也隨之啟動。
啟動:電腦開啟
大部分人的印象中,電腦啟動時,Windows是首先啟動。但如果我們仔細一些,可以觀察到,在電腦啟動的開始幾秒里,在屏幕上顯示的是一系列圖像,俗稱“啟動界面”。Windows的圖標是之后才顯示的。
對于“啟動界面”,我們就不截圖了,因為不同的電腦,這部分信息是不盡相同的。
為什么呢?
因為這和電腦的硬件有關。實際上,正是電腦的主板(mother board)顯示了“啟動界面”。
主板是電腦最主要的部分,因為是主板使得我們的處理器可以運轉,硬盤可以讀取,光盤可以播放。主板(英語是Motherboard, Mainboard,簡稱Mobo)又稱主機板、系統(tǒng)板、邏輯板、母板、底板等,是構成復雜電子系統(tǒng)例如電子計算機的中心或者主電路板。如下所示:
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/1e6286cc71e9b72b7d6086c8797b92fb.jpg)
所以,電腦啟動時,下面兩件事是按先后順序發(fā)生的:
“啟動界面”
Windows的啟動
只有當Windows順利啟動后,我們才可以使用各種應用程序:瀏覽器,畫圖軟件,游戲,音樂播放器,等等。
那么為什么一定要先啟動Windows呢?為什么那些平時我們用的程序比如 畫圖軟件 不可以在啟動界面之后就使用呢?
因為,你的電腦需要一個類似“大管家”的軟件,就好像管弦樂隊的總指揮一樣,需要指揮各個樂手的演奏。這個“大管家”軟件需要管理你電腦的內存,把內存合理分配給各個軟件。它起到連接電腦的硬件(內存,顯卡,光驅等)和各種軟件的“橋梁”的作用。
這個任務聽起來可崇高、可神圣了,不是嗎?
這個“大管家”軟件就是操作系統(tǒng),簡稱OS,是Operating System的首字母(operating是英語“操作”的意思,system是英語“系統(tǒng)”的意思)。之后的課程,我們經常會用到OS這個簡稱來指代操作系統(tǒng),請記住啦。
而我們的Windows就是一個操作系統(tǒng)。
所以如果我們總結一下,電腦會按以下順序執(zhí)行任務:
啟動界面
操作系統(tǒng)(例如Windows)的啟動
其他程序(或稱軟件)的啟動
或許用圖示更容易理解吧:
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/3baa12c2aa639bd1dff1a65b29ef29b8.jpg)
Linux是一個操作系統(tǒng)
小編你不要忘了這個教程是講Linux的,怎么你扯了這么多Windows呀?
不要著急,我可沒忘記我們的初衷。經過上面的介(hu)紹(che),大家應該對操作系統(tǒng)有了一個大致的了解了吧,那么我就要公布一個“驚天”的消息咯:Linux就是一個操作系統(tǒng)。類似的還有Mac OS,是蘋果研發(fā)的操作系統(tǒng)。
相比于Windows,Linux以它的可靠和安全著稱,而且更新頻繁,不像Windows更新一次得等好久。我們在這個探索之旅中將慢慢發(fā)現(xiàn)Linux的這些優(yōu)點。
也許你又要發(fā)問了:“我們能否在一臺電腦上同時擁有兩個OS啊?我可不想為了裝Linux而把Windows卸載了,我還要玩游戲呢,我的Dota”。
有不少人可能認為需要做一個抉擇:要么裝Linux,要么就裝Windows。但并不是這樣:一臺電腦可以擁有兩個(甚至更多)的操作系統(tǒng)。
在這種情況下(多個操作系統(tǒng)),在電腦啟動時,當啟動界面結束后,會有一個被稱為bootloader的程序顯示出來,讓你做出選擇,到底選擇哪個操作系統(tǒng)來啟動。
什么是bootloader呢?
摘錄百度百科的解釋:
=======================
Bootloader是在操作系統(tǒng)內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調用操作系統(tǒng)內核準備好正確的環(huán)境。通常,Bootloader 是嚴重地依賴于硬件而實現(xiàn)的,特別是在嵌入式領域。
=======================
一般最常用的,能使我們在Linux和Windows之間做出選擇的bootloader叫做GRUB。如果你沒有做出選擇,那么GRUB這個bootloader在幾秒之后就會啟動默認的操作系統(tǒng)。當然默認的操作系統(tǒng)也是你設定的。
千言萬語不如一張圖,再來看看電腦在雙操作系統(tǒng)下的啟動流程吧:
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/41c42ba939c344da2ddf1d82eea3a204.jpg)
上圖中,我們可以看到,當我們在Linux系統(tǒng)中時,我們使用的程序都是為Linux定制的,不會用Windows的程序;反之亦然。事實上,Windows的程序在Linux下不能運行,反之亦然。
當然了,現(xiàn)在有些技術可以使得Windows的程序在Linux下可以運行,比較出名的有Wine這個軟件。然而,即使使用Wine后有些Windows程序可以運行在Linux下,但終歸是使用專為Linux定制的程序比較好,因為更快捷。
你也許又要說了:“可是我已經習慣了Windows下的各種程序,在Linux下的程序我不會用啊”。
事實上,并沒有那么難,大概幾天你就能熟悉Linux下的程序的使用方法了,如果你夠積極又感興趣,可能一個晚上就可以了。
Linux上的程序有很多優(yōu)點:
免費:基本上Linux上的所有程序都是免費的
更新頻繁,更新也是免費的
有不少程序的Linux版比Windows版更優(yōu)秀,而有一些程序沒有Windows的版本(當然了,有些程序Windows下有,Linux也沒有,比如很多大型游戲)。Linux下的程序往往使你更加有效率,因為它們可以更高效地使用電腦的資源
但是為什么Linux下的程序基本都是免費的呢?那開發(fā)這些程序的人不是要虧本了?
下面我們就來說說緣由。
天地霸氣,爺們落地:Linux誕生
記得曾被好朋友忽悠看過一個惡搞的漫畫,是關于春哥(李宇春)的,雖然我只看了開頭,貌似叫《春哥傳》。不過對第一卷的標題記憶猶新:《天地霸氣,爺們落地》。所以在此也想借用一下,以表現(xiàn)Linux的霸氣側漏。
首先,Linux的霸氣表現(xiàn)在“純爺們”上... 不好意思搞錯了,是在價格上:
正版的Windows系統(tǒng)售價幾百美元(不同的版本售價不一,以Windows官網最貴)
Linux是免費的!
看一下小編在Windows的官網上找到的Windows 8.1版的售價:120美元,按照目前美元兌人民幣的匯率:1 : 6.2,就是745元。好貴,更不用說Windows里的程序價格也很貴,一個Office也要好幾百美元:
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/c7d1d75be0af476e12d9f8ef30e80482.jpg)
看到這個對比,很多人心里會想:“Linux是免費的,肯定是因為Linux比較粗制濫造。”
那您就大錯特錯了。
Linux是免費的,而且基本上所有運行在Linux上的程序也是免費的,是有其原因的。而要了解原因,我們就要重回1984年,從那時開始說起。
1984年的信息技術
回到1984年,彼時的信息技術還遠沒有現(xiàn)在發(fā)達。那個時候,Microsoft(微軟)才剛剛發(fā)布它的第一個操作系統(tǒng):MS-DOS,也就是我們知道的DOS操作系統(tǒng)。
當然,DOS并不是微軟開發(fā)的。追溯到1980年,西雅圖計算機產品公司一名24歲的程序員蒂姆.帕特森(Tim Paterson)花費了4個月時間編寫出了86-DOS操作系統(tǒng)。1981年7月,微軟從西雅圖計算機產品公司購得DOS的全部版權并將它更名為 MS-DOS。蓋茨購買DOS的全部版權僅僅是5萬美元。
雖然后來微軟在1986年向西雅圖計算機產品公司又支付了100萬美元以了結官司,但與微軟靠著DOS操作系統(tǒng)賺取的錢相比,這105萬美元簡直是杯水車薪。
說到頭,比爾蓋茨是個“海盜”般的人物,從靠DOS發(fā)跡,到后來的Windows NT的一統(tǒng)天下,微軟可以說都在做不光彩的“勾當”,蒙了很多公司。有興趣的讀者可以看看《浪潮之巔》這本書,還有《硅谷海盜》這部電影,都有講到微軟的發(fā)跡史。
扯遠了,我們及時拉回來。
雖然DOS操作系統(tǒng)在當時一出來便受到歡迎,但是這個系統(tǒng)本身有很多局限性,并不怎么樣。
如果你用過初代的Windows系統(tǒng),你肯定聽說過DOS系統(tǒng)。它是像下圖這樣的:
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/ef249bb4440264efb7e44f7c54b244e6.jpg)
那么,在那個年代,DOS是唯一的操作系統(tǒng)嗎?
不是的,有不少操作系統(tǒng),但是大部分都不出名。
當然,有一個操作系統(tǒng)很有名,那就是《Unix》。Unix比DOS要強大得多,但是使用起來更復雜,所以在當時只有比較專業(yè)的信息工程師才用Unix。
Unix也比DOS要古老得多,Unix是1969年(或1970年)誕生的。
從使用界面來看,Unix很像DOS:黑底白字。當然了,當時的電腦也只能做到這樣了。
GNU項目
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/916176c5b11c5e02b11f91906cb94399.jpg)
上圖是GNU項目的logo(標志),因為GNU在英語里是“牛羚”的意思。
實際上GNU是“GNU is Not Unix”(這句英語的意思是“GNU不是Unix”)的遞歸縮寫,計算機界經常有這樣的名字表述法,老外就是萌。
也就是在微軟發(fā)布DOS的同一年,1984年,Richard Stallman(理查德.斯托曼)創(chuàng)立了GNU項目。
誰是Richard Stallman啊?可能不少人沒聽過這名字。
但是這位前輩可是厲害, 他是:
自由軟件基金會(Free Software Fundation,簡稱FSF。當然這里的“Free”是“自由的”的意思,不是“免費的”的意思)的主席
GNU項目的創(chuàng)始人。他所寫作的GNU通用公共許可證(GNU GPL)是世上最廣為采用的自由軟件許可證,為copyleft觀念開拓出一條嶄新的道路。由于GNU是公開源代碼的,為了防止不肖廠商利用自由軟件,使其專有化。斯托曼別出心裁,創(chuàng)造了Copyleft的授權辦法,讓所有的GNU程序遵循一種“Copyleft”原則,即可以拷貝,可以修改,可以出售,只是有一條:源代碼所有的改進和修改必須向每個用戶公開,所有用戶都可以獲得改動后的源碼。Copyleft保證了自由軟件傳播的延續(xù)性。
著名黑客(注意:黑客其實是褒義詞,指那些技術非常厲害的大師),1953年出生于美國紐約曼哈頓地區(qū),1971年進入哈佛大學學習,同年受聘于麻省理工學院(MIT)人工智能實驗室(AI Laboratory)
代表作品:Emacs(上次我們介紹Emacs的文章里提到過他),GCC(GNU Compiler Collection的縮寫,意為“GNU編譯器集合”,使用范圍極廣的編譯器,甚至在嵌入式領域也有諸多變體),GDB(GNU project DeBugger的縮寫,意為“GNU項目調試器”,使用范圍極廣的調試器)
獲得過很多榮譽獎章,其中包括1991年獲得的美國計算機協(xié)會頒發(fā)的Grace Hopper(格雷斯.霍普)獎(還記得我們第一代的女程序員:格雷斯.霍普 么?在《C語言探索之旅》的第一部分第一課《什么是編程?》中有介紹過,傳說級別的程序媛,“發(fā)明”了bug這個詞)
GNU項目在當時的首要目的是創(chuàng)立一個類Unix的操作系統(tǒng),當然操作系統(tǒng)不僅僅有內核啦,還包含一些底層的基本應用程序,如編譯器,鏈接器,匯編器,文本編輯器,還有很多API(Application Programming Interface,應用程序編程接口是一些預先定義的函數(shù),目的是提供應用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節(jié))等。
那你要問了:“既然已經有Unix這么好的操作系統(tǒng)了,為什么要復刻一個Unix出來呢?”
因為Unix不是免費的,是商用軟件(嚴格地說一開始是免費的,還可以免費提供學校教學使用,后來不開源了),價格比Windows正版還貴一點,簡直不能忍。
基于這個原因,Richard Stallman創(chuàng)立了開源的GNU項目,以惠己利人。
補充知識:蘋果的Mac OS也是基于Unix的。然而,今天的DOS卻和Windows系統(tǒng)幾乎沒多大聯(lián)系了(初代的Windows還有DOS的遺跡)。
GNU是自由的操作系統(tǒng)
GNU不僅是一個免費的操作系統(tǒng),而且它也是自由(后來也被稱為“開源的”,不過與Richard Stallman的初衷已經有些許不同了)的。
我們說一個軟件是自由的,那這和免費的有什么區(qū)別呢?
自由的軟件意味著源代碼必須公開。例如Linux是一個自由的操作系統(tǒng),我們在網上可以搜索到其所有版本的源代碼。而相反,Windows和Mac OS則不是自由的,而是私有的,它們的源代碼你是找不到的,不然微軟和蘋果就要瘋了。Windows和Mac OS這兩個操作系統(tǒng)就有點像可口可樂,我們可以享用,但誰也不知道可口可樂的配方。對于不開源的軟件,我們無法修改其源代碼(源代碼就像配方對嗎),也不知道內部運作機制。
自由的軟件大部分時候是免費的,但也可以復制,修改和出售。
自由軟件的擁護者認為:如果開放源代碼,可以使軟件得到多方協(xié)助,更新速度更快。
自由運動的口號是:“團結就是力量”(我黨的真知灼見如此高瞻遠矚)。
Linus Torvalds霸氣側漏
1991年,Linus Torvalds(李納斯·托沃茲),今天在編程領域應該無人不知,無人不曉了吧,就是Linux操作系統(tǒng)(嚴格地說是Linux內核)的作者。當時是芬蘭的赫爾辛基大學的一位學生,他決定在自己的業(yè)余時間編寫一個類Unix的操作系統(tǒng)(內核),最終還真給他開發(fā)出了1.0版。
Linux這個名字可以說是Linus和Unix的合并,也可以說是“Linux Is Not Unix”的遞歸縮寫。下圖是Linus的照片:
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/b112b67fbea415528e091ec440c3f284.jpg)
正如GNU有它的吉祥物,一只牛羚。Linux也有它的吉祥物:一只名叫Tux的萌萌噠雄性企鵝(爺們,24K純滴)。Tux在英語里是“燕尾服”(正式名稱是“男士無尾半正式晚禮服”)的意思,企鵝黑不溜秋的后背是不是很像一件燕尾服呢?而且有點神似Linus大叔。
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/12b538665d6cf89f244bb69d5ad01559.jpg)
關于這個吉祥物還有一個真實的典故,那時候為Linux系統(tǒng)設計吉祥物的畫家征求廣大意見,其他人提議模仿其他軟件,用一些霸氣的吉祥物,比如鯊魚,鷹之類。最后Linus Torvalds說:“我以前在澳大利亞被一只企鵝咬過,我覺得企鵝是很有趣的生物”(簡直是逗x啊,此郵件目前還保留著)。所以最后Linux的吉祥物就定為了企鵝,還是很可愛的。事實證明,Linus的決定并沒有錯,這只呆萌的企鵝不知道萌化了多少程序員的心。至少小編對其喜愛有加。
那么Linux和GNU項目有什么聯(lián)系呢?
好問題。
可以說這兩個項目是互補的:在1991年Linus釋出Linux的第一個版本時,GNU項目已經創(chuàng)建了不少操作系統(tǒng)的外圍軟件了,例如:拷貝文件的程序(cp命令),刪除文件的程序(rm命令)文本編輯器(Emacs),編譯器(GCC),調試器(GDB),等一系列的程序,但是還沒有自己的內核(Kernel),而Linux的出現(xiàn)(Linus其實就是寫了一個類Unix的內核,然后移植成功了一些GNU的程序)。后來完善Linux的工作交給了Linus和廣大開源社區(qū)的黑客們。他們一直兢兢業(yè)業(yè),才有了今天Linux的輝煌。所以不是Linus一個人的功勞,他是站在開源社區(qū)的巨人肩膀上的“芬蘭小毛孩子”。
所以說,GNU項目(開源的各種程序)+ Linux (操作系統(tǒng)內核)= GNU/Linux 這一個完整的操作系統(tǒng)。
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/089738879f7d990d249fec5ba1e2875a.jpg)
生活在非洲大草原上的牛羚和象征芬蘭冰天雪地的企鵝,相得益彰,冰火交融,成就了一個傳奇。(“只是因為在人群中多看了你一眼...”)
來理清一下思路:
《操作系統(tǒng)的核心稱為“內核”,但內核并不就等于操作系統(tǒng),內核提供系統(tǒng)服務,比如文件管理、虛擬內存、設備I/O等。除內核以外,在應用軟件與內核之間通常還有些作為中間件的API,可以供應用程序調用,還包含一些基本的程序,例如文本編輯器,編譯器,外殼程序(shell,如常用的Bash),等。
單獨的Linux內核是沒辦法工作的,必須要有GNU項目的眾多應用程序來給它添磚加瓦。你可以想象內核就有點類似房屋的根基(鋼筋混凝土),周邊的基本應用程序就相當于房屋的各種設施,這樣一幢房子才可以提供不同的人或動物(第三方應用程序,例如QQ,迅雷等)來使用。》
因此,Linux的官方稱謂應該是“GNU/Linux”,但是這樣的名字有點復雜,發(fā)音也不容易,所以一般我們都用簡稱:Linux。
約定:下面的課程中,如果是指Linux內核,那么小編會使用“Linux內核”;如果是指GNU/Linux這個操作系統(tǒng)整體,那么小編會使用“Linux”。
用一張圖來總結各個系統(tǒng)的關系吧:
![[Linux探索之旅]第一部分第一課:什么是Linux?](/d/file/p/2020/07-10/667446bc819b9711fff01e7c45c4a1c7.jpg)
現(xiàn)在我們應該對全球三大最常用的桌面操作系統(tǒng)(Windows,Linux和Mac OS)的緣起有了一定認識了吧。
Mac OS和Linux都是基于Unix,Unix可以說是它們的祖先。而Windows的祖先是DOS,雖然我們目前使用的大部分Windows版本是基于革命性的Windows NT內核(可以閱讀《觀止-微軟創(chuàng)建NT和未來的奪命狂奔》這部相當精彩的書,小編那時看得熱血沸騰)。
我們說Mac OS和Linux基于Unix,只是說他們復刻了Unix的運行模式。源代碼是基本不同的,特別是Linux的內核,完全是Linus從零開始寫的,雖然很多代碼類似Unix。而GNU項目的很多程序也和Unix的類似,連名字都一樣,例如cp命令,rm命令,mv命令等。
說了這么多,希望讀者朋友不要嫌小編 主站蜘蛛池模板: 利川市| 高碑店市| 乌拉特后旗| 遂溪县| 黎城县| 郁南县| 资阳市| 勃利县| 定兴县| 黄浦区| 元阳县| 子长县| 南通市| 无锡市| 宁城县| 苗栗县| 元江| 隆回县| 雷州市| 仪征市| 朝阳区| 当雄县| 云霄县| 河东区| 北碚区| 广西| 海盐县| 烟台市| 云梦县| 枣强县| 香港 | 张掖市| 启东市| 湖北省| 洛扎县| 孟连| 衡东县| 山阴县| 封丘县| 黔南| 金塔县|