了解Linux的基礎知識和一般概念

程序員小樂 發佈 2020-02-03T19:36:24+00:00

不論什麼時候結束,重要的是結束,之後就不要悔恨。每日掏心話生命,是一樹花開,或安靜或熱烈,人生:一半是現實,另一半是夢想。

點擊上方 "程式設計師小樂"關注, 星標或置頂一起成長

每天凌晨00點00分,第一時間與你相約


每日英文

No matter when U start, you do not stop after starting. No matter when U end, you do not regret after ended.

不論什麼時候開始,重要的是開始之後就不要停止。不論什麼時候結束,重要的是結束之後就不要悔恨。


每日掏心話

生命,是一樹花開,或安靜或熱烈,人生:一半是現實,另一半是夢想。有太多的分分秒秒、太多的點點滴滴,匯成心語,凝成回憶;也有太多的選擇、太多的無奈,但這無數個太多的背後,我只能讓心去承受,讓心去感悟。


來自:HMLinux | 責編:樂樂

連結:blog.51cto.com/7424593/1744358

程式設計師小樂(ID:study_tech)第 762 次推文 圖片來自 Pexels


往日回顧:求求你別再亂跑了!一場同學會,6人遭確診!平均年齡22歲,假期返程如何預防?權威指南來了


正文


1、GNU和GPL

GNU計劃(又稱革奴計劃),是由Richard Stallman(理察·斯托曼)在1983年9月27日公開發起的自由軟體集體協作計劃。它的目標是創建一套完全自由的作業系統。GNU也稱為自由軟體工程項目。

GPL是GNU的通用公共許可證(GNU General Public License,GPL),即「反版權」概念,是GNU協議之一,目的是保護GNU軟體可以自由的使用、複製、研究、修改和發布。同時要求軟體必須以原始碼的形式發布。

GNU系統與Linux內核結合構成一個完整的作業系統:一個基於Linux的GNU系統,該作業系統在通常情況下稱為「GNU/Linux」,或簡稱Linux。

2、Linux發行版

一個典型的Linux發行版包括:Linux內核,一些GNU程序庫和工具,命令行shell,圖形介面的X Window系統和相應的桌面環境,如KDE或GNOME,並包含數千種從辦公套件,編譯器,文本編輯器到科學工具的應用軟體。

主流的發行版:

Red Hat Enterprise Linux、CentOS、SUSE、Ubuntu、Debian、Fedora、Gentoo

3、Unix和Linux

Linux是基於Unix的,屬於Unix類,Uinx作業系統支持多用戶、多任務、多線程和支持多種CPU架構的作業系統。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡作業系統。

4、Swap分區

Swap分區,即交換區,系統在物理內存不夠時,與Swap進行交換。即當系統的物理內存不夠用時,把硬碟中一部分空間釋放出來,以供當前運行的程序使用。當那些程序要運行時,再從Swap分區中恢復保存的數據到內存中。那些被釋放內存空間的程序一般是很長時間沒有什麼操作的程序。

Swap空間一般應大於或等於物理內存的大小,同時最小不應小於64M,最大應該是物理內存的兩倍。

5、GRUB的概念

GNU GRUB(GRand Unified Bootloader簡稱「GRUB」)是一個來自GNU項目的多作業系統啟動引導管理程序。

GRUB是一個支持多種作業系統的啟動引導管理器,在一台有多個作業系統的計算機中,可以通過GRUB在計算機啟動時選擇用戶希望運行的作業系統。同時GRUB可以引導Linux系統分區上的不同內核,也可用於向內核傳遞啟動參數,如進入單用戶模式。

6、Buffer和Cache

Cache(緩存)位於CPU與內存之間的臨時存儲器,緩存容量比內存小的多但交換速度比內存要快得多。Cache通過緩存文件數據塊,解決CPU運算速度與內存讀寫速度不匹配的矛盾,提高CPU和內存之間的數據交換速度。Cache緩存越大,CPU處理速度越快。

Buffer(緩衝)高速緩衝存儲器,通過緩存磁碟(I/O設備)數據塊,加快對磁碟上數據的訪問,減少I/O,提高內存和硬碟(或其他I/O設備)之間的數據交換速度。Buffer是即將要被寫入磁碟的,而Cache是被從磁碟中讀出來的。

