硬體 運算器,控制器,存儲器,I/O裝置
核心:1、協調硬體工作2、抽象底層硬體功能為系統調用3、讓硬體工作(硬體驅動,數字簽名防惡意代碼)4、cpu和記憶體資源配置設定5、網絡管理6、安全管理
I/O事件的基礎概念:
硬體級别:CPU通過輪循或硬體的通知機制得知事件的發生。CPU通過每個硬體都會在cpu處注冊使用不同的端口,或中斷控制器的不同的中斷信号完成識别硬體
軟體級别:系統:數字,人:字母,硬體與主機闆通過基于工業标準的特殊線纜連接配接實作互動。
不同接口的速率: IDE 133 ,SCSI: 640 SATA3.0:700 SAS 700 USB3.0 450
實際體驗的速率 硬體和接口速率及電器信号的幹擾。
track:存儲資料的位置
cylinder: 不同盤片不同盤面的相同編号的磁道
扇區:每個磁道劃分的小的區域
mbr:512bytes, uefi:4k
分區:把一個空間在邏輯層次劃分為多個,當作不同的裝置
分區方式:按cylinder,由外向内
裝置檔案:關聯至一個裝置驅動程式,進而能跟與之對應的硬體裝置進行通信。
檔案系統分為 資料區 和中繼資料區(filename,perm,size,owner,group,timestamps和記錄資料塊的編号)
核心中實作
索引和索引的編址方式組成 或 存儲空間和資料存儲形式以及對檔案的索引
日志檔案系統
存儲資料時,先将中繼資料存在日志區中,然後将資料存儲完畢後,将中繼資料同步至真正的中繼資料區。斷電修複時,隻找中繼資料區,速度快。 每寫一個資料都有多餘的IO
非日志檔案系統
直接存儲在中繼資料區,斷電修複時,周遊檔案系統,速度慢。第寫一個資料時沒有多餘的IO,性能在早期比日志檔案系統好。
虛拟記憶體:假設每個程序有4G可用
swap:記憶體消耗快滿時,将磁盤中空間格式化為同記憶體一樣的存儲格式,而後把實體記憶體中不太有用的資料放至磁盤之上,如果需要用到此資料時,将資料拿回來即可,這種行為叫做“交換”
檔案系統的組成:核心子產品:調用子產品實作格式化。、使用者空間的程式
VFS檔案系統:抽象底層各種不同的檔案系統接口為一個統一的接口,簡化程式員寫程式
要想使用一個檔案系統:
1、核心中有相應的子產品
2、遵循POSIX檔案系統規範
3、有對應的使用者空間程式
磁盤管理
分區、格式化、修複
1、檢視所有磁盤分區
# fdisk -l
2、檢視指定磁盤分區
# fdisk -l DEVICE
1
2
3
4
5
6
7
8
9
10
11
12
13
<code>++++++++列出的格式詳解+++++++++++++++++++++++++++++++++++</code>
<code> </code><code>磁盤 </code><code>/dev/vda</code>
<code> </code><code>大小 42.9 GB, 42949672960 位元組,83886080 個扇區</code>
<code> </code><code>Units = 扇區 of 1 * 512 = 512 bytes</code>
<code> </code><code>扇區大小(邏輯/實體):512 位元組 / 512 位元組</code>
<code> </code><code>I</code><code>/O</code> <code>大小(最小/最佳):512 位元組 / 512 位元組</code>
<code> </code><code>磁盤标簽類型:dos</code>
<code> </code><code>磁盤辨別符:0x0000efd2</code>
<code> </code><code>裝置 Boot Start End Blocks Id System </code>
<code> </code><code>裝置檔案 是否可引導(*:kernel) 起始柱面 結束柱面 磁盤塊數 分區标示 用在哪個系統上的分區上</code>
<code> </code><code>/dev/vda1</code> <code>* 2048 83886079 41942016 83 Linux</code>
3、管理分區
# fdisk DEVICE
管理分區相關的指令:
n 建立一個分區
d 删除一個分區
t 修改id
l 列出id
w 儲存退出
4、檢視核心識别的分區
# cat /proc/partitions
5、重讀分區
修改核心識别的分區,不改變分區
1)partx [-a|-d|-l] [--n M-N] disk
-n M[-N] ##指定分區範圍
-l ##顯示分區
-a ##添加
-d ##删除核心中識别的分區
##添加分區映射
2)kpartx -a [OPTIONS...] DEVICE
-n M[:N]
-f ##強制添加
-l
##用于centos5,添加分區映射
3)partprobe DEVICE
++++檢視核心支援的檔案系統
# cat /proc/filesystems
++++檢視核心裝載的子產品
# lsmod
6、建立檔案系統
方法一:mkfs.FS_TYPE [-L LABEL] DEVICE
方法二:mkfs -t FS_TYPE [-L LABEL] DEVICE
ext2 ext3 ext4 xfs btrfs vfat
方法三: mke2fs [OPTIONS...] DEVICE
-t {ext2,ext3,ext4}
-b 預設4096,小檔案多,值小。大檔案多,值大。
-j 直接建立ext3
-m 給管理者預留白間,5%預設
-L LABEL 為磁盤添加卷标
-i # 比率,單個inode占據磁盤塊大小
-N # inode數量
-O FEATURE 啟用特性
^FEATURE 關閉特性
has_journal
7、查找裝置的屬性資訊(LABEL,UUID,TYPE)
# blkid [OPTIONS....] DEVICE
-L LABEL 通過LABEL查找DEVICE
-U UUID 通過UUID查找DEVICE
UUID 全局UID 無論裝置檔案名怎麼變化,每一個磁盤都唯一不變的标示
TYPE 檔案系統類型
8、顯示設定label
# e2label DEVICE [LABEL]
顯示裝置的LABEL # e2label DEVICE
設定裝置的LABEL # e2label DEVICE LABEL
9、修改檔案裝置的屬性
# tune2fs [OPTIONS...] DEVICE
-l 顯示超級塊資訊
-L LABEL修改LABEL
-m # 管理者預留白間百分比
-j 啟動日志功能
-U UUID ,修改uuid,與uuidgen指令一起使用 -u $(uuidgen) 或 -u `uuidgen`
-O [FEATURE|^FEATURE] 檔案系統屬性啟用或禁用
has_journal 擁有日志功能
-o 調整檔案系統的預設挂載選項
acl 啟用Posix通路控制清單。
超級塊的用途:存儲整個分區中的結構
為了避免超級塊挂掉不能恢複,在建立檔案系統時,自動在每個分區備份了super block
超級塊挂掉之後,拆下硬碟,在其他主機之上用硬碟修複工具,把超級塊備份複制一份出來覆寫原來的壞的超級塊
inode是中繼資料的條目,每個中繼資料的條目是一個Inode
tune2fs檢視超級塊資訊的詳解
14
15
16
17
18
<code>[root@localhost ~]</code><code># tune2fs -l /dev/sda3 顯示超級塊資訊</code>
<code>tune2fs 1.41.12 (17-May-2010)</code>
<code>Filesystem volume name: 檔案系統卷标</code>
<code>Last mounted on: 最近一次什麼時間被挂載</code>
<code>Filesystem UUID: 全局唯一标示符</code>
<code>Filesystem magic number: 魔數</code>
<code>Filesystem revision </code><code>#: 1 (dynamic)</code>
<code>Filesystem features: 檔案系統的特性:檔案系統自己的特性跟是否挂載無關 sparse_super large_file (沒有journal,可見為ext2檔案系統)</code>
<code>Filesystem flags: signed_directory_hash </code>
<code>Default </code><code>mount</code> <code>options: 預設在挂載時的預設選項</code>
<code>Filesystem state: 檔案系統的目前狀态 clean:幹淨狀态 ,沒有什麼損壞</code>
<code>Errors behavior: Continue</code>
<code>Filesystem OS </code><code>type</code><code>: Linux 标示所在的作業系統</code>
<code>Inode count: 有多少個inode?inode是中繼資料的條目</code>
<code>Block count: 2622452 一共有多少個磁盤塊</code>
<code>Reserved block count: 131122 </code>
<code>Free blocks: 2575520 一共有多少個空閑磁盤塊</code>
<code>Free inodes: 655765 一共有多少個空閑inode</code>
+++++檢視超塊組資訊及檔案系統結構
dumpe2fs DEVICE
+++++檢視超級塊資訊
dumpe2fs -h DEVICE
<code>Group 320: (Blocks 5242880-5245189) [INODE_UNINIT, ITABLE_ZEROED]</code>
<code>塊組編号,磁盤塊起始-結束 </code>
<code>Block bitmap at 5242880 (+0) </code><code>## Block 位圖的位置</code>
<code>Inode bitmap at 5242896 (+16) </code><code>## Inode 位圖的位置</code>
<code>Inode表位于 5242912-5243167 (+32)</code>
<code>2052 </code><code>free</code> <code>blocks</code>
<code>2048 </code><code>free</code> <code>inodes, 2048個未使用的inodes</code>
<code>0 directories, </code>
<code>可用塊數: 5242881-5242895, 5242897-5242911, 5243168-5245189 </code><code>##多少塊可用</code>
<code>可用inode數: 655361-657408 </code><code>##可用Ino</code>
10、檢視預設挂載選項
# tune2fs -l DEVICE
# dumpe2fs -h DEVICE
default mount optons: 調整此處挂載選項
11、mkswap [OPTIONS...] DEVICE 建立交換分區(調整分區ID為82,system)
-L LABEL 設定卷标
-U UUID 設定UUID
調整id為82
重讀分區表
Partx -a /dev/sda
partx -a -n 6 /dev/sda
核心是否識别分區
/proc/partitions
建立交換分區
mkswap partitions
檢視檔案系統屬性
blkid /dev/sda6
啟動swap
swapon partitions
禁用swap
swapoff partitions
12、fsck類似mkfs
檢測指令:
1)fsck.FS_TYPE
2)fsck -t FS_TYPE
檢視支援的指令: fsck + 2次TAB
檢視支援的檔案系統: cat /proc/filesystems
修複選項:
-a auto自動修複錯誤
-r 互動式修複錯誤
3)e2fsck ext系列檔案系統檢測修複工具
-y 自動回答為yes
-f force 強制修複
13、linux和windows通用的檔案系統: windows識别: fat32, linux識别為: vfat
windows的檔案系統
fat32 ntfs cifs
linux的檔案系統
vfat ext系列 xfs btrfs
U盤既能在linux
mkfs.vfat
本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1954327,如需轉載請自行聯系原作者