1. 程式人生 > 其它 >Python 微服務框架 Nameko 微服務通訊(RabbitMQ)

Python 微服務框架 Nameko 微服務通訊(RabbitMQ)

------------恢復內容開始------------

一、linux 開機流程

第一步:開機自檢,載入BIOS
第二步:讀取MBR(Master Boot Record)主引導記錄 MBR在大小為512位元組,存放預啟動資訊、分割槽表等資訊,
第三步:Boot Loader grub引導選單
第四步:載入kernel核心。在MBR程式中找到其前446位元組的Boot Loader。Boot Loader 就是在作業系統核心執行之前執行的一段小程式。通過這段小程式,我們可以初始化硬體裝置、建立記憶體空間的對映圖,從而將系統的軟硬體環境帶到一個合適的狀態,以便為最終呼叫作業系統核心做好一切準備。Boot Loader有若干種,其中Grub、Lilo和spfdisk是常見的Loader。系統讀取記憶體中的grub配置資訊(一般為menu.lst或grub.lst),並依照此配置資訊來啟動不同的作業系統。
第五步:init程序依據inittab資料夾來設定執行級別
第六步:init程序執行rc.sysinit
第七步:啟動核心模組
第八步:執行不同執行級別的指令碼程式
第九步:執行/etc/rc.d/rc.local
第十步:執行/bin/login程式,啟動mingetty,進入登入狀態

2.檔案系統介紹
Ext
全稱Linux extended file system, extfs,即Linux擴充套件檔案系統,Ext2就代表第二代檔案擴充套件系統,Ext3/Ext4以此類推,它們都是Ext2的升級版,只不過為了快速恢復檔案系統,減少一致性檢查的時間,增加了日誌功能, 所以Ext2被稱為索引式檔案系統,而Ext3/Ext4被稱為日誌式檔案系統。
檢視Linux支援的檔案系統:ls -l /lib/modules/$(uname -r)/kernel/fs

Linux發行版本之間的差別很少,差別主要表現在系統管理的特色工具以及軟體包管理方式的不同。目錄結構基本上都是一樣的。Windows的檔案結構是多個並列的樹狀結構,最頂部的是不同的磁碟(分割槽),如:C,D,E,F等。

Linux的檔案結構是單個的樹狀結構.可以用tree進行展示。在Ubuntu下安裝tree(sudo apt-get install tree),並可通過命令來檢視。

每次安裝系統的時候我們都會進行分割槽,Linux下磁碟分割槽和目錄的關係如下:

–任何一個分割槽都必須掛載到某個目錄上。

–目錄是邏輯上的區分。分割槽是物理上的區分。

–磁碟Linux分割槽都必須掛載到目錄樹中的某個具體的目錄上才能進行讀寫操作。

–根目錄是所有Linux的檔案和目錄所在的地方,需要掛載上一個磁碟分割槽。

以下是我們可能存在的一種目錄和分割槽關係

fdisk檢視硬碟分割槽表

–df:檢視分割槽使用情況

–du:檢視檔案佔用空間情況

Q:為什麼要分割槽,如何分割槽?

–可以把不同資料,分別放入不同分割槽中管理,降低風險。

–大硬碟搜尋範圍大,效率低

–磁碟配合只能對分割槽做設定

–/home /var /usr/local經常是單獨分割槽,因為經常會操作,容易產生碎片


二、inode和block

inode:記錄檔案的許可權、屬性和資料所在塊block的號碼,每個檔案都有且僅有一個的inode,每個inode都有自己的編號,可以把inode簡單地理解為文件索引。
在磁碟格式化後,inode的大小和數量都已經固定了,大小均為128Bytes(新的Ext4和xfs為258Bytes)。讀取檔案時,先讀取inode裡面記錄的檔案屬性和許可權,匹配正確後,才會讀取檔案內容(block)。在Linux系統中,實際使用inode來識別檔案,而不是檔名,類似於使用者標識和暱稱的設計 。

扇區:檔案儲存在硬碟上,硬碟的最小儲存單位叫做“扇區”(Sector)。每個扇區儲存512位元組
block:作業系統讀取硬碟的時候,不會一個個扇區的讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個“塊”(block)。這種由多個扇區組成的“塊”,是檔案存取的最小單位。“塊”的大小,最常見的是4KB,即連續八個sector組成一個block。

檔案資料都儲存在“塊”中,那麼很顯然,我們還必須找到一個地方儲存檔案的“元資訊”,比如檔案的建立者、檔案的建立日期、檔案的大小等等。這種儲存檔案元資訊的區域就叫做inode。

每一個檔案都有對應的inode,裡面包含了與該檔案有關的一些資訊。
inode包含檔案的元資訊,具體來說有以下內容:
Size 檔案的位元組數
Uid 檔案擁有者的User ID
Gid 檔案的Group ID
Access 檔案的讀、寫、執行許可權
檔案的時間戳,共有三個:
Change 指inode上一次變動的時間
Modify 指檔案內容上一次變動的時間
Access 指檔案上一次開啟的時間
Links 連結數,即有多少檔名指向這個inode
Inode 檔案資料block的位置
Blocks 塊數
IO Blocks 塊大小
Device 裝置號碼

可以用stat命令,檢視某個檔案的inode資訊:


總之,除了檔名以外的所有檔案資訊,都存在inode之中。
inode也會消耗硬碟空間,所以硬碟格式化的時候,作業系統自動將硬碟分成兩個區域。一個是資料區,存放檔案資料;另一個是inode區(inode table),存放inode所包含的資訊。
每個inode節點的大小,一般是128位元組或256位元組。inode節點的總數,在格式化時就給定,一般是每1KB或每2KB就設定一個inode。假定在一塊1GB的硬碟中,每個inode節點的大小為128位元組,每1KB就設定一個inode,那麼inode table的大小就會達到128MB,佔整塊硬碟的12.8%。

檢視每個硬碟分割槽的inode總數和已經使用的數量,可以使用df命令。

1、uname -r : 顯示作業系統的發行版號
2、uname -a :顯示系統名、節點名稱、作業系統的發行版號、核心版本等等。


//檢視當前目錄下各個檔案及目錄佔用空間大小
du -sh *
du -h --max-depth=1 /home

------------恢復內容結束------------