一、什麼是Linux
在Linux系統中,這4個部分各自承擔着不同的責任,每個部分都是不可或缺的。Linux系統如圖所示:
1、Linux簡介
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公佈時間)。Linux存在着許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬件設備中,比如手機、平板電腦、路由器、視頻遊戲控制檯、臺式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和數據庫的操作系統。
2、Linux內核
Linux系統的核心稱爲內核(kernel)。內核控制計算機系統上的所用硬件和軟件,在必要時分配硬件,在需要時執行軟件。
內核的4種功能:
系統內存管理
軟件程序管理
硬件管理
文件系統管理
(1)系統內存管理
內核不僅可以管理服務器上可用的物理內存,而且能夠創建並管理虛擬內存。內存管理必須使用硬盤空間,該空間稱爲交換空間(swap space)。內核不斷的在交換空間和實際物理內存之間交換虛擬內存位置的內容,系統認爲可用的內存比實際存在的內存多。
查看Linux系統中虛擬內存的當前狀態/proc/meminfo文件
[root@x86-139 ~]# cat /proc/meminfo
MemTotal: 131739900 kB
MemFree: 128351464 kB
MemAvailable: 128396632 kB
Buffers: 2268 kB
Cached: 464196 kB
SwapCached: 0 kB
Active: 1422692 kB
Inactive: 311044 kB
Active(anon): 1268816 kB
Inactive(anon): 8864 kB
Active(file): 153876 kB
Inactive(file): 302180 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194300 kB
SwapFree: 4194300 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 1267412 kB
Mapped: 126140 kB
Shmem: 10400 kB
Slab: 362412 kB
SReclaimable: 205212 kB
SUnreclaim: 157200 kB
KernelStack: 17488 kB
PageTables: 57412 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 70064248 kB
Committed_AS: 6431084 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 501004 kB
VmallocChunk: 34291843068 kB
HardwareCorrupted: 0 kB
AnonHugePages: 661504 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 250732 kB
DirectMap2M: 5920768 kB
DirectMap1G: 130023424 kB
Mem:一行說明該Linux服務器的物理內存爲132G,還剩128G的空間未使用,該系統的交換空間爲4G
使用特殊命令ipcs可以查看系統當前的共享內存分頁:
[root@x86-139 ~]# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 262144 root 600 524288 2 dest
0x00000000 360449 root 600 393216 2 dest
0x00000000 589826 root 600 524288 2 dest
0x00000000 688131 root 600 393216 2 dest
0x00000000 1245190 root 600 524288 2 dest
(2)軟件程序管理
內核控制Linux系統如何管理在系統中運行的所有進程。Linux實現包含一個進程表,可以在引導時自動啓動,該表通常位於/etc/inittabs中。Linux操作系統使用具有運行級別功能的初始系統,有5個初始運行級別。
級別1:只啓動基本系統進程,以及一個控制檯終端進程,這稱爲單用戶模式。常用於緊急情況的系統維護,只允許管理員登錄操作系統操作數據。
級別3:在該運行級別下,可以啓動大部分應用軟件,如網絡支持軟件。
級別5:在該運行級別下,系統可以啓動圖形化X Window軟件,允許使用圖形化桌面窗口登錄。
(3)硬件管理
Linux系統需要與之通信的設備都必須在內核代碼中插入驅動程序代碼。驅動程序代碼使內核能夠向設備傳輸數據,它的作用就像應用程序與硬件之間的中間人。
向Linux內核插入設備驅動的2中方式:
1》在內核中編譯驅動程序;
2》向內核添加驅動程序模塊
Linux系統將硬件設備標識爲特殊文件,稱爲設備文件,有:字符、塊、網絡三類。 字符設備文件用於那些一次僅處理一個字符的設備,如調制解調器和終端類型都是;塊文件用於那些一次可處理大量數據塊的設備,如磁盤驅動器;網絡文件類型用於那些使用數據包發送和接收數據的設備,如網卡和特殊的迴路設備。
(4)文件系統管理
3、GNU實用程序
計算機操作系統需要程序執行標準功能,如控制文件和程序,儘管Linux創建了Linux系統內核,但沒任何系統實用程序來運行它。GNU組織(GNU代表GNU’s Not Unix)開發了一個完整的Unix實用程序集,但是沒有任何內核去運行它們,這些實用程序的開發基於一種新的軟件思想,稱爲開源軟件(OSS)。
Linux內核和GNU實用程序一般統稱爲Linux,但Internet上有時也稱Linux爲GNU/Linux系統,表達對GNU組織的貢獻的敬意。
(1)核心GNU實用程序
主要目的是使Unix系統管理員有一個類似Unix的環境,提供給Linux系統的核心實用程序包稱爲coreutils軟件包。
GNU coreutils軟件包由3部分組成:
處理文件的實用程序;
操作文本的實用程序;
管理進程的實用進程;
(2)shell
GNU/linux shell是一個特殊的交互式實用程序,爲用戶提供一種啓動程序、管理文件系統中的文件和管理運行在Linux系統上的進程方式。
3、Linux桌面環境
(1)X Windows系統
控制視頻環境的兩個基本元素是PC中的顯卡和監視器。X Windows軟件是一個低級別的程序,能與PC中的顯卡和監視器直接交互,並控制Linux應用程序如何在計算機中展示高級別窗口和圖形。核心X Windows軟件僅僅生成一個圖形顯示環境,儘管對運行單個應用程序而言不錯,但對日常的計算機使用並不實用,沒有任何桌面環境允許用戶操縱文件或啓動程序,要實現這些還得,需要在X Windows系統軟件上安裝桌面環境。
(2)KDE桌面
KDE桌面允許在桌面區域放置應用程序和文件圖標,如果單擊應用程序圖標,Linux系統將啓動該應用程序,如果單擊文件圖標,KDE桌面將確定使用哪種應用程序處理該文件。
(3)GNOME桌面
GNU網絡對象模型環境,是一種流行的Linux桌面環境。
(4)其他桌面
二、Linux發行版
Linux發行版一般可分爲以下3種類型:
完整核心Linux發行版
特定發行版
LiveCD測試發行版
(1)完整核心Linux發行版
核心Linux發行版包括內核、一個或多個圖形化桌面環境,以及幾乎所有的Linux應用程序,它針對內核進行了預編譯。
(2)特定Linux發行版
(3)Linux LiveCD
使用Linux發行版創建可引導的CD,其中包含一個示例Linux系統,稱爲Linux LiveCD