Presentation is loading. Please wait.

Presentation is loading. Please wait.

Linux File System Li-Shien Chen.

Similar presentations


Presentation on theme: "Linux File System Li-Shien Chen."— Presentation transcript:

1 Linux File System Li-Shien Chen

2 基本概念

3 檔案屬性

4 Inode

5 Link 何謂連結? 將檔案取另一個名字 Hardlink ln /a/os1.txt /b/os2.txt

6 Hard Link

7 Hard Link 缺點 不許應用在目錄上 會造成循環連結 不能跨檔案系統 會使得Inode number不唯一

8 Symbolic Link Ln –s /a/os1.txt /b/os2.txt 與Hard Link的不同 有自己的Inode節點

9 Symbolic Link

10 傳統Unix系統 支援某一種特定檔案系統 無法存取其他的檔案系統 如何同時支援多個檔案系統

11 傳統Unix系統缺點

12 方案一

13 方案一的問題 Kernel與檔案系統相依程度太高 造成應用程式的負擔 方案二 :為kernel與檔案系統提供一個標 準的連結介面

14 方案二

15 Linux File System 真正的檔案系統 Cache Virtual File System Switch(VFS)
如Ext2,FAT…等等 Cache 加快讀取檔案系統的速度 Virtual File System Switch(VFS) Kernel與真正檔案系統的介面

16 Linux File System 架構

17 The Buffer Cache

18 The States of the Cache Locked Dirty
Buffers that are locked, waiting to be written Dirty Dirty buffers. These contain new, valid data, and will be written but so far have not been scheduled to write

19 The States of the Cache Share Unshared Shared buffers
Buffers that were once shared but which are now not shared

20 檔案系統的表示 Disk and Patition Layout 在Linux裡, 檔案放的位置是以一個partition為單位的
在VFS裡, 每一個檔案系統是由其superblock來表示的

21 VFS Superblock Super_block結構 struct list_heads s_list; kdev_t s_dev;
unsigned long s_blocksize; unsigned char s_blocksize_bits; unsigned char s_rd_only; unsigned char s_dirt;

22 VFS Superblock struct file_system_type *type; unsigned long s_flags;
unsigned long s_magic; struct dentry *s_root; struct super_operations *s_op

23 檔案的表示 使用者觀點: 絕對路徑 如 usr/src/linux/fs/file.c VFS:以vfs inode(vnode)來表示

24 VFS inode Device Inode Number Mode User id times block size
inode operations a pointer to a block of routine addresses count lock dirty file system specific

25 Registering the File Systems
Build Linux kernel : supported file systems Build file systems as module

26 掛上檔案系統 利用 mount 或 mount_root() 利用read_super()來初始superblock
$mount -t ext2 /dev/hda3 /mnt

27 Example

28 Mounting a File System $mount -t iso9600 -o ro /dev/cdrom /mnt/cdrom
Search for the file system types( iso9600) Allocate a VFS superblock and pass it the mount information to the superblock read routine

29 A Mounted File System

30 Unmount a File System Check whether someone is using the FS
Check if the File System is dirty write back Return VFS superblock to kernel’s pool vfsmount is unlinked from vfsmntlist

31 Reference The Linux Kernel Linux 核心研究篇 http://www.linpus.com.tw


Download ppt "Linux File System Li-Shien Chen."

Similar presentations


Ads by Google