7、TCP三次握手

請求端發送SYN(SYN=A)數據包,等待響應端確認

響應端接收SYN,並返回SYN(A+1)和自己的ACK(K)包給請求端

請求端接收到響應端的SYN+ACK包,再次向響應端發送確認包ACK(K+1)

請求端和響應端建立TCP連接,完成三次握手,開始進行數據傳輸

8、linux系統目錄結構

Linux文件系統採用帶連結的樹形目錄結構,即只有一個根目錄(通常用「/」表示),其中含有下級子目錄或文件的信息;子目錄中又可含有更下級的子目錄或者文件的信息。


  • /:第一層次結構的根,整個文件系統層次結構的根目錄。即文件系統的入口,最高一級目錄。

  • /boot:包含Linux內核及系統引導程序所需的文件,例如kernel、initrd;grub系統引導管理器也在這個目錄下。

  • /bin:基本系統所需要的命令,功能和"/usr/bin"類似,這個目錄下的文件都是可執行的.普通用戶也是可以執行的。

  • /sbin:基本的系統維護命令,只能由超級用戶使用。

  • /etc:所有的系統配置文件。

  • /dev:設備文件存儲目錄.像終端、磁碟、光碟機等。

  • /var:存放經常變動的數據,像日誌、郵件等。

  • /home:普通用戶的目錄默認存儲目錄。

  • /opt:第三方軟體的存放目錄,比如用戶自定義軟體包和編譯的軟體包就安裝到這個目錄中。

  • /lib:庫文件和內核模塊存放目錄,包含系統程序所需要的所有共享庫文件。


9、硬連結和軟連結

硬連結(Hard Link):硬連結是使用同一個索引節點(inode號)的連結, 即可以允許多個文件名指向同一個文件索引節點(硬連結不支持目錄連結,不能跨分區連結),刪除一個硬連結,不會影響該索引節點的源文件以及其下的多個硬連結。

ln source new-link

軟連接(符號連結,Symbolic Link):符號連結是以路徑的形式創建的連結,類似於windows的快捷方式連結,符號連結允許創建多個文件名連結到同一個源文件,刪除源文件,其下的所有軟連接將不可用。(軟連接支持目錄,支持跨分區、跨文件系統)

ln -s source new-link

10、RAID技術

磁碟陣列(Redundant Arrays of independent Disks,RAID),廉價冗餘(獨立)磁碟陣列。

RAID是一種把多塊獨立的物理硬碟按不同的方式組合起來形成一個硬碟組(邏輯硬碟),提供比單個硬碟更高的存儲性能和數據備份技術。RAID技術,可以實現把多個磁碟組合在一起作為一個邏輯卷提供磁碟跨越功能;可以把數據分成多個數據塊(Block)並行寫入/讀出多個磁碟以提高訪問磁碟的速度;可以通過鏡像或校驗操作提供容錯能力。具體的功能以不同的RAID組合實現。

在用戶看來,RAID組成的磁碟組就像是一個硬碟,可以對它進行分區、格式化等操作。RAID的存儲速度比單個硬碟高很多,並且可以提供自動數據備份,提供良好的容錯能力。

RAID級別,不同的RAID組合方式分為不同的RAID級別:

RAID 0:稱為Stripping條帶存儲技術,所有磁碟完全地並行讀,並行寫,是組建磁碟陣列最簡單的一種形式,只需要2塊以上的硬碟即可,成本低,可以提供整個磁碟的性能和吞吐量,但RAID 0沒有提供數據冗餘和錯誤修復功能,因此單塊硬碟的損壞會導致所有的數據丟失。(RAID 0隻是單純地提高磁碟容量和性能,沒有為數據提供可靠性保證,適用於對數據安全性要求不高的環境)

