中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

第三章 Linux基礎

發布時間:2020-06-16 06:58:32 來源:網絡 閱讀:960 作者:Petrelight 欄目:安全技術

在你掌握Kali Linux之前,你必須能很容易地操作通用的Linux系統。熟練掌握Linux將會對你很有幫助,因為大部分Web,Email和其他的因特網服務都運行在Linux服務器上。

在本節,我們將盡可能覆蓋Linux的基礎,但我們假設你已經了解計算機的一般知識,包括CPU、RAM、主板和硬盤,還包括設備控制器和與其相關的連接器等。

3.1 Linux是什么?能做什么?

術語“Linux”通常用來指整個操作系統,但實際上,Linux指的是操作系統內核,由引導裝載器啟動,而引導裝載器由BIOS/UEFI自啟動。內核扮演的角色類似于管弦樂隊中的指揮——他確保硬件和軟件之間的協調。該角色包括管理硬件、進程、用戶、權限和文件系統。內核為系統上的所有其它程序提供了一個通用基礎,通常運行在Ring 0,也稱為內核空間。

用戶空間:我們用術語“用戶空間”來指發生在內核之外的所有組合在一起的事情。

在用戶空間中運行的程序 有許多來自GNU項目的核心實用程序,其中大多數都是從命令行運行的。你可以在腳本中使用它們來自動化執行許多任務。詳細信息請參見3.4節。

讓我們來快速看一下由Linux內核處理的各種任務。

3.1.1 驅動硬件

內核的任務中首當其沖的就是控制計算機的硬件。當計算機開機時,或者當設備插入或移除(例如,USB設備)時,內核檢測并配置它們。內核還要通過簡單的編程接口,讓其對上層軟件有效,從而應用程序才能在不用關心設備細節(比如插入了哪一個擴展插槽等)的情況下使用這些設備。編程接口相當于提供了一個抽象層,舉個例子,這就允許視頻會議軟件可以在不用關心攝像頭的制造商和型號的情況下就能使用它。軟件能使用針對Linux的視頻(V4L)接口,內核會把對于接口的調用轉換成所使用攝像頭所需的實際硬件命令。

內核把所檢測到硬件的數據通過/proc/和/sys/虛擬文件系統導出。應用程序通常通過創建/dev/文件來訪問這些設備。具體的文件表示硬盤驅動器(例如,/dev/sda),分區(/dev/sda1),鼠標(/dev/input/mouse0),鍵盤(/dev/input/event0),聲卡(dev/snd/*),串口(/dev/ttyS*)和其它的組件。

有兩種類型的設備文件:塊和字符。前者具有一大塊數據的特征:其具有有限的大小,你能訪問這塊數據中任何位置上的字節數據。后者的行為像一個一串字符,你能讀寫這些字符,但你不能定位到給定的位置并任意改寫它。要找出給定設備文件的類型,檢查命令ls –l輸出結查的第一個字符。對于塊設備,第一個字符是b,而對于字符設備,第一個字符是c:

第三章 Linux基礎第三章 Linux基礎

如你所料,磁盤驅動器和分區使用塊設備,而鼠標、鍵盤和串口使用字符設備。在這兩種情況下,編程接口都包括可以通過ioctl系統調用進行調用的設備特定命令。

3.1.2 統一文件系統

文件系統是內核突出的一方面。類UNIX系統把所用的文件存儲都合并到單一的分層中,這就能讓用戶和應用程序通過已知的所在層次的位置來訪問數據。

這個分層樹的起點叫做根,用字符”/”表示。這個目錄可以包含命名的子目錄。例如,/的home子目錄叫做/home/。相應地,這個子目錄也可以包含其它的子目錄,以此類推。每個目錄還能包含用于數據存儲的文件。因此,/home/buxy/Desktop/hello.txt表示一個文件名為hello.txt,存儲在根目錄下home子目錄下的buxy目錄下的Desktop子目錄中文件。內核會在命名系統和磁盤上存儲位置之間進行轉換。

不像其它系統,Linux只處理這么一個層次結構,而且它還能把多個磁盤的數據集成到一起。這些磁盤中的一塊會成為根,其它的磁盤會掛載在這引層次結構中的目錄中(掛載的命令叫mount)。這樣,在掛載點下,這些磁盤就可以使用了。這就允許把用戶的主目錄(通常存儲在/home/中)存儲在一個獨立的硬盤中,這個硬盤包含了buxy目錄(還有其它用戶的目錄)。一旦你把這個硬盤掛載在/home/中,這些目錄就可以通過常規的方式進行訪問了,比如前面的例子/home/buxy/Desktop/hello.txt。

對于存儲在硬盤上的數據,有多種文件系統格式與之相對應。最為廣泛使用的是ext2,ext3,ext4文件系統格式,當然還有其它的。例如,VFAT是歷史上由DOS和Windows操作系統使用的文件系統。Linux對VFAT文件系統的支持允許硬盤在Kali下與在Windows中一樣可以訪問。無論如何,在你可以掛載一個硬盤之前,你必須準備一個文件系統,這個操作就是格式化。比如命令mkfs.ext3(mkfs代表Make FileSystem)就把硬盤格式化成ext3文件系統格式。這些命令要求一個表示將要進行格式化的分區的設備文件參數(比如,/dev/sda1,第一塊硬盤的第一個分區)。這個操作對于數據來講是毀滅性的,因此一般只運行一次,除非你想擦除文件系統重新開始。

還用諸如NFS之類的網絡文件系統,它們不把數據存儲在本地硬盤,作為替換,數據通過網絡傳輸到服務器,并按需存儲和取回這些數據。得益于文件系統抽象,你不用擔心這些磁盤是如何連接的,因此這些文件仍然按常規的層次結構進行訪問。

3.1.3 進程管理

進程是程序運行的實例,它需要內存在存儲程序本身及其操作的數據。內核負責創建和跟蹤進程。當程序運行時,內核首先留出一些內存,將可執行代碼從文件系統加載到內存中,然后開始運行代碼。內核保存關于此進程的相關信息,其中最明顯的是一個名為進程標識符(PID)的標識號。

和大多數現代操作系統一樣,那些擁有類Unix內核的操作系統,包括Linux,能夠處理多個任務。換句話說,它們允許系統同時運行多個進程。實際上,在任何時候都只有一個正在運行的進程,但是內核將CPU時間劃分成小塊,然后依次運行每個進程。由于這些時間片非常短(毫秒范圍內),制造了多個進程并行運行的假像,這些進程只在屬于它們自己的時間片內處于活動狀態,其它時間都處于空閑狀態。內核的工作是調整其調度機制以保持這些并行運行的狀態,同時最大化全局系統性能。如果時間片太長,則應用程序可能不會出現所需的響應。太短,系統會因為頻繁切換任務而浪費時間。這些決策可以通過進程優先級來細化,高優先級的進程將運行更長的周期,并且比低優先級的進程更頻繁地進行時間片的劃分。

多處理器系統:如上所述的限制,一次只運行一具進程,并不總是適用的:實際的限制是每個處理器核心只能有一個正在運行的進程。多處理器、多核或超線程系統允許多個進程并行運行。然而,同樣的時間切片系統被用來處理活動進程數量比有效處理器核多的情況。這并不常風:一個基本的系統,即使是一個大部分空閑的系統,通常也總有數十個正在運行的進程。

內核允許運行同一程序的多個獨立實例,但每個實例只允許訪問自己的時間片和內存。它們的數據也是獨立的。

3.1.4 權限管理

類Unix的系統支持多用戶和組,并允許權限控制。大多數情況下,進程由啟動它的用戶來標識。這一進程只允許干啟動它的用戶所擁有權限能干的事。例如,打開一個文件需要內核根據訪問權限檢查進程標識(更多細節,請參見3.4.4節)。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沧源| 太和县| 桐柏县| 若尔盖县| 金寨县| 行唐县| 台州市| 太湖县| 桐柏县| 长治县| 右玉县| 任丘市| 紫阳县| 大埔县| 静乐县| 当雄县| 蓬溪县| 东辽县| 轮台县| 元谋县| 东乌| 偏关县| 江阴市| 揭东县| 米易县| 南开区| 临湘市| 崇左市| 济源市| 井冈山市| 高密市| 勃利县| 宁夏| 榆中县| 洛浦县| 叶城县| 北流市| 高密市| 肥城市| 吴旗县| 内黄县|