首頁  >  文章  >  運維  >  linux可分為哪幾部分

linux可分為哪幾部分

青灯夜游
青灯夜游原創
2022-05-12 19:29:2111292瀏覽

linux可分為4個部分:1、內核,控制電腦系統上的所有硬體和軟體,主要負責系統記憶體管理、軟體程式管理、硬體設備管理、檔案系統管理;2、GNU工具,除內核控制的硬體設備外的必須工具,例shell;3、桌面環境,例如KDE;4、應用軟體。

linux可分為哪幾部分

本教學操作環境:linux5.9.8系統、Dell G3電腦。

Linux 是一種自由且開放原始碼的類 UNIX 作業系統。它主要受到Minix和Unix思想的啟發,是一個基於POSIX的多用戶、多任務、支援多執行緒和多CPU的作業系統。 linux可分割為以下四個部分:

  • Linux核心
  • GNU工具
  • 圖形化桌面環境
  • 應用軟體

下圖是一個基本結構框圖,展示各部分是如何協同構成一個完整的Linux系統。
linux可分為哪幾部分

1.Linux核心

Linux系統的核心是核心。核心控制著電腦系統上的所有硬體和軟體。核心主要負責以下四個功能:

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

1.1系統記憶體管理

作業系統核心的主要功能之一就是記憶體管理。核心不僅管理伺服器上的可用實體內存,還可以創建和管理虛擬內存(即實際上並不存在的內存)。核心透過硬碟上的儲存空間來實現虛擬內存,這塊區域稱為交換空間(swap space)。核心不斷地在交換空間和實際的實體記憶體之間反覆交換虛擬記憶體中的內容。這使得系統以為它擁有比實體記憶體更多的可用記憶體。
linux可分為哪幾部分

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

核心會記錄哪些記憶體頁面正在使用中,並自動把一段時間未造訪的記憶體頁面複製到交換空間區域(稱為換出,swapping out)-即使還有可用記憶體。當程式要存取一個已被換出的記憶體頁面時,核心必須從實體記憶體換出另一個記憶體頁面給它讓出空間,然後從交換空間換入要求的記憶體頁面。顯然,這個過程要花時間,拖慢運行中的進程。只要Linux系統在運行,為運行中的程式換出記憶體頁面的過程就不會停歇。

1.2軟體程式管理
Linux作業系統將執行中的程式稱為進程。核心創建了第一個進程(稱為init進程)來啟動系統上所有其他進程。當核心啟動時,它會將init進程載入到虛擬記憶體中。核心在啟動任何其他進程時,都會在虛擬記憶體中給新進程分配一塊專有區域來儲存該進程用到的資料和程式碼。
Linux作業系統的init系統採用了運行級。運行級決定了init進程運行/etc/inittab檔案或
/etc/rcX.d目錄中定義好的某些特定類型的進程。 Linux作業系統有5個啟動運行級。

運行級為1時,只啟動基本的系統進程以及一個控制台終端進程。我們稱之為單一用戶模式。單一用戶模式通常用來在系統有問題時進行緊急的檔案系統維護。顯然,在這種模式下,只有一個人(通常是系統管理員)能登入系統上操作資料。

標準的啟動運行級是3。在這個運行級上,大多數應用軟體,例如網路支援程序,都會啟動。另一個Linux中常見的運行級是5。在這個運行級上系統會啟動圖形化的X Window系統,讓使用者可以透過圖形化桌面視窗登入系統。

Linux系統可以透過調整啟動運行級來控制整個系統的功能。透過將運行級從3調整成5,系統就可以從基於控制台的系統變成更先進的圖形化X Window系統。

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

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

#Linux系統將硬體設備當成特殊的文件,稱為設備文件。設備檔案有3種分類:

  • 字元型裝置檔案:指處理資料時每次只能處理一個字元的裝置。大多數類型的數據機和終端機都是作為字元型設備檔案建立的
  • 區塊設備檔案:指處理資料時每次能處理大塊資料的設備,例如硬碟。
  • 網路設備檔案:指採用資料包傳送和接收資料的設備,包括各種網路卡和一個特殊的回環設備。

1.4 檔案系統管理
Linux核心支援透過不同類型的檔案系統從硬碟中讀取和寫入資料。表1-1列出了Linux系統用來讀寫資料的標準檔案系統。
linux可分為哪幾部分

2.GUN工具

除了由核心控制硬體設備外,作業系統還需要工具來執行一些標準功能,例如控製文件和程序。供Linux系統使用的這組核心工具稱為coreutils(core utilities)軟體包。 GNU coreutils軟體套件由三個部分構成:

  • 用來處理檔案的工具
  • 用來操作文字的工具
  • 用來管理行程的工具