RAID 1:鏡像存儲,通過把兩塊磁碟中的一塊磁碟的數據鏡像到另一塊磁碟上, 實現數據冗餘,在兩塊磁碟上產生互為備份的數據,其容量僅等於一塊磁碟的容量。當數據在寫入一塊磁碟時,會在另一塊閒置的磁碟上生產鏡像,在不影響性能情況下最大限度的保證系統的可靠性和可修復性;當原始數據繁忙時,可直接從鏡像拷貝中讀取數據(從兩塊硬碟中較快的一塊中讀出),提高讀取性能。相反的,RAID 1的寫入速度較緩慢。RAID 1一般支持「熱交換」,即陣列中硬碟的移除或替換可以在系統運行狀態下進行,無須中斷退出系統。RAID 1是磁碟陣列中硬碟單位成本最高的,但它提供了很高的數據安全性、可靠性和可用性,當一塊硬碟失效時,系統可以自動切換到鏡像磁碟上讀寫,而不需要重組失效的數據。

RAID 0+1:也被稱為RAID 10,實際是將RAID 0和RAID 1結合的形式,在連續地以位或字節為單位分割數據並且並行讀/寫多個磁碟的同時,為每一塊磁碟做鏡像進行冗餘。通過RAID 0+1的組合形式,數據除分布在多個盤上外,每個盤都有其物理鏡像盤,提供冗餘能力,允許一個以下磁碟故障,而不影響數據可用性,並且有快速讀/寫能力。RAID 0+1至少需要4個硬碟在磁碟鏡像中建立帶區集。RAID 0+1技術在保證數據高可靠性的同時,也保證了數據讀/寫的高效性。

RAID 5:是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。RAID 5可以理解為是RAID 0和RAID 1的折衷方案,RAID 5至少需要三塊硬碟。RAID 5可以為系統提供數據安全保障,但保障程度要比鏡像低而磁碟空間利用率要比鏡像高。RAID 5具有和RAID 0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度比對單個磁碟進行寫入操作稍慢。同時由於多個數據對應一個奇偶校驗信息,RAID 5的磁碟空間利用率要比RAID 1高,存儲成本相對較低,是目前運用較多的一種解決方案。

歡迎在留言區留下你的觀點,一起討論提高。如果今天的文章讓你有新的啟發,學習能力的提升上有新的認識,歡迎轉發分享給更多人。

歡迎各位讀者加入程式設計師小樂技術群,在公眾號後台回復「加群」或者「學習」即可。

猜你還想看


阿里、騰訊、百度、華為、京東最新面試題匯集

Springboot 優雅停止服務的幾種方法

在 Spring Boot 中,如何幹掉 if else!

Python2 已終結,入手Python 3,你需要這30個技巧


關注「程式設計師小樂」,收看更多精彩內容
嘿,你在看嗎?點擊上方 "程式設計師小樂"關注, 星標或置頂一起成長

第一時間與你相約


每日英文

No matter when U start, you do not stop after starting. No matter when U end, you do not regret after ended.

不論什麼時候開始,重要的是開始之後就不要停止。不論什麼時候結束,重要的是結束之後就不要悔恨。


每日掏心話

生命,是一樹花開,或安靜或熱烈,人生:一半是現實,另一半是夢想。有太多的分分秒秒、太多的點點滴滴,匯成心語,凝成回憶;也有太多的選擇、太多的無奈,但這無數個太多的背後,我只能讓心去承受,讓心去感悟。




來自:HMLinux | 責編:樂樂

連結:blog.51cto.com/7424593/1744358

程式設計師小樂(ID:study_tech)第 762 次推文 圖片來自 Pexels


往日回顧:求求你別再亂跑了!一場同學會,6人遭確診!平均年齡22歲,假期返程如何預防?權威指南來了


正文


1、GNU和GPL

GNU計劃(又稱革奴計劃),是由Richard Stallman(理察·斯托曼)在1983年9月27日公開發起的自由軟體集體協作計劃。它的目標是創建一套完全自由的作業系統。GNU也稱為自由軟體工程項目。

GPL是GNU的通用公共許可證(GNU General Public License,GPL),即「反版權」概念,是GNU協議之一,目的是保護GNU軟體可以自由的使用、複製、研究、修改和發布。同時要求軟體必須以原始碼的形式發布。

GNU系統與Linux內核結合構成一個完整的作業系統:一個基於Linux的GNU系統,該作業系統在通常情況下稱為「GNU/Linux」,或簡稱Linux。

2、Linux發行版

一個典型的Linux發行版包括:Linux內核,一些GNU程序庫和工具,命令行shell,圖形介面的X Window系統和相應的桌面環境,如KDE或GNOME,並包含數千種從辦公套件,編譯器,文本編輯器到科學工具的應用軟體。

主流的發行版:

Red Hat Enterprise Linux、CentOS、SUSE、Ubuntu、Debian、Fedora、Gentoo

3、Unix和Linux

Linux是基於Unix的,屬於Unix類,Uinx作業系統支持多用戶、多任務、多線程和支持多種CPU架構的作業系統。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡作業系統。

4、Swap分區

Swap分區,即交換區,系統在物理內存不夠時,與Swap進行交換。即當系統的物理內存不夠用時,把硬碟中一部分空間釋放出來,以供當前運行的程序使用。當那些程序要運行時,再從Swap分區中恢復保存的數據到內存中。那些被釋放內存空間的程序一般是很長時間沒有什麼操作的程序。

Swap空間一般應大於或等於物理內存的大小,同時最小不應小於64M,最大應該是物理內存的兩倍。

5、GRUB的概念

GNU GRUB(GRand Unified Bootloader簡稱「GRUB」)是一個來自GNU項目的多作業系統啟動引導管理程序。

GRUB是一個支持多種作業系統的啟動引導管理器,在一台有多個作業系統的計算機中,可以通過GRUB在計算機啟動時選擇用戶希望運行的作業系統。同時GRUB可以引導Linux系統分區上的不同內核,也可用於向內核傳遞啟動參數,如進入單用戶模式。

6、Buffer和Cache

Cache(緩存)位於CPU與內存之間的臨時存儲器,緩存容量比內存小的多但交換速度比內存要快得多。Cache通過緩存文件數據塊,解決CPU運算速度與內存讀寫速度不匹配的矛盾,提高CPU和內存之間的數據交換速度。Cache緩存越大,CPU處理速度越快。

Buffer(緩衝)高速緩衝存儲器,通過緩存磁碟(I/O設備)數據塊,加快對磁碟上數據的訪問,減少I/O,提高內存和硬碟(或其他I/O設備)之間的數據交換速度。Buffer是即將要被寫入磁碟的,而Cache是被從磁碟中讀出來的。

7、TCP三次握手

請求端發送SYN(SYN=A)數據包,等待響應端確認

響應端接收SYN,並返回SYN(A+1)和自己的ACK(K)包給請求端

請求端接收到響應端的SYN+ACK包,再次向響應端發送確認包ACK(K+1)

請求端和響應端建立TCP連接,完成三次握手,開始進行數據傳輸

8、linux系統目錄結構

Linux文件系統採用帶連結的樹形目錄結構,即只有一個根目錄(通常用「/」表示),其中含有下級子目錄或文件的信息;子目錄中又可含有更下級的子目錄或者文件的信息。


  • /:第一層次結構的根,整個文件系統層次結構的根目錄。即文件系統的入口,最高一級目錄。

  • /boot:包含Linux內核及系統引導程序所需的文件,例如kernel、initrd;grub系統引導管理器也在這個目錄下。

  • /bin:基本系統所需要的命令,功能和"/usr/bin"類似,這個目錄下的文件都是可執行的.普通用戶也是可以執行的。

  • /sbin:基本的系統維護命令,只能由超級用戶使用。

  • /etc:所有的系統配置文件。

  • /dev:設備文件存儲目錄.像終端、磁碟、光碟機等。

  • /var:存放經常變動的數據,像日誌、郵件等。

  • /home:普通用戶的目錄默認存儲目錄。

  • /opt:第三方軟體的存放目錄,比如用戶自定義軟體包和編譯的軟體包就安裝到這個目錄中。

  • /lib:庫文件和內核模塊存放目錄,包含系統程序所需要的所有共享庫文件。


9、硬連結和軟連結

硬連結(Hard Link):硬連結是使用同一個索引節點(inode號)的連結, 即可以允許多個文件名指向同一個文件索引節點(硬連結不支持目錄連結,不能跨分區連結),刪除一個硬連結,不會影響該索引節點的源文件以及其下的多個硬連結。

ln source new-link

軟連接(符號連結,Symbolic Link):符號連結是以路徑的形式創建的連結,類似於windows的快捷方式連結,符號連結允許創建多個文件名連結到同一個源文件,刪除源文件,其下的所有軟連接將不可用。(軟連接支持目錄,支持跨分區、跨文件系統)

