Linux操作系統中,硬盤的最小存儲單位為扇區,每個扇區大小為512字節。而操作系統在讀取硬盤數據的時候,一次性最小讀取一個塊(block),默認一個block大小為4k,即8個扇區。
Linux系統中,文件分兩部分存儲。其中文件數據信息存儲在block中,而文件的屬性等信息存儲在inode中(但不包含文件名,文件的名稱信息存儲在上一級目錄block中),inode號即索引節點號。文件名僅是為了方便人們的記憶而使用,系統或程序通過 inode 號尋找正確的文件數據塊。Linux系統中,每個文件至少對應一個inode和一個block,如果此文件超過4k,則會對應1個inode和多個block。inode除了存儲文件屬性信息外,還存儲block的指針信息。
1. inode(索引節點)
相當於書的目錄,存儲文件的屬性信息。從文件系統被創建之后就生成。
特點說明:
inide存放文件的屬性信息
inode存放塊的指針信息
創建一個文件,至少占用一個inode和一個block
[root@oracle12c tmp]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/rhel_oracle12c-root 21493760 190179 21303581 1% / devtmpfs 1015135 423 1014712 1% /dev tmpfs 1019392 1 1019391 1% /dev/shm tmpfs 1019392 1460 1017932 1% /run tmpfs 1019392 16 1019376 1% /sys/fs/cgroup /dev/sda1 524288 336 523952 1% /boot /dev/mapper/vg01-lv01 52426752 52273 52374479 1% /oracle tmpfs 1019392 9 1019383 1% /run/user/42 tmpfs 1019392 1 1019391 1% /run/user/0
2. block(數據塊)
相當於書本中目錄所指向的內容,用於存儲文件的具體內容。在文件系統創建后便生成。
特點說明:
存放數據信息
默認大小為4k,可以進行調整
比較大的文件,占用多個block
比較小的文件,如果一個block存不滿。剩余空間無法存儲其他數據,只能浪費。
創建一個文件至少占用一個inode和一個block(非空文件)
磁盤讀取數據時按照block為單位讀取,每讀一次消耗一次磁盤I/0
[root@oracle12c tmp]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/rhel_oracle12c-root 42966532 4919500 38047032 12% / devtmpfs 4060540 0 4060540 0% /dev tmpfs 4077568 0 4077568 0% /dev/shm tmpfs 4077568 28992 4048576 1% /run tmpfs 4077568 0 4077568 0% /sys/fs/cgroup /dev/sda1 1038336 167884 870452 17% /boot /dev/mapper/vg01-lv01 104802308 21569676 83232632 21% /oracle tmpfs 815516 12 815504 1% /run/user/42 tmpfs 815516 0 815516 0% /run/user/0
注意:
文件的屬性信息存儲在inode中,文件的名稱信息存儲在上一級目錄的block中。
[root@oracle12c tmp]# tree 001 001 ├── 01.txt ├── 02.txt ├── 03.txt ├── 04.txt ├── 05.txt ├── data └── test 2 directories, 5 files [root@oracle12c tmp]# vim 001 " ============================================================================ " Netrw Directory Listing (netrw v149) " /tmp/001 " Sorted by name " Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$ " Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:exec " ============================================================================ ../ ./ data/ test/ 01.txt 02.txt 03.txt 04.txt 05.txt .swp ~
文件在Linux系統中存儲的圖例如下: