Linux實戰教學筆記03:操作系統發展歷程及系統版本選擇

来源:http://www.cnblogs.com/chensiqiqi/archive/2016/12/24/6216591.html
-Advertisement-
Play Games

標簽(空格分隔): Linux實戰教學筆記 陳思齊 第1章 Linux簡介 1.1 什麼是操作系統? 簡單講: 操作系統就是一個人與電腦硬體的中介。 操作系統,英文名稱Operating System,簡稱OS,是電腦系統中必不可少的基礎系統軟體,它是應用程式運行以及用戶操作必備的基礎環境支撐, ...


標簽(空格分隔): Linux實戰教學筆記-陳思齊


第1章 Linux簡介

1.1 什麼是操作系統?

簡單講:操作系統就是一個人與電腦硬體的中介。

  • 操作系統,英文名稱Operating System,簡稱OS,是電腦系統中必不可少的基礎系統軟體,它是應用程式運行以及用戶操作必備的基礎環境支撐,是電腦系統的核心。
  • 操作系統的作用是管理和控制電腦系統中的硬體和軟體資源,例如,它負責直接管理電腦系統的各種硬體資源,如對CPU,記憶體,磁碟等的管理,同時對系統資源供需的優先次序進行管理。操作系統還可以控制設備的輸入,輸出以及操作網路與管理文件系統等事務。同時,它也負責對電腦系統中各類軟體資源的管理。例如各類應用軟體的安裝,運行環境設置等。
    屏幕快照 2016-12-23 下午8.53.42.png-725.1kB

  • 操作系統就是處於用戶與電腦系統硬體之間用於傳遞信息的系統程式軟體。例如:操作系統會在接收到用戶輸入的信息後,將其傳給電腦系統硬體核心進行處理,然後再把電腦系統硬體的處理結果返回給使用者。
    屏幕快照 2016-12-23 下午8.56.25.png-265kB

思考一下世界上什麼操作系統使用率最高?

1.2 什麼是Linux?

  • 類似windows,Linux也是一個操作系統軟體,Linux是一套開放源代碼程式的,並可以自由傳播的類Unix操作系統軟體,多用戶,多任務並且支持多線程和多CPU的操作系統。
  • Linux系統主要被應用於伺服器端嵌入式開發個人PC桌面3大領域,其中伺服器端領域是重中之重。 BAT(百度,阿裡,騰訊)
  • 我們熟知的大型,超大型互聯網企業(百度,Sina,淘寶等)都在使用Linux系統作為伺服器端的程式運行平臺,全球及國內排名前十的網站使用的主流系統幾乎都是Linux系統。
  • 我們熟知的大型,超大型互聯網企業(百度,sina,淘寶等)都在使用Linux系統作為其伺服器端的程式運行平臺,全球及國內排名前十的網站使用的主流系統幾乎都是Linux系統。

從上面的內容可以看出,Linux操作系統之所以如此流行,是因為它具有如下一些特點:

  • 是開放源代碼的程式軟體,可自由修改
  • Unix系統相容,具備幾乎所有Unix的優秀特性
  • 可自由傳播,無任何商業化版權制約
  • 適合Intel等X86CPU系統架構的電腦
    技巧:學會對階段性知識的小結是學好運維的關鍵

1.3 Linux的起源

1.3.1 Unix的歷史

Unix系統於1969年在AT&T的貝爾實驗室誕生,20世紀70年代,它逐步盛行,這期間,又產生了一個比較重要的分支,就是大約1977年誕生的BSD(Berkeley Software Distribution)系統。從BSD系統開始,各大廠商及商業公司開始了根據自身公司的硬體架構,並以BSD系統為基礎進行Unix系統的研發,從而產生了各種版本的Unix系統,例如:SUN公司的Solaris,IBM公司的AIX,HP公司的HPUNIX等。
屏幕快照 2016-12-23 下午9.14.51.png-1071.3kB

Unix的5大優勢特性

  • 技術成熟,可靠性高
  • 極強的可伸縮性
    Unix支持的CPU處理器體系架構非常多,包括Intel/AMD及HP-PA,MIPS,PowerPC,UltraSPARC,ALPHA等RISC晶元,以及SMP,MPP等技術

提示:可能是由於早期各大廠商都基於Unix進行適合自己的硬體開發,因此,Unix支持的CPU架構才更多。

  • 強大的網路功能
    Internet互聯最重要的協議TCP/IP就是在Unix上開發和發展起來的。此外,Unix還支持非常多的常用的網路協議,如NFS,DCE,IPX/SPX,SLIP,PPP等
  • 強大的資料庫支持能力
    Oracle,DB2,Sybase,Informix等大型資料庫,都把Unix作為其主要的資料庫開發和運行平臺,一直到目前為止,依然如此。
  • 強大的開發能力
    正是Unix促使了C語言的誕生

1.4 Unix操作系統的革命

  • 70年代中後期,由於各廠商及商業公司開發的Unix及內置軟體都是針對自己公司特定硬體的,因此在其他公司的硬體上基本上無法直接運行。
  • 70年代末,Unix又面臨了突如其來的被AT&T回收授權的重大問題,特別是要求禁止對學生群體提供Unix系統源代碼。
  • 也是在80年代初期,同樣是由於之前的Unix系統版權和源代碼限制等問題,使得當時大學里教學Unix系統的束縛很大。因此,當時的一個大學的教授,名字為Andrew Tanenbaum (譚寧邦),基於之前還在開源的Unix部分開發了一個可以運行於x86PC平臺的系統,這個系統的名字為Minix
  • 由於譚寧邦開發的這個Minix系統的目的只是用於教學,因此,Minix系統的功能無法滿足商用的需求,但是Minix的產生對於Linux的誕生又是至關重要的一個部分。
  • 1984年,Richard Stallman發起了開發自由軟體的運動,併成立了自由軟體基金會(Free Software Foundation,FSF)和GNU項目。
  • 當時發起這個自由軟體運動和創建GNU項目的目的其實很簡單,就是想開發一個類似Unix系統,並且是自由軟體的完整操作系統,也就是要解決70年代末Unix版權問題以及軟體源代碼面臨閉源的問題,這個系統叫做GNU操作系統。
  • 這個GNU系統後來沒有流行起來。現在的GNU系統通常是使用Linux系統的內核,以及使用了GNU項目貢獻的一些組件加上其它相關程式組成,這樣的組合被稱為GNU/Linux操作系統。

    2.4 Linux的誕生

    Linux系統的誕生開始於芬蘭赫爾辛基大學的一位電腦系的學生,名字為Linus Torvalds。
    Linux的標誌和吉祥物為一隻名字叫做Tux的企鵝--Torvalds‘ Unix
    屏幕快照 2016-12-23 下午9.55.47.png-58kB

1.5 Linux 的發展歷程

1,linux的發展歷程簡介

1)1984年,Andrew S.Tanenbaum開發了用於教學的Unix系統,命名為MINIX。
2)1989年,Andrew S.Tanendaum將MINIX系統運行於x86的PC電腦平臺
3)1990年,芬蘭赫爾辛基大學學生Linus Torvalds首次接觸MINIX系統
4)1991年,Linux Torvalds開始在MINIX上編寫各種驅動程式等操作系統內核組件。
5)1991年底,Linus Torvalds公開了Linux內核源代碼0.02版,註意,這裡公開的Linux內核源碼並不是我們現在使用的Linux系統的全部,而僅僅是Linux內核kernel部分的代碼。
6)1993年,Linux1.0版發行,Linux轉向GPL版權協議
7)1994年,Linux的第一個商業發行版Slackware問世。
8)1996年,美國國家標準技術局的電腦系統實驗室確認Linux版本1.2.13(由Open LInux公司打包)符合POSIX標準
9)1999年,Linux的簡體中文發行版問世
10)2000年後,Linux系統日趨成熟,涌現大量基於Linux伺服器平臺的應用,並廣泛應用於基於ARM技術的嵌入式系統中。

2,Linux發展歷程中相關人物
我們一定要向前輩們致以深深地敬意,沒有他們,就沒有今天的Linux系統存在了。
屏幕快照 2016-12-23 下午10.14.11.png-637.4kB

第2章 Linux核心概念知識

2.1 自由軟體與FSF

1,自由軟體
簡單地理解,自由軟體的核心就是沒有商業化軟體版權制約,源代碼開放,可無約束自由傳播。

註意:自由軟體強調的是權利問題,而非是否免費的問題。大家一定要理解這個概念,自由軟體中的自由是“言論自由”中的“自由”,而不是“免費啤酒”中的“免費”。

自由意味著freedom,而免費意味著free,這是完全不同的概念。例如:RedHatLinux自由但不免費,CentOS Linux是自由且免費的。
自由軟體關乎使用者運行,複製,發佈,研究,修改和改進該軟體的自由。

2,2 自由軟體基金會FSF

FSF(Free Software Foundation)的中文意思是自由軟體基金會,是Richard Stallman於1984年發起和創辦的。FSF的主要項目是GNU項目。GNU項目本身產生的主要軟體包括:Emacs (神一樣的軟體)gcc,bash和編程語言,以及gawk(GNU‘s awk)等。

2.3 GNU知識

GNU的全程為GNU‘s not unix,意思是“GNU不是UNIX“,GNU計劃,又稱革奴計劃,是由Richard Stallman 在1984年公開發起的,是FSF的主要項目。前面已經提到過,這個項目的目標是建立一套完全自由的和可移植的類Unix操作系統。
但是GNU自己的內核Hurd仍在開發中,離實用還有一定的距離。
現在的GNU系統通常是使用Linux系統的內核,加上GNU項目貢獻的一些組件,以及其它相關程式組成的,這樣的組合被稱為GNU/Linux操作系統,
到1991年linux內核發佈的時候,GNU項目已經完成了除系統內核之外的各種必備軟體的開發。在Linus Torvalds和其它開發人員的努力下,GNU項目的部分組件又運行到了Linux內核之上,例如:GNU項目里的Emacs,gcc,bash,gawk等,至今都是Linux系統中很重要的基礎軟體。

屏幕快照 2016-12-23 下午10.52.41.png-82.5kB

2.4 GPL知識

GPL全稱為General Public License,中文名為通用公共許可,是一個最著名的開源許可協議,開源社區最著名的Linux內核就是在GPL許可下發佈的。GPL許可是自由軟體基金會(Free Software foundation)創建的。
1984年,Richard Stallman發起開發自由軟體的運動後不久,在其他人的協作下,他創立了通用公共許可證(GPL),這對推動自由軟體的發展起了至關重要的作用,那麼,這個GPL到底是什麼意思呢?
簡單的理解,GPL許可的核心,是保證任何人有共用和修改自由軟體的自由,任何人有權取得,修改和重新發佈自由軟體的源代碼權利,但都必須同時給出具體更改的源代碼
雖然整個Linux內核是基於GNU通用公共許可的,但是Linux內核並不是GNU計劃的一部分。這一點,請不要混淆。
FSF(公司)==>GPL(項目)==>emacs gcc bash gawk
FSF(公司)==>GPL(項目) ==>自由傳播 修改源代碼 但是必須把修改後的源代碼也要發佈出來
Linus Torvalds==>linux內核

2.5 Linux系統組成

Linux操作系統=linux內核+GNU軟體及系統軟體+必要的應用程式

屏幕快照 2016-12-23 下午11.04.57.png-227.2kB

第3章 Linux的特點

3.1 Linux為什麼受歡迎?