2.1 shell

GNU/Linux shell是一種特殊的互動式工具。它為用戶提供了啟動程式、管理檔案系統中的檔案以及運行在Linux系統上的進程的途徑。 shell的核心是命令列提示符號。命令列提示符是shell負責互動的部分。它允許你輸入文字命令,然後解釋命令,並在核心中執行。你也可以將多個shell指令放入檔案中作為程式執行。這些檔案被稱為shell腳本。

在Linux系統上,通常有好幾種Linux shell可用。不同的shell有不同的特性,有些更有利於建立腳本,有些則更有利於管理進程。所有Linux發行版預設的shell都是bash shell。 bash shell由GNU專案開發,被當作標準Unix shell.

2.1.1shell的類型

系統啟動什麼樣的shell程式取決於你個人的用戶ID配置。在/etc/passwd檔案中,在使用者ID記錄的第7個欄位中列出了預設的shell程式。只要使用者登入某個虛擬控制台終端或是在GUI中啟動終端仿真器,預設的shell程式就會開始運作。例如:使用者root使用/bin/bash(bash shell)作為自己的預設shell程式.

[root@node1 bin]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

#不過還有另外一個預設shell是/bin/sh,它作為預設的系統shell,用於那些需要在啟動時使用的系統shell腳本。你常常會看到某些發行版使用軟連結將預設的系統shell設定成bash shell,如CentOS發行版:
$ ls -l /bin/sh

lrwxrwxrwx. 1 root root 4 Mar 18 15:05 /bin/sh -> bash

/bin/sh 相當於/bin/bash --posix,使用sh 呼叫執行腳本相當於開啟了bash 的POSIX 標準模式,它們之間的各種差異都是來自POSIX 標準模式和bash的差異。

2.1.2shell的父子關係

用於登入某個虛擬控制器終端機或在GUI中執行終端模擬器時所啟動的預設的互動shell,是一個父shell。
在CLI提示字元後輸入/bin/bash指令或其他等效的bash指令時,會建立一個新的shell程式。這個shell程式稱為子shell(child shell)。子shell也擁有CLI提示符,同樣會等待指令輸入。
例如:使用ps -f

[root@node1 bin]# ps -fUID        PID  PPID  C STIME TTY          TIME CMD
root       727   711  0 11:01 pts/0    00:00:00 -bash
root      4385   727  0 12:06 pts/0    00:00:00 ps -f

使用ps -f的時候,顯示出了兩個行程。其中一個進程的進程ID是727,運行的是bash shell程式。另一個進程的進程ID為4385,對應的是命令ps -f。

[root@node1  bin]# bash[root@node1  bin]#  ps -fUID        PID  PPID  C STIME TTY          TIME CMD
root       727   711  0 11:01 pts/0    00:00:00 -bash
root      4492   727  0 12:08 pts/0    00:00:00 bashroot      4512  4492  0 12:08 pts/0    00:00:00 ps -f

輸入指令bash之後,一個子shell就出現了。第二個ps -f是在子shell中執行的。可以從顯示結果中看到有兩個bash shell程式在運作。第一個bash shell程序,也就是父shell進程,其原始進程ID是727。第二個bash shell程序,即子shell進程,其PID是4492。注意,子shell的父進程ID(PPID) 是727,指明了這個父shell進程就是該子shell的父進程。在產生子shell進程時,只有部分父進程的環境被複製到子shell環境中。

3.Linux 桌面環境

1.KDE(K Desktop Environment,K桌面環境)最初於1996年作為開源專案發布。它會產生一個類似Microsoft Windows的圖形化桌面環境。
linux可分為哪幾部分
KDE桌面允許你把應用程式圖示和檔案圖示放置在桌面的特定位置。點擊應用程式圖標,Linux系統就會運行該應用程式。點擊檔案圖標,KDE桌面就會確定使用哪種應用程式來處理該檔案。

2.GNOME(the GNU Network Object Model Environment,GNU網路物件模型環境)是另一個流行的Linux桌面環境。 GNOME於1999年首次發布,現已成為許多Linux發行版預設的桌面環境。

linux可分為哪幾部分

3.Unity桌面

如果你用的是Ubuntu Linux發行版,你會注意到它與KDE和GNOME桌面環境有些不一樣。準確來說,這是因為負責開發Ubuntu的公司決定採用自己的一套叫作Unity的Linux桌面環境。

Unity桌面得名於該專案的目標-為工作站、平板電腦以及行動裝置提供一致的桌面體驗。不管你是在工作站還是在手機上使用Ubuntu,Unity桌面的使用方式都是一樣的。

linux可分為哪幾部分

相關推薦:《Linux影片教學

以上是linux可分為哪幾部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn