操作系統愛的初體驗-[Linux][Day-22]

2020-08-08 21:20:13

操作系統愛的初體驗-[Linux]

瞭解熟悉程式設計師都在用的Linux操作系統

操作系統OS

​ Operation System

​ 計算機的組成:硬體系統和軟件系統

​ 硬體系統:硬體裝置

​ 軟件系統: 系統軟體和應用軟體

操作系統的作用

​ 沒有安裝操作系統的計算機稱爲裸機

​ 如果想要在裸機上執行自己所編寫的程式,就必須需要用機器語言書寫程式

​ 如果計算機上安裝了操作系統,就可以在操作系統上安裝支援的高階語言環境,使用高階語言開發程式

​ 1.是現代計算機系統中最基本和最重要的系統軟體

​ 2.是設定在計算機硬體上的第一層軟體,是對硬體系統的首次擴充套件

​ 3.主要作用是管理好硬體裝置,併爲使用者和應用程式提供一個簡單的介面,以便於使用

​ 4.其他的編譯程式、數據庫管理系統以及大量的應用軟體都直接依賴於操作系統的支援

操作系統的定義

​ 直接執行在計算機上的系統軟體,它是控制硬體和支援軟體執行的計算機程式

​ 計算機組成:最底部(硬體裝置)=》操作系統=》安裝各種應用軟體

​ 操作系統是應用軟體的一個最基本的平臺,也可以理解爲操作系統是應用軟體和硬體之間的一個橋樑

常見的操作系統

​ windows

​ mac OS

​ Linux

​ iOS

​ Android

​ Win Phone

​ windows Server

操作系統的應用領域

​ 桌面操作系統(windows系列、mac OS、Linux)

​ 伺服器操作系統(windows server(付費、佔有率低)、Linux(安全、穩定、免費))

​ 嵌入式操作系統(Linux)

​ 移動號裝置操作系統(iOS/Android(Java+Linux))

虛擬機器

虛擬機器是什麼

模仿一個真實的計算機,好比是一個虛擬的電腦,這臺電腦指的就是一個裸機,任何一臺計算機起始裝一個系統軟體。一般情況下一個系統需要單獨的執行空間。在學習中一般面對一個新的操作系統可以通過虛擬機器來完成

常用的虛擬機器

VMware

VirtualBox

計算機組成:最底部(硬體裝置)=》windows系統=》VMware=》虛擬機器軟體=》[Linux系統、macOS系統]

虛擬機器之間是相互獨立的,刪除虛擬機器不會對其他的虛擬機器產生影響,也不會對主系統產生影響

Linux系統

系統發展史

簡述

Linux是一種自由和開放原始碼的類UNIX操作系統。該操作系統的內核由Linus Torvalds在1991年10月5日首次發佈,在加上使用者空間的應用程式之後,成爲Linux操作系統。Linux也是自由軟體和開放原始碼軟體發展中最著名的例子。

目前Linux已經被移植到更多的計算機硬體平臺,Linux可以執行在伺服器和其他大型平臺之上,如大型主機和超級計算機。Linux也廣泛應用在嵌入式系統上,如手機(Mobile Phone)、平板電腦(Tablet)、路由器(Router)、電視(TV)和電子遊戲機等。在移動裝置上廣泛使用的Android操作系統就是建立在Linux內核之上。

Linux被打包成供個人計算機和伺服器使用的Linux發行版,一些流行的主流Linux發佈版,包括Debian(及其派生版本Ubuntu、Linux Mint)、Fedora(及其相關版本Red Hat Enterprise Linux、CentOS)和openSUSE等。

Linux發行版包含Linux內核和支撐內核的實用程式和庫,通常還帶有大量可以滿足各類需求的應用程式。個人計算機使用的Linux發行版通常包含X Window和一個相應的桌面環境,如GNOME或KDE。桌面Linux操作系統常用的應用程式,包括Firefox網頁瀏覽器、LibreOffice辦公軟體、GIMP影象處理工具等。由於Linux是自由軟體,任何人都可以建立一個匹配自己需求的Linux發行版。

