shell apache Python nginx mysql 开源 java Android Windows linux Firefox 程序员 Ubuntu 编程 云计算 centos php 微软 wordpress google

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

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、UbuntuDebianFedoraGentoo

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三次握手

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

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

    3、請求端接收到響應端的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級別:

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

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

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

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

延伸阅读

评论