作業系統學習

konglingbin發表於2024-05-26

Ubuntu(烏班圖)、RedHat(紅帽)、CentOS、Debain[蝶變]、Fedora、SuSE、OpenSUSE

3、Linux和Windows區別

4、Linux和Unix關係

UNIX 是 Linux 的父親"這個說法更怡當。之所以要介紹它們的關係,是因為要告訴讀者,在學習的時候,其實 Linux 與 UNIX 有很多的共通之處,簡單地說,如果你已經熟練掌握了 Linux,那麼再上手使用 UNIX 會非常容易。

二者也有兩個大的區別:

UNIX 系統大多是與硬體配套的,也就是說,大多數 UNIX 系統如 AIX、HP-UX 等是無法安裝在 x86 伺服器和個人計算機上的,而 Linux 則可以執行在多種硬體平臺上;

UNIX 是商業軟體,而 Linux 是開源軟體,是免費、公開原始碼的。

二、安裝虛擬機器以及CentOS7

學習Linux需要一個環境,我們需要建立一個虛擬機器,然後在虛擬機器上安裝一個Centos系統來學習

點選此處獲取虛擬機器軟體

連結:https://pan.baidu.com/s/18UMUI3UL2-P9YnaJDVB4pA

提取碼:ryor

三、Linux的目錄結構

linux的檔案系統是採用級層式的樹狀目錄結構,在此結構中的最上層是根目錄/,然後在此目錄下再建立其他的目錄。深刻理解linux樹狀檔案目錄是非常重要的,對以後的開發效率有很大的提升。在Linux世界裡,一切皆檔案。

下面是Linux目錄結構圖:

/bin (/usr/bin 、 /usr/local/bin)是Binary的縮寫, 這個目錄存放著最經常使用的命令

/sbin (/usr/sbin 、 /usr/local/sbin)這裡存放的是系統管理員使用的系統管理程式

/home 存放普通使用者的主目錄,在Linux中每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的。

/root 該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。

/lib 系統開機所需要最基本的動態連線共享庫,其作用類似於Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫。

/lost+found 這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案

/etc 所有的系統管理所需要的配置檔案和子目錄 my.conf

/usr 這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似與windows下的program files目錄

/boot 存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案

/proc 這個目錄是一個虛擬的目錄,它是系統記憶體的對映,訪問這個目錄來獲取系統資訊

/srv service縮寫,該目錄存放一些服務啟動之後需要提取的資料。

/sys 這是linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統 sysfs

/tmp 這個目錄是用來存放一些臨時檔案的。

/dev 類似於windows的裝置管理器,把所有的硬體用檔案的形式儲存。

/media linux系統會自動識別一些裝置,例如隨身碟、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。

/mnt 系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將外部的儲存掛載在/mnt/上,然後進入該目錄就可以檢視裡的內容了。 d:/myshare

/opt 這是給主機額外安裝軟體所擺放的目錄。如安裝ORACLE資料庫就可放到該目錄下。預設為空。

/usr/local 這是另一個給主機額外安裝軟體所安裝的目錄。一般是透過編譯原始碼方式安裝的程式

/var 這個目錄中存放著在不斷擴充著的東西,習慣將經常被修改的目錄放在這個目錄下。包括各種日誌檔案。
————————————————

作業系統的內部的六種不同的結構設計:單體系統、層次系統、微核心、客戶機-伺服器系統、虛擬機器和exokernels。

作業系統結構是指作業系統的構成結構。在作業系統的發展過程中,產生了多種多樣的系統結構,幾乎每一個作業系統在結構上都有自己的特點,從總體上看,根據出現的時間,作業系統結構依次可以分為整體式結構、模組化結構、層次式結構和微核心結構。

Linux系統結構

UNIX/Linux 系統可以粗糙地抽象為 3 個層次,底層是系統核心(Kernel);中間層是Shell層,即命令解釋層;高層則是應用層。

(1)核心層

核心層是 UNIX/Linux 系統的核心和基礎,它直接附著在硬體平臺之上,控制和管理系統內各種資源(硬體資源和軟體資源),有效地組織程序的執行,從而擴充套件硬體的功能,提高資源的利用效率,為使用者提供方便、高效、安全、可靠的應用環境。

(2)Shell層

Shell 層是與使用者直接互動的介面。使用者可以在提示符下輸入命令列,由 Shell 解釋執行並輸出相應結果或者有關資訊,所以我們也把 Shell 稱作命令直譯器,利用系統提供的豐富命令可以快捷而簡便地完成許多工作。

(3)應用層

應用層提供基於 X Window 協議的圖形環境。X Window 協議定義了一個系統所必須具備的功能。

二、深入探究Linux核心

Linux系統的核心是核心。核心控制著計算機系統上的所有硬體和軟體,在必要時分配硬體,並根據需要執行軟體。核心主要負責以下四種功能:

  • 系統記憶體管理
  • 軟體程式管理
  • 硬體裝置管理
  • 檔案系統管理

1. 系統記憶體管理

作業系統核心的主要功能之一就是記憶體管理。核心不僅管理伺服器上的可用實體記憶體,還可以建立和管理虛擬記憶體(即實際並不存在的記憶體)。

核心透過硬碟上的儲存空間來實現虛擬記憶體,這塊區域稱為交換空間(swap space)。核心不斷地在交換空間和實際的實體記憶體之間反覆交換虛擬記憶體中的內容。這使得系統以為它擁有比實體記憶體更多的可用記憶體。

記憶體儲存單元按組劃分成很多塊,這些塊稱作頁面(page)。核心將每個記憶體頁面放在實體記憶體或交換空間。然後,核心會維護一個記憶體頁面表,指明哪些頁面位於實體記憶體內,哪些頁面被換到了磁碟上。

2. 軟體程式管理

Linux作業系統將執行中的程式稱為程序。程序可以在前臺執行,將輸出顯示在螢幕上,也可以在後臺執行,隱藏到幕後。核心控制著Linux系統如何管理執行在系統上的所有程序。

核心建立了第一個程序(稱為init程序)來啟動系統上所有其他程序。當核心啟動時,它會
將init程序載入到虛擬記憶體中。核心在啟動任何其他程序時,都會在虛擬記憶體中給新程序分配一塊專有區域來儲存該程序用到的資料和程式碼。

一些Linux發行版使用一個表來管理在系統開機時要自動啟動的程序。在Linux系統上,這個表通常位於專門檔案/etc/inittab中。

另外一些系統(比如現在流行的Ubuntu Linux發行版)則採用/etc/init.d目錄,將開機時啟動
或停止某個應用的指令碼放在這個目錄下。這些指令碼透過/etc/rcX.d目錄下的入口(entry)啟動,這裡的X代表執行級(run level)。

Linux作業系統的init系統採用了執行級。執行級決定了init程序執行/etc/inittab檔案或/etc/rcX.d目錄中定義好的某些特定型別的程序。 Linux作業系統有5個啟動執行級。

  • 執行級為1時,只啟動基本的系統程序以及一個控制檯終端程序。我們稱之為單使用者模式。單使用者模式通常用來在系統有問題時進行緊急的檔案系統維護。顯然,在這種模式下,僅有一個人(通常是系統管理員)能登入到系統上運算元據。
  • 標準的啟動執行級是3。在這個執行級上,大多數應用軟體,比如網路支援程式,都會啟動。另一個Linux中常見的執行級是5。在這個執行級上系統會啟動圖形化的X Window系統,允許使用者透過圖形化桌面視窗登入系統。

可以使用ps命令檢視當前執行在Linux系統上的程序。

3. 硬體裝置管理

核心的另一職責是管理硬體裝置。任何Linux系統需要與之通訊的裝置,都需要在核心程式碼
中加入其驅動程式程式碼。驅動程式程式碼相當於應用程式和硬體裝置的中間人,允許核心與裝置之間交換資料。在Linux核心中有兩種方法用於插入裝置驅動程式碼:

  • 編譯進核心的裝置驅動程式碼
  • 可插入核心的裝置驅動模組

以前,插入裝置驅動程式碼的唯一途徑是重新編譯核心。每次給系統新增新裝置,都要重新編譯一遍核心程式碼。隨著Linux核心支援的硬體裝置越來越多,這個過程變得越來越低效。不過好在Linux開發人員設計出了一種更好的將驅動程式碼插入執行中的核心的方法。

開發人員提出了核心模組的概念。它允許將驅動程式碼插入到執行中的核心而無需重新編譯內
核。同時,當裝置不再使用時也可將核心模組從核心中移走。這種方式極大地簡化和擴充套件了硬體裝置Linux上的使用。

Linux系統將硬體裝置當成特殊的檔案,稱為裝置檔案。裝置檔案有3種分類:

  • 字元型裝置檔案:指處理資料時每次只能處理一個字元的裝置 ,比如大多數型別的調變解調器和
    終端 。
  • 塊裝置檔案: 指處理資料時每次能處理大塊資料的裝置,比如硬碟。
  • 網路裝置檔案:指採用資料包傳送和接收資料的裝置,包括各種網路卡和一個特殊的迴環裝置。

4. 檔案系統管理

不同於其他一些作業系統, Linux核心支援透過不同型別的檔案系統從硬碟中讀寫資料。除
了自有的諸多檔案系統外, Linux還支援從其他作業系統(比如Microsoft Windows)的檔案
系統中讀寫資料。核心必須在編譯時就加入對所有可能用到的檔案系統的支援。下表列出了Linux系統用來讀寫資料的標準檔案系統。

檔案系統描 述
ext Linux擴充套件檔案系統,最早的Linux檔案系統
ext2 第二擴充套件檔案系統,在ext的基礎上提供了更多的功能
ext3 第三擴充套件檔案系統,支援日誌功能
ext4 第四擴充套件檔案系統,支援高階日誌功能
hpfs OS/2高效能檔案系統
jfs IBM日誌檔案系統
iso9660 ISO 9660檔案系統( CD-ROM)
nfs 網路檔案系統
ntfs 支援Microsoft NT檔案系統
ufs BSD檔案系統
vfat Windows 95檔案系統( FAT32)

Linux伺服器所訪問的所有硬碟都必須格式化成上表所列檔案系統型別中的一種。


參考:https://blog.csdn.net/m0_54206457/article/details/138452315

https://blog.csdn.net/m0_63006478/article/details/131293084

https://www.cnblogs.com/yifanrensheng/p/13863319.html

https://blog.csdn.net/m0_48073095/article/details/134548415

相關文章