Linux系統之所以受到廣大電腦愛好者的喜愛,主要原因有兩個:
一是,Linux屬於自由軟體,用戶不用支付任何費用就可以獲得系統和系統的源代碼,並且可以根據自己的需要對源代碼進行必要的修改,無償使用,無約束地自由傳播。
二是,Linux具有Unix的全部優秀特性,任何使用Unix操作系統或想要學習Unix操作系統的人,都可以通過學習Linux來瞭解Unix,同樣可以獲得Unix中的幾乎所有優秀功能,並且Linux系統更開放,社區開發和全世界的使用者也更活躍。

第4章 如何選擇Linux的發行版

4.1 Linux的發行版本介紹

  • Linux內核(kernel)版本主要有4個系列,分別為Linux kernel2.2,Linux kernel2.4,Linuxkernel2.6,Linux kernel3.x,更多更新版本請瀏覽kernel官網,點擊即可
  • linux的發行商包括Slackware,Redhat,Debjan,Fedora,TurboLinux,Mandrake,SUSE,CentOS,Ubuntu,紅旗,麒麟...
    下麵看看其中幾個重要的發行版本。

1)Red Hat:Red Hat Linux9.0的內核為2.4.20.在版本9.0後,Red Hat 不再遵循GPL協議,成為收費產品(但仍開源),發展的新版本依次為Red Hat 3.x,Red Hat 4.x,Red Hat 5.x Red Hat 6.x,Red Hat 7.x .
2)Fedora:為Red Hat的一個分支,仍遵循GPL協議,可以認為是RedHat預發佈版。(游戲公測)
3)CentOS(Community Enterprise Operationg System):與redhat做到二進位級別的一摸一樣。RedHat的另一個重要分支,以RedHat所發佈的源代碼重建符合GPL許可協議的Linux系統,即將Red Hat Linux 源代碼的商標LOGO以及非自由軟體部分去除後再編譯而成的版本,目前CentOS已被RedHat公司收購,但仍開源免費。CentOS Linux是國內互聯網公司使用最多的Linux系統版本。

提示:有關Linux操作系統,記住Redhat,CentOS,Ubuntu,Fedora,SUSE,DEbian等即可。Redhat與CentOS的區別和聯繫,有時會被面試官問到,需要重點瞭解。

4.2 Linux發行版本應用場景

屏幕快照 2016-12-23 下午11.36.32.png-754.9kB

4.3 CentOS的主流版本再國內互聯網企業的使用現狀說明

  • CentOS 5系列:占25%左右,主流版本有CentOS 5.5,CentOS5.11,不推薦學習。===>Linux 2.4
  • CentOS 6系列:占45%左右,主流版本有CentOS 6.2,CentOS 6.4,CentOS 6.6,CentOS 6.8 ===>Linux 2.6
  • CentOS 7 系列:剛剛發佈不久,目前極少企業正式使用,因此不建議玩它。這裡有一個企業使用的大環境問題,因為學完了沒地方用不說,企業實際用的CentOS 5和CentOS 66系列你反而不會,那樣就捨本逐末了,先學習6,再過2年等企業用上了CentOS7,輕鬆就可以轉過去,根據企業的主流應用選擇才是明智的。

4.4 為什麼企業環境要選擇64位操作系統?

  • 目前絕大多數企業生產環境中,使用的都是64位CentOS系統,32位與64位系統的定位和區別。
  • 區別一:當初設計時定位不同。64位操作系統的設計定位是:滿足機械設計和分析,三維動畫,視頻編輯和創作,以及科學計算和高性能計算應用程式等領域,這些應用領域的共同特點就是需要有大量的系統記憶體和浮點性能。簡單地說,64位操作系統是為高科技人員使用本行業特殊軟體的運行平臺而設計的。而32位操作系統是為普通用戶設計的。
  • 區別二:安裝要求配置不同。64位操作系統只能安裝在64位電腦上(CPU必須是64位的),並且只在針對64位的軟體時才能發揮最佳性能。32位操作系統可以安裝在32位(32位CPU)電腦上,也可以安裝在64位(64CPU)電腦上。當然,此時32位的操作系統是無法發揮674位硬體性能的。
  • 區別三:運算速度不同:
    64位===>8車道大馬路(2^8)
    32位===>4車道馬路(2^2)
  • 區別四:定址能力不同
    支持的最大記憶體不同
    32位系統 4GB 記憶體
    64位系統 128GB 記憶體

