1. 程式人生 > 其它 >ElasticSearch安裝 (Mac)

ElasticSearch安裝 (Mac)

Linux作業系統主要分為:核心、shell,應用程式

一、Linux核心

核心直接與底層硬體進行通訊,決定整個系統的穩定性,如圖:

總的來講分為四部分:記憶體管理,程序管理,硬體管理,虛擬檔案系統管理。

1. 記憶體管理

Linux裡面有一個名詞叫swap分割槽,是物理磁碟上的一塊空間,稱為虛擬記憶體。Linux實際上管理了兩部分記憶體,一部分是實體記憶體,另一部分就是這個虛擬記憶體。從微觀上看,虛擬記憶體和真實實體記憶體之間也在不斷的交換資料。進一步,Linux會將記憶體資源池(虛擬記憶體和實體記憶體)劃分成很多份記憶體頁即Memory Page,當然核心自己會記錄和維護每一塊記憶體頁和虛擬記憶體、實體記憶體的對應關係。

2. 程序管理

Linux啟動時,首先會啟動一個init程序,再由這個init程序來啟動其它所有程序。Linux系統裡一般會有一個目錄來存放開機啟動的程序。如: ubuntu 下的/etc/rcX.local

root@test:/etc# cd rc
rc0.d/    rc1.d/    rc2.d/    rc3.d/    rc4.d/    rc5.d/    rc6.d/    rc.local  rcS.d/ 

Linux的init採用了“執行級”,執行級決定了如果執行/etc/rcX.d裡面定義的程序。執行級越低,代表init越先執行一些基本的簡單的程序。比如Linux的單使用者模式,就是執行級為1時執行的。

Ubuntu的執行級配置檔案位置:

root@test:/lib/systemd/system# ls -l runleve*.target      
lrwxrwxrwx 1 root root 15 Feb 15  2017 runlevel0.target -> poweroff.target
lrwxrwxrwx 1 root root 13 Feb 15  2017 runlevel1.target -> rescue.target
lrwxrwxrwx 1 root root 17 Feb 15  2017 runlevel2.target -> multi-user.target
lrwxrwxrwx 
1 root root 17 Feb 15 2017 runlevel3.target -> multi-user.target lrwxrwxrwx 1 root root 17 Feb 15 2017 runlevel4.target -> multi-user.target lrwxrwxrwx 1 root root 16 Feb 15 2017 runlevel5.target -> graphical.target lrwxrwxrwx 1 root root 13 Feb 15 2017 runlevel6.target -> reboot.target

檢視和修改執行級:

root@test:/lib/systemd/system# runlevel        
N 5
root@test:/lib/systemd/system# systemctl get-default
graphical.target
root@test:/lib/systemd/system# 

例如: 設定系統的預設執行級別為5
root@test:/lib/systemd/system# systemctl set-default graphical.target
root@test:/lib/systemd/system# rm -f /etc/systemd/system/default.target
root@test:/lib/systemd/system# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

3. 硬體裝置管理

Linux核心通過驅動程式來管理硬體裝置。具體就是在核心程式碼中加入具體裝置的驅動程式,最早以前,技術不太成熟時,每一次由於新增新硬體,需要新增驅動程式時,核心都得重新編譯;現在Linux提出了核心模組的概念,類似於熱插拔,可以單獨載入進核心中,而不需要核心重新編譯。

4. 虛擬檔案系統管理

Linxu支援多種不同的檔案系統同時使用,如Ext2,Ext4,nfs,fat等。Linux核心採用了VFS(Virtual File System)向下對接各種抽象的檔案系統,向上提供統一的比如對於讀寫等操作的函式和API介面。

因此對於上層使用者來講,並不需要關係底層具體的檔案系統是什麼,只需要呼叫統一的API來操作就可以。