ln -s source new-link

10、RAID技術

磁碟陣列(Redundant Arrays of independent Disks,RAID),廉價冗餘(獨立)磁碟陣列。

RAID是一種把多塊獨立的物理硬碟按不同的方式組合起來形成一個硬碟組(邏輯硬碟),提供比單個硬碟更高的存儲性能和數據備份技術。RAID技術,可以實現把多個磁碟組合在一起作為一個邏輯卷提供磁碟跨越功能;可以把數據分成多個數據塊(Block)並行寫入/讀出多個磁碟以提高訪問磁碟的速度;可以通過鏡像或校驗操作提供容錯能力。具體的功能以不同的RAID組合實現。

在用戶看來,RAID組成的磁碟組就像是一個硬碟,可以對它進行分區、格式化等操作。RAID的存儲速度比單個硬碟高很多,並且可以提供自動數據備份,提供良好的容錯能力。

RAID級別,不同的RAID組合方式分為不同的RAID級別:

RAID 0:稱為Stripping條帶存儲技術,所有磁碟完全地並行讀,並行寫,是組建磁碟陣列最簡單的一種形式,只需要2塊以上的硬碟即可,成本低,可以提供整個磁碟的性能和吞吐量,但RAID 0沒有提供數據冗餘和錯誤修復功能,因此單塊硬碟的損壞會導致所有的數據丟失。(RAID 0隻是單純地提高磁碟容量和性能,沒有為數據提供可靠性保證,適用於對數據安全性要求不高的環境)

RAID 1:鏡像存儲,通過把兩塊磁碟中的一塊磁碟的數據鏡像到另一塊磁碟上, 實現數據冗餘,在兩塊磁碟上產生互為備份的數據,其容量僅等於一塊磁碟的容量。當數據在寫入一塊磁碟時,會在另一塊閒置的磁碟上生產鏡像,在不影響性能情況下最大限度的保證系統的可靠性和可修復性;當原始數據繁忙時,可直接從鏡像拷貝中讀取數據(從兩塊硬碟中較快的一塊中讀出),提高讀取性能。相反的,RAID 1的寫入速度較緩慢。RAID 1一般支持「熱交換」,即陣列中硬碟的移除或替換可以在系統運行狀態下進行,無須中斷退出系統。RAID 1是磁碟陣列中硬碟單位成本最高的,但它提供了很高的數據安全性、可靠性和可用性,當一塊硬碟失效時,系統可以自動切換到鏡像磁碟上讀寫,而不需要重組失效的數據。

RAID 0+1:也被稱為RAID 10,實際是將RAID 0和RAID 1結合的形式,在連續地以位或字節為單位分割數據並且並行讀/寫多個磁碟的同時,為每一塊磁碟做鏡像進行冗餘。通過RAID 0+1的組合形式,數據除分布在多個盤上外,每個盤都有其物理鏡像盤,提供冗餘能力,允許一個以下磁碟故障,而不影響數據可用性,並且有快速讀/寫能力。RAID 0+1至少需要4個硬碟在磁碟鏡像中建立帶區集。RAID 0+1技術在保證數據高可靠性的同時,也保證了數據讀/寫的高效性。

RAID 5:是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。RAID 5可以理解為是RAID 0和RAID 1的折衷方案,RAID 5至少需要三塊硬碟。RAID 5可以為系統提供數據安全保障,但保障程度要比鏡像低而磁碟空間利用率要比鏡像高。RAID 5具有和RAID 0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度比對單個磁碟進行寫入操作稍慢。同時由於多個數據對應一個奇偶校驗信息,RAID 5的磁碟空間利用率要比RAID 1高,存儲成本相對較低,是目前運用較多的一種解決方案。


歡迎在留言區留下你的觀點,一起討論提高。如果今天的文章讓你有新的啟發,學習能力的提升上有新的認識,歡迎轉發分享給更多人。


猜你還想看


阿里、騰訊、百度、華為、京東最新面試題匯集

Springboot 優雅停止服務的幾種方法

在 Spring Boot 中,如何幹掉 if else!

Python2 已終結,入手Python 3,你需要這30個技巧


關注「程式設計師小樂」,收看更多精彩內容
嘿,你在看嗎?


關鍵字: