溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux基本結(jié)構(gòu)是什么

發(fā)布時(shí)間:2022-05-13 09:37:37 來源:億速云 閱讀:142 作者:zzz 欄目:建站服務(wù)器

今天小編給大家分享一下linux基本結(jié)構(gòu)是什么的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

linux可分為4個(gè)部分:1、內(nèi)核,控制著計(jì)算機(jī)系統(tǒng)上的所有硬件和軟件,主要負(fù)責(zé)系統(tǒng)內(nèi)存管理、軟件程序管理、硬件設(shè)備管理、文件系統(tǒng)管理;2、GNU工具,除內(nèi)核控制的硬件設(shè)備外的必須工具,例shell;3、桌面環(huán)境,例如KDE;4、應(yīng)用軟件。

本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。

Linux 是一種自由和開放源碼的類 UNIX 操作系統(tǒng)。它主要受到Minix和Unix思想的啟發(fā),是一個(gè)基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。linux可劃分為以下四部分:

  • Linux內(nèi)核

  • GNU工具

  • 圖形化桌面環(huán)境

  • 應(yīng)用軟件

下圖是一個(gè)基本結(jié)構(gòu)框圖,展示各部分是如何協(xié)同構(gòu)成一個(gè)完整的Linux系統(tǒng)。
linux基本結(jié)構(gòu)是什么

1.Linux內(nèi)核

Linux系統(tǒng)的核心是內(nèi)核。內(nèi)核控制著計(jì)算機(jī)系統(tǒng)上的所有硬件和軟件。內(nèi)核主要負(fù)責(zé)以下四個(gè)功能:

  • 系統(tǒng)內(nèi)存管理

  • 軟件程序管理

  • 硬件設(shè)備管理

  • 文件系統(tǒng)管理

1.1系統(tǒng)內(nèi)存管理

操作系統(tǒng)內(nèi)核的主要功能之一就是內(nèi)存管理。內(nèi)核不僅管理服務(wù)器上的可用物理內(nèi)存,還可以創(chuàng)建和管理虛擬內(nèi)存(即實(shí)際并不存在的內(nèi)存)。內(nèi)核通過硬盤上的存儲空間來實(shí)現(xiàn)虛擬內(nèi)存,這塊區(qū)域稱為交換空間(swap space)。內(nèi)核不斷地在交換空間和實(shí)際的物理內(nèi)存之間反復(fù)交換虛擬內(nèi)存中的內(nèi)容。這使得系統(tǒng)以為它擁有比物理內(nèi)存更多的可用內(nèi)存。
linux基本結(jié)構(gòu)是什么

內(nèi)存存儲單元按組劃分成很多塊,這些塊稱作頁面(page)。內(nèi)核將每個(gè)內(nèi)存頁面放在物理內(nèi)存或交換空間。然后,內(nèi)核會(huì)維護(hù)一個(gè)內(nèi)存頁面表,指明哪些頁面位于物理內(nèi)存內(nèi),哪些頁面被換到了磁盤上。

內(nèi)核會(huì)記錄哪些內(nèi)存頁面正在使用中,并自動(dòng)把一段時(shí)間未訪問的內(nèi)存頁面復(fù)制到交換空間區(qū)域(稱為換出,swapping out)——即使還有可用內(nèi)存。當(dāng)程序要訪問一個(gè)已被換出的內(nèi)存頁面時(shí),內(nèi)核必須從物理內(nèi)存換出另外一個(gè)內(nèi)存頁面給它讓出空間,然后從交換空間換入請求的內(nèi)存頁面。顯然,這個(gè)過程要花費(fèi)時(shí)間,拖慢運(yùn)行中的進(jìn)程。只要Linux系統(tǒng)在運(yùn)行,為運(yùn)行中的程序換出內(nèi)存頁面的過程就不會(huì)停歇。

1.2軟件程序管理
Linux操作系統(tǒng)將運(yùn)行中的程序稱為進(jìn)程。內(nèi)核創(chuàng)建了第一個(gè)進(jìn)程(稱為init進(jìn)程)來啟動(dòng)系統(tǒng)上所有其他進(jìn)程。當(dāng)內(nèi)核啟動(dòng)時(shí),它會(huì)將init進(jìn)程加載到虛擬內(nèi)存中。內(nèi)核在啟動(dòng)任何其他進(jìn)程時(shí),都會(huì)在虛擬內(nèi)存中給新進(jìn)程分配一塊專有區(qū)域來存儲該進(jìn)程用到的數(shù)據(jù)和代碼。
Linux操作系統(tǒng)的init系統(tǒng)采用了運(yùn)行級。運(yùn)行級決定了init進(jìn)程運(yùn)行/etc/inittab文件或
/etc/rcX.d目錄中定義好的某些特定類型的進(jìn)程。Linux操作系統(tǒng)有5個(gè)啟動(dòng)運(yùn)行級。

運(yùn)行級為1時(shí),只啟動(dòng)基本的系統(tǒng)進(jìn)程以及一個(gè)控制臺終端進(jìn)程。我們稱之為單用戶模式。單用戶模式通常用來在系統(tǒng)有問題時(shí)進(jìn)行緊急的文件系統(tǒng)維護(hù)。顯然,在這種模式下,僅有一個(gè)人(通常是系統(tǒng)管理員)能登錄到系統(tǒng)上操作數(shù)據(jù)。

標(biāo)準(zhǔn)的啟動(dòng)運(yùn)行級是3。在這個(gè)運(yùn)行級上,大多數(shù)應(yīng)用軟件,比如網(wǎng)絡(luò)支持程序,都會(huì)啟動(dòng)。另一個(gè)Linux中常見的運(yùn)行級是5。在這個(gè)運(yùn)行級上系統(tǒng)會(huì)啟動(dòng)圖形化的X Window系統(tǒng),允許用戶通過圖形化桌面窗口登錄系統(tǒng)。

Linux系統(tǒng)可以通過調(diào)整啟動(dòng)運(yùn)行級來控制整個(gè)系統(tǒng)的功能。通過將運(yùn)行級從3調(diào)整成5,系統(tǒng)就可以從基于控制臺的系統(tǒng)變成更先進(jìn)的圖形化X Window系統(tǒng)。

1.3硬件設(shè)備管理
內(nèi)核的另一職責(zé)是管理硬件設(shè)備。任何Linux系統(tǒng)需要與之通信的設(shè)備,都需要在內(nèi)核代碼中加入其驅(qū)動(dòng)程序代碼。驅(qū)動(dòng)程序代碼相當(dāng)于應(yīng)用程序和硬件設(shè)備的中間人,允許內(nèi)核與設(shè)備之間交換數(shù)據(jù)。在Linux內(nèi)核中有兩種方法用于插入設(shè)備驅(qū)動(dòng)代碼:

  • 編譯進(jìn)內(nèi)核的設(shè)備驅(qū)動(dòng)代碼

  • 可插入內(nèi)核的設(shè)備驅(qū)動(dòng)模塊

Linux系統(tǒng)將硬件設(shè)備當(dāng)成特殊的文件,稱為設(shè)備文件。設(shè)備文件有3種分類:

  • 字符型設(shè)備文件:指處理數(shù)據(jù)時(shí)每次只能處理一個(gè)字符的設(shè)備。大多數(shù)類型的調(diào)制解調(diào)器和終端都是作為字符型設(shè)備文件創(chuàng)建的

  • 塊設(shè)備文件:指處理數(shù)據(jù)時(shí)每次能處理大塊數(shù)據(jù)的設(shè)備,比如硬盤。

  • 網(wǎng)絡(luò)設(shè)備文件:指采用數(shù)據(jù)包發(fā)送和接收數(shù)據(jù)的設(shè)備,包括各種網(wǎng)卡和一個(gè)特殊的回環(huán)設(shè)備。

1.4 文件系統(tǒng)管理
Linux內(nèi)核支持通過不同類型的文件系統(tǒng)從硬盤中讀寫數(shù)據(jù)。表1-1列出了Linux系統(tǒng)用來讀寫數(shù)據(jù)的標(biāo)準(zhǔn)文件系統(tǒng)。
linux基本結(jié)構(gòu)是什么

2.GUN工具

除了由內(nèi)核控制硬件設(shè)備外,操作系統(tǒng)還需要工具來執(zhí)行一些標(biāo)準(zhǔn)功能,比如控制文件和程序。供Linux系統(tǒng)使用的這組核心工具被稱為coreutils(core utilities)軟件包。GNU coreutils軟件包由三部分構(gòu)成:

  • 用以處理文件的工具

  • 用以操作文本的工具

  • 用以管理進(jìn)程的工具

2.1 shell

GNU/Linux shell是一種特殊的交互式工具。它為用戶提供了啟動(dòng)程序、管理文件系統(tǒng)中的文件以及運(yùn)行在Linux系統(tǒng)上的進(jìn)程的途徑。shell的核心是命令行提示符。命令行提示符是shell負(fù)責(zé)交互的部分。它允許你輸入文本命令,然后解釋命令,并在內(nèi)核中執(zhí)行。你也可以將多個(gè)shell命令放入文件中作為程序執(zhí)行。這些文件被稱作shell腳本。

在Linux系統(tǒng)上,通常有好幾種Linux shell可用。不同的shell有不同的特性,有些更利于創(chuàng)建腳本,有些則更利于管理進(jìn)程。所有Linux發(fā)行版默認(rèn)的shell都是bash shell。bash shell由GNU項(xiàng)目開發(fā),被當(dāng)作標(biāo)準(zhǔn)Unix shell.

2.1.1shell的類型

系統(tǒng)啟動(dòng)什么樣的shell程序取決于你個(gè)人的用戶ID配置。在/etc/passwd文件中,在用戶ID記錄的第7個(gè)字段中列出了默認(rèn)的shell程序。只要用戶登錄到某個(gè)虛擬控制臺終端或是在GUI中啟動(dòng)終端仿真器,默認(rèn)的shell程序就會(huì)開始運(yùn)行。例如:用戶root使用/bin/bash(bash shell)作為自己的默認(rèn)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

不過還有另外一個(gè)默認(rèn)shell是/bin/sh,它作為默認(rèn)的系統(tǒng)shell,用于那些需要在啟動(dòng)時(shí)使用的系統(tǒng)shell腳本。你經(jīng)常會(huì)看到某些發(fā)行版使用軟鏈接將默認(rèn)的系統(tǒng)shell設(shè)置成bash shell,如CentOS發(fā)行版:
$ ls -l /bin/sh

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

/bin/sh 相當(dāng)于 /bin/bash --posix,使用 sh 調(diào)用執(zhí)行腳本相當(dāng)于打開了bash 的 POSIX 標(biāo)準(zhǔn)模式,它們之間的各種差異都是來自 POSIX 標(biāo)準(zhǔn)模式和bash的差異。

2.1.2shell的父子關(guān)系

用于登錄某個(gè)虛擬控制器終端或在GUI中運(yùn)行終端仿真器時(shí)所啟動(dòng)的默認(rèn)的交互shell,是一個(gè)父shell。
在CLI提示符后輸入/bin/bash命令或其他等效的bash命令時(shí),會(huì)創(chuàng)建一個(gè)新的shell程序。這個(gè)shell程序被稱為子shell(child shell)。子shell也擁有CLI提示符,同樣會(huì)等待命令輸入。
例如:使用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的時(shí)候,顯示出了兩個(gè)進(jìn)程。其中一個(gè)進(jìn)程的進(jìn)程ID是727,運(yùn)行的是bash shell程序。另一個(gè)進(jìn)程的進(jìn)程ID為4385,對應(yīng)的是命令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之后,一個(gè)子shell就出現(xiàn)了。第二個(gè)ps -f是在子shell中執(zhí)行的??梢詮娘@示結(jié)果中看到有兩個(gè)bash shell程序在運(yùn)行。第一個(gè)bash shell程序,也就是父shell進(jìn)程,其原始進(jìn)程ID是727。第二個(gè)bash shell程序,即子shell進(jìn)程,其PID是4492。注意,子shell的父進(jìn)程ID(PPID) 是727,指明了這個(gè)父shell進(jìn)程就是該子shell的父進(jìn)程。在生成子shell進(jìn)程時(shí),只有部分父進(jìn)程的環(huán)境被復(fù)制到子shell環(huán)境中。

3.Linux 桌面環(huán)境

1.KDE(K Desktop Environment,K桌面環(huán)境)最初于1996年作為開源項(xiàng)目發(fā)布。它會(huì)生成一個(gè)類似于Microsoft Windows的圖形化桌面環(huán)境。
linux基本結(jié)構(gòu)是什么
KDE桌面允許你把應(yīng)用程序圖標(biāo)和文件圖標(biāo)放置在桌面的特定位置上。單擊應(yīng)用程序圖標(biāo),Linux系統(tǒng)就會(huì)運(yùn)行該應(yīng)用程序。單擊文件圖標(biāo),KDE桌面就會(huì)確定使用哪種應(yīng)用程序來處理該文件。

2.GNOME(the GNU Network Object Model Environment,GNU網(wǎng)絡(luò)對象模型環(huán)境)是另一個(gè)流行的Linux桌面環(huán)境。GNOME于1999年首次發(fā)布,現(xiàn)已成為許多Linux發(fā)行版默認(rèn)的桌面環(huán)境。

linux基本結(jié)構(gòu)是什么

3.Unity桌面

如果你用的是Ubuntu Linux發(fā)行版,你會(huì)注意到它與KDE和GNOME桌面環(huán)境有些不一樣。準(zhǔn)確來說,這是因?yàn)樨?fù)責(zé)開發(fā)Ubuntu的公司決定采用自己的一套叫作Unity的Linux桌面環(huán)境。

Unity桌面得名于該項(xiàng)目的目標(biāo)——為工作站、平板電腦以及移動(dòng)設(shè)備提供一致的桌面體驗(yàn)。不管你是在工作站還是在手機(jī)上使用Ubuntu,Unity桌面的使用方式都是一樣的。

linux基本結(jié)構(gòu)是什么

以上就是“l(fā)inux基本結(jié)構(gòu)是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI