300 likes | 527 Views
The File System. Linux File System. Linux supports 15 file systems ext, ext2, xia, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs and ufs The separate file systems are combined into a single hierarchical tree structures mount on a directory (mount point).
E N D
Linux File System • Linux supports 15 file systems • ext, ext2, xia, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs and ufs • The separate file systems are combined into a single hierarchical tree structures • mount on a directory (mount point)
Virtual File System • Disks are initialized into logical partitions • Each partition may hold a single file system • EXT2 • The real file systems are separated from the operating system by an interface layer: Virtual File System
The Second Extended File System (EXT2) • File : data blocks • inode : describe which blocks the data within a file occupies, access rights, modification time,… • directory : special file which contains pointers to the inodes
The EXT2 Inode • Mode • what this inode describes (file, directory, symbolic link, FIFO,…) and the permissions • Owner Information • user and group ids of the owners • Size
The EXT2 Inode • Timestamps • creation and modification • Datablocks
The EXT2 Superblock • Basic size and shape of the file system • Magic Number :0xEF53 • Revision Level • Mount Count and Maximum Mount Count • Block Group Number • Block Size • Block per Group
The EXT2 Superblock • Basic size and shape of the file system • Blocks per Group • Free Blocks • Free Inodes • First Inode
The EXT2 Group Descriptor • Block Bitmap • Inode Bitmap • Inode Table • Free blocks count, Free inodes count, Used directory count
Finding a File in an EXT2 File System • /home/rusling/.cshrc • system parse the filename a directory at a time until we get the file
Changing the Size of a File in an EXT2 File System • Lock EXT2 Superblock • Check if there are preallocated blocks • EXT2 allocate new block • data block after the last block of the file • data blocks within 64 blocks of the idea block • data block in the same Block Group
Changing the Size of a File in an EXT2 File System • All of the other Block Groups in turns (allocate a cluster of eight blocks) • Update the Block Group’s block bitmap and allocate a data buffer in the buffer cache • Mark the superblock as “dirty” and unlock
The VFS Superblock • Device • Inode pointers • Blocksize • Superblock operations • File System Type • File System specific
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 The VFS Inode
Registering the File Systems • Build Linux kernel : supported file systems • Build file systems as modules • load by ismod
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
Umount a File System • Check whether someone is using the FS • Check if the FS is dirty • write back • Return VFS superblock to kernel’s pool • vfsmount is unlinked fromvfsmntlist
Speedup Access • VFS Inode Cache • Directory Cache
The States of the Cache • Clean :Unused, new buffers, • Locked • 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,
The States of the Cache • Share • Shared buffers, • Unshared • Buffers that were once shared but which are now not shared, clean :Unused, new buffers,
The bdflush Kernel Daemon • The bdflush kernel daemon is a simple kernel daemon that provides a dynamic response to the system having too many dirty buffers (default :60%) • The value can be seen and changed using update command (a daemon)
The /proc File System • It does not really exist • Presents a user readable windows into the kernel’s inner workings
Devices Special Files • Hardware devices • character and block devices • device drivers • major number, minor number