Filesystems 3
Intro / Flashback (04:15)
Go Back
xv6 filesystem (01:39)
Go Back
xv6 directories (00:17)
Go Back
Free block map (00:23)
Go Back
Finding free inodes (00:24)
Go Back
xv6 chooses first free block/inode (00:45)
Go Back
Direct and indirect blocks (04:05)
Go Back
Inode data block addresses
- Inode stores an array of length
NDIRECT + 1
- Say NDIRECT is 12
- indexes 0-11 are pointers to data blocks
- Actually just ~0-based indexes of the disk
- Not really 0 cuz of header block
- index 12 points to an indirect block
- Same size as the other data blocks
- Filled with another array of direct pointers
- How many?
(Block Size) / (Pointer Size)
- xv6:
- 512-byte blocks
- 2-byte ptrs
- stores 256 2-byte ptrs
So how much data?
- 12 direct blocks, 512 bytes each
- 1 indirect block --> 256 ptrs to 512-byte blocks
Why have any Direct blocks? (Faster & Less space for small files) (03:12)
Go Back
ext2 filesystem (00:43)
Go Back
ext2 inode structure (01:17)
Go Back
Double / Triple indirect (04:19)
Go Back
Exercise (09:20)
Go Back
- 12 direct (12 K)
- 1 indirect
- 1 double indirect
- 1 triple indirect
- 16,843,020 (~16K)
Sparse files (03:01)
Go Back
Hard links (02:53)
Go Back
Soft/Symbolic links (01:33)
Go Back
xv6 FS pros vs FAT (00:53)
Go Back
Exercise: How many inodes/blocks? (07:55)
Go Back
xv6 filesystem performance issues (01:29)
Go Back
FFS (Fast Filesystem) (00:23)
Go Back
Block groups (02:48)
Go Back
Allocation within block groups (01:17)
Go Back
FFS block groups (01:42)
Go Back
Fragments (03:07)
Go Back
Non-FFS changes (00:27)
Go Back
Problem with extents (01:03)
Go Back
Allocating extents (00:44)
Go Back
Efficient seeking with extents (non-binary search trees) (10:19)
Go Back
xv6 problem solving summary (01:12)
Go Back