Linux嚴格來說是單指操作系統的內核,因操作系統中包含了許多使用者圖形介面和其他實用工具。如今Linux常用來指基於Linux的完整操作系統,內核則改稱Linux內核。

歷史

  • UNIX

UNIX操作系統(英語:UNIX),是美國AT&T公司貝爾實驗室於1969年完成的操作系統。最早由肯·湯普遜(Ken Thompson),丹尼斯·裡奇(Dennis Ritchie),道格拉斯·麥克羅伊(Douglas McIlroy),和喬伊·歐桑納於1969年在AT&T貝爾實驗室開發。於1971年首次發佈,最初是完全用匯編語言編寫,這在當時是一種普遍的做法。後來,在1973年用一個重要的開拓性的方法,Unix被丹尼斯·裡奇用程式語言C(內核和I/O例外)重新編寫。高階語言編寫的操作系統具有更佳的相容性,能更容易地移植到不同的計算機平臺。

  • GNU

1983年,理查德·馬修·斯托曼創立GNU計劃。這個計劃有一個目標,是爲了發展一個完全自由的類Unix操作系統。自1984年發起這個計劃以來,在1985年,理查德·馬修·斯托曼發起自由軟體基金會並且在1989年撰寫GPL。1990年代早期,GNU開始大量的產生或收集各種系統所必備的元件,像是——庫、編譯器、偵錯工具、文字編輯器、網頁伺服器,以及一個Unix的用戶介面(Unix shell)——但是像一些底層環境,如硬體驅動、守護行程執行內核(kernel)仍然不完整和陷於停頓,GNU計劃中是在馬赫微核(Mach microkernel)的架構之上開發系統內核,也就是所謂的GNU Hurd,但是這個基於Mach的設計異常複雜,發展進度則相對緩慢。

  • BSD

386BSD因爲法律問題直到1992年還沒有發佈,NetBSD和FreeBSD是386BSD的後裔,早於Linux。林納斯·托瓦茲曾說,當時如果有可用的386BSD,他就可能不會編寫Linux。

  • MINIX

MINIX是一個輕量小型並採用微內核(Micro-Kernel)架構的類Unix操作系統,是安德魯·斯圖爾特·塔能鮑姆爲在電腦科學用作教學而設計的。

  • Linux

在1991年,林納斯·托瓦茲開始在MINIX上開發Linux內核,爲MINIX寫的軟體也可以在Linux內核上使用。後來使用GNU軟體代替MINIX的軟體,因爲使用從GNU系統來的原始碼可以自由使用,這對Linux的發展是有益。使用GNU GPL協定的原始碼可以被其他專案所使用,只要這些專案使用同樣的協定發佈。爲了讓Linux可以在商業上使用,林納斯·托瓦茲決定更改他原來的協定(這個協定會限制商業使用),以GNU GPL協定來代替。之後許多開發者致力融合GNU元素到Linux中,做出一個有完整功能的、自由的操作系統。

  • Minix & Linux歷史源流

Linux的標誌和吉祥物是一隻名字叫做Tux的企鵝標誌的由來是因爲Linus在澳洲時曾被一隻動物園裏的企鵝咬了一口,便選擇企鵝作爲Linux的標誌。更容易被接受的說法是:企鵝代表南極,而南極又是全世界所共有的一塊陸地。這也就代表Linux是所有人的Linux。

  • 發展現狀

今天由Linus Torvalds帶領下,衆多開發共同參與開發和維護Linux內核。理查德·斯托曼領導的自由軟體基金會,繼續提供大量支援Linux內核的GNU元件。一些個人和企業開發的第三方的非GNU元件也提供對Linux內核的支援,這些第三方元件包括大量的作品,有內核模組和使用者應用程式和庫等內容。Linux社羣或企業都推出一些重要的Linux發行版,包括Linux內核、GNU元件、非GNU元件,以及其他形式的的軟體包管理系統軟體。

系統架構

基於Linux的系統是一個模組化的類Unix操作系統。Linux操作系統的大部分設計思想來源於20世紀70年代到80年代的Unix操作系統所建立的基本設計思想。Linux系統使用宏內核,由Linux內核負責處理進程控制、網路,以及外圍裝置和檔案系統的存取。在系統執行的時候,裝置驅動程式要麼與內核直接整合,要麼以載入模組形式新增。

Linux具有裝置獨立性,它內核具有高度適應能力,從而給系統提供了更高階的功能。GNU用戶介面元件是大多數Linux操作系統的重要組成部分,提供常用的C函數庫,shell,還有許多常見的Unix實用工具,可以完成許多基本的操作系統任務。大多數Linux系統使用的圖形用戶介面建立在X視窗系統之上,由X視窗(XWindow)系統通過軟體工具及架構協定來建立操作系統所用的圖形用戶介面。

已安裝Linux操作系統包含的一些元件:
啓動程式——例如GRUB或LILO。該程式在計算機開機啓動的時候執行,並將Linux內核載入到記憶體中。
init程式。init是由Linux內核建立的第一個進程,稱爲根進程,所有的系統進程都是它的子進程,即所有的進程都是通過init啓動。init啓動的進程如系統服務和登錄提示(圖形或終端模式的選擇)。
軟體庫包含程式碼,可以通過執行的進程。在Linux系統上使用ELF格式來執行檔案,負責管理庫使用的動態鏈接器是「ld-linux.so」。Linux系統上最常用的軟體庫是GNU C庫。
用戶介面程式,如命令列shell或視窗環境。

Linux發行版

Linux發行版指的就是通常所說的「Linux操作系統」,它一般是由一些組織、團體、公司或者個人製作併發行的。Linux內核主要作爲Linux發行版的一部分而使用。通常來講,一個Linux發行版包括Linux內核,以及將整個軟體安裝到電腦上的一套安裝工具,還有各種GNU軟體,和其他的一些自由軟體,在一些Linux發行版中可能會包含一些專有軟體。發行版爲許多不同的目的而製作,包括對不同電腦硬體結構的支援,對普通使用者或開發者使用方式的調整,針對實時應用或嵌入式系統的開發等等。目前,超過三百個發行版被積極的開發,最普遍被使用的發行版有大約十二個。較爲知名的有Debian、Ubuntu、Fedora和openSUSE等。

一個典型的發行版包括:Linux內核,GNU庫和各種系統工具,命令列Shell,圖形介面底層的X視窗系統和上層的桌面環境等。桌面環境有如KDE或GNOME等,幷包含數千種從辦公包,編譯器,文字編輯器,小遊戲,兒童教育軟體,到科學工具的應用軟體。

主要特性

  • 列表內容

一切都是檔案。每個軟體都有確定的用途。
其中第一條詳細來講就是系統中的所有都歸結爲一個檔案,包括:命令、硬體和軟體裝置、操作系統、進程等等,對於操作系統內核而言,都被視爲擁有各自特性或型別的檔案。至於說Linux是基於Unix的,很大程度上也是因爲這兩者的基本思想十分相近。

  • 完全免費

Linux是一款免費的操作系統,使用者可以通過網路或其它途徑免費獲得,並可以任意修改其原始碼。這是其它操作系統所做不到的。正是由於這一點,來自全世界的無數程式設計師參與了Linux的修改、編寫工作,程式設計師可以根據自己的興趣和靈感對其進行改變,這讓Linux吸收了無數程式設計師的精華,不斷壯大。

  • 完全相容POSIX1.0標準

這使得可以在Linux下通過相應的模擬器執行常見的DOS、Windows的程式,這爲使用者從Windows轉到Linux奠定了基礎。許多使用者在考慮使用Linux時,就想到以前在Windows下常見的程式是否能正常執行,這一點就消除了他們的疑慮。

  • 多使用者、多工

Linux支援多使用者,各個使用者對於自己的檔案裝置有自己特殊的權利,保證了各使用者之間互不影響。多工則是現在電腦最主要的一個特點,Linux可以使多個程式同時並獨立地執行。

  • 良好的介面

Linux同時具有字元介面和圖形介面,在字元介面使用者可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形介面的X-Window系統,使用者可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。

  • 支援多種平臺

Linux可以執行在多種硬體平臺上,如:具有x86、680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統,可以執行在掌上電腦、機上盒或遊戲機上。2001年1月份發佈的Linux 2.4版內核已經能夠完全支援Intel 64位元晶片架構,同時Linux也支援多處理器技術。多個處理器同時工作,使系統效能大大提高。

Linux內核版本

Linux內核使用三種不同的版本編號方式。

用於1.0版本之前(包括1.0)。第一個版本是0.01,緊接着是0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99和之後的1.0。用於1.0之後到2.6,數位由三部分「A.B.C」,A代表主版本號,B代表次主版本號,C代表較小的末版本號。只有在內核發生很大變化時(歷史上只發生過兩次,1994年的1.0、1996年的2.0),A才變化。可以通過數位B來判斷Linux是否穩定,偶數的B代表穩定版,奇數的B代表開發版。C代表一些bug修復,安全更新,新特性和驅動的次數。以版本2.4.0爲例,2代表主版本號,4代表次版本號,0代表改動較小的末版本號。在版本號中,序號的第二位爲偶數的版本表明這是一個可以使用的穩定版本,如2.2.5,而序號的第二位爲奇數的版本一般有一些新的東西加入,是個不一定很穩定的測試版本,如2.3.1。這樣穩定版本來源於上一個測試版升級版本號,而一個穩定版本發展到完全成熟後就不再發展。

從2004年2.6.0版本開始,使用一種「time-based」的方式。3.0版本之前,是一種「A.B.C.D」的格式。這些年裏,前兩個數位A.B即「2.6」保持不變,C隨着新版本的發佈而增加,D代表一些bug修復、安全更新、新增新特性和驅動的次數。3.0版本之後是「A.B.C」格式,B隨着新版本的發佈而增加,C代表一些bug修復、安全更新、新特性和驅動的次數。

第三種方式中不再使用偶數代表穩定版,奇數代表開發版這樣的命名方式。舉個例子:3.7.0代表的不是開發版,而是穩定版!

Linux內核及發行

內核

​ 內核指的是一個系統的心臟,是執行程式和管理磁碟、印表機等硬體裝置的核心程式,它提供了一個在裸機與應用程式間的抽象層

​ Linux內核版本有分爲穩定版和開發版,兩個版本時相互關聯,相互回圈

​ 穩定版:具有商業價值,具有工業級強度,可以廣泛的應用和部署,新的版本針對舊版本只是新增一些功能和修復bug

​ 開發版:由於要實驗各種解決方案,變化很快

​ 內核原始碼地址:https://www.kernel.org/

發行

​ Linux發行版也叫Gun/Linux發行版。通常包含了包括桌面環境、辦公套件、媒體播放器、數據庫等應用軟體

​ 常見的發行版:

​ Ubuntu

​ Redhat

​ Fedora

​ CentOS

Linux應用領域

伺服器

​ linux在伺服器領域的應用佔一半

​ Linux免費、穩定、高效

嵌入式

​ 機上盒、數位電視、網路電話、交換機等

個人桌面

​ 這個是傳統的Linux應用最薄弱的領域

​ 傳統Linux介面簡單、操作複雜、應用軟體少

​ 幾年來Ubuntu和Fedora等優秀桌面環境也慢慢興起

Day22-------END