屏幕快照 2016-12-24 上午12.09.06.png-98.4kB

小面試題:你們公司伺服器使用的版本是什麼?
CentOS 6.8 x86_64 內核版本 2.6.32

小結:
本章重點回顧:
1)瞭解什麼是操作系統以及操作系統簡單原理圖
2)瞭解Unix發展歷史
3)瞭解市面上的常見Unix系統版本
4)瞭解Unix及Linux誕生髮展的幾個關鍵人物
5)重點瞭解GNU GPL FSF的知識
6)瞭解Linux系統的特點
7)瞭解Linux系統的常見發行版本,不同場景選擇
8)重點瞭解CentOS和Redhat的區別和聯繫
9)瞭解CentOS各個版本的應用場景及企業應用情況
10)學習搭建學習Linux的環境

本章知識相關面試題
1)請詳細描述GNU的相關知識和歷史事件?
2)請描述什麼是GPL以及GPL的內容細節?
3)企業工作中如何選擇各Linux發行版?
4)Red Hat Linux和CentOS Linux有啥區別和聯繫?




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 【轉自網路】https://my.oschina.net/cers/blog/292191 PK Belongs to primary key 作為主鍵 NN Not Null 非空 UQ Unique index 不能重覆 BIN Is binary column 存放二進位數據的列 UN Uns ...
  • 分析: 資料庫設計應遵循三大範式分別為: 第一範式:確保表中每列的原子性(不可拆分); 第二範式:確保表中每列與主鍵相關,而不能只與主鍵的某部分相關(主要針對聯合主鍵),主鍵列與非主鍵列遵循完全函數依賴關係(完全依賴); 第三範式:非主鍵列之間沒有傳遞函數依賴關係(消除傳遞依賴); 詳述: 第一範式 ...
  • Took me a while to suffer from the first successful souce code installation of mysql-5.6.34. Just put it here and share it with u. Env.OS:Red Hat Ente ...
  • 在最開始階段,我們進行初始數據的收集工作,根據不同的業務場景,可能會涉及到的一些技術領域:分散日誌收集技術,諸如Scribe、Flume為代表的開源日誌收集系統;數據消息傳遞相關的技術,各種開源的消息隊列MQ,諸如ActiveMQ、RocketMQ、Kafka等;各種爬蟲技術、網頁解析技術;資料庫數 ...
  • ClearTrace 能幹啥 當我們的資料庫伺服器在某段業務高峰年期間,周期性出現如CPU接近 100%、記憶體耗盡、IO量大等問題時候,作為維護人員這時候壓力很大,在做一般性排除後仍然沒有找到原因。當我們需要進一步深入到語句分析層面找問題根源時,ClearTrace這款工具正好可以幫上忙。 通過該工 ...
  • 前幾天,一臺Oracle資料庫(Oracle Database 10g Release 10.2.0.4.0 - 64bit Production)監控出現"PMON failed to acquire latch, see PMON dump"錯誤,連接資料庫出現短暫異常,告警日誌中具體錯誤如下所... ...
  • 因為項目原因, mysql用了兩年了, 但是一直都未曾去總結過. 最近也是領導讓總結項目, 才想起把mysql的使用小結一下. 一、 Create 1. 單條插入, sql格式: insert into (列名) values(列值); 對於自增的 Id, 是不需要寫的, 資料庫會自動生成, 但是如 ...
  • mysql資料庫出現2003-Can't connect to mysql server on localhost (10061)問題 解決辦法:查看wampserver伺服器是否啟動,如果沒有啟動啟動伺服器。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...