1 / 29

Linux file systems

Linux file systems. Name: Peijun Li Student ID: 0100276 Prof. Morteza Anvari. Introduction to Linux. Unix-like operating system Free for everyone to use Multi-user Multi-tasking Internet ready Robust Multi platform Symmetrical Multi Processors .

presta
Download Presentation

Linux file systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux file systems Name: Peijun Li Student ID: 0100276 Prof. Morteza Anvari

  2. Introduction to Linux • Unix-like operating system • Free for everyone to use • Multi-user • Multi-tasking • Internet ready • Robust • Multi platform • Symmetrical Multi Processors

  3. History of Linux file systemsMinux FS--VFS--Ext FS--Xia FS--Ext 2 FS • In the early days, Linux was developed under the Minix operating system • Linus Torvalds implemented support for the Minux filesystem in Linux. • Limitations: block addresses are stored in 16 bits integers. maximal filesystem size is 64 MB maximal file name is 14 characters

  4. History of Linux file systemsMinux FS--VFS--Ext FS--Xia FS--Ext 2 FS • In order to ease the addition of new filesystem into the Linux kernal, a Virtual File System layer(VFS) was developed and integrated into the Linux kernel.

  5. History of Linux file systemsMinux FS--VFS--Ext FS--Xia FS--Ext 2 FS • In April 1992, a new filesystem called “Extended File System” was implemented and added to Linux 0.96c • Maximal size is 2 GB and maximal file name size is 255 characters • Limitations: No support for the separate access, inode modification, and data modification timestamps. Performance is too bad.

  6. History of Linux file systemsMinux FS--VFS--Ext FS--Xia FS--Ext 2 FS • Released in Jan 1993 • Heavily based on the Minux FS Kernel code. Very stable. Provide long file names, support for bigger partitions and the three timestamps. • Limitation: not extensible

  7. History of Linux file systemsMinux FS--VFS--Ext FS--Xia FS--Ext 2 FS • Released in Jan, 1993 • Based on Ext FS code with many improvements. • Was not stable. Right now is very stable with the improvements and integrated new features.

  8. Summery of features of different file system

  9. Basic File System Concept • Inodes • Directories • Links • Devices

  10. Basic FS concept--Inodes • Each file is represented by an Inode • Each inode contains the description of the file: file type, access rights, owners, timestamps, size, pointers to data blocks • The addresses of data blocks allocated to a file are stored in its inode

  11. Inode structure :

  12. Basic FS concept--Directories • Directories are structured in a hierarchical tree. Each directory can contain files and subdirectories • A directory is a file containing a list of entries. Each entry contains an inode number and a file name • When a process uses a pathname, the kernel code searches in the directories to find the corresponding inode number, the Inode is loaded into memory for requests.

  13. Directories Inode table directory

  14. Basic FS concept --links • Hard link can only be used to create a single file system; can only point on files • Symbolic link Does not point to an inode; It is possible to create cross-file systems symbolic links Point to any type of file, even on nonexistent files.

  15. Basic FS concept--Device special files • Character special files I/o operations in character mode • Block special files requires data to be written in block mode • When an I/O request is made on a special file, it is forwarded to a (pseudo) device driver. A special file is referenced by a major number, which identifies the device type, and a minor number, which identifies the unit.

  16. Virtual File System • Is used during system calls acting on files • The VFS is an indirection layer which handles the file oriented system calls and calls the necessary functions in the physical file system code to do the I/O. • Knows about filesystem types supported in the kernel. It uses a table defined during the kernel configuration. Each entry in this table describes a filesystem type

  17. User process System call System call interface Linux kernel VFS Ext2 FS (etc.) Buffer Cache Device drivers I/O request Hardware Disk controller

  18. VFS structure • A mounted filesystem descriptor contains information common to filesystem types, pointers for functions provided by physical filesystem kernel code, and private data maintained by the physical filesystem code • An inode descriptor contains pointers to functions that can be used to act on any file • An open file descriptor contains pointer to functions which can only act on open files

  19. The Second Extended File System(Ext2fs) • supports standard Unix file types: regular files, directories, device special files and symbolic links • allows the users to modify the kernel behavior Can set attributes on a file or on a directory • Can select System V or BSD semantics at mount time. • Allows the administrator to choose the logical block size(1024, 2048, 4096 bytes). • Implements fast symbolic links and keeps track of file system state.

  20. Physical structure A file system is made up of block groups. Block groups are not tied to the physical layout of the blocks on the disk.

  21. The structure of a block group Contains a redundant copy of crucial filesystem control informations and also contains a part of filesystem.

  22. Variable length entry In Ext2fs, directories are managed as linked lists of variable length entries. Each entry contains : inode number, entry length, file name and file length

  23. Performance optimization • Use buffer cache management by performing readaheads: when a block has to be read, the kernel code requests the I/O on several contiguous blocks. • Block groups are used to cluster together related inodes and data. This will reduce the disk head seeks made when the kernel reads an inode and its data blocks. • When writing data to a file, Ext2fs preallocates up to 8 adjacent blocks when allocating a new block. This will speed up future sequential read.

  24. The Ext2fs library • Provides routines which can be used to examine and modify the data of an Ext2 filesystem. • Many of the Ext2 utilities use the Ext2fs library. This greatly simplifies the maintainance of these utilities. • Since the interfaces of the Ext2 library are abstract and general, new programs can be very easily written to access the Ext2fs • Provides access to several class of operations: filesystem, directories, inodes

  25. The Ext2fs tools • The mke2fs program: to initialize a partition to contain an empty Ext2 File system • The tune2fs program: to modify the filesystem parameters • The E2fsck program: to repair filesystem inconsistencies after an unclean shutdown of the system. It is designed to run as quickly as possible. • The Debugfs program: to examine and change the state of a filesystem. Read-only by default.

  26. Performance measurement • Use Bonnie benchmark to measure filesystem performance(Remy Card 1993): Bonnie Benchmark have been made on a middle-end PC, based on a i486DX2 processor, using 16MB of memory and two 420MB IDE disks. The tests were run on Ext2 fs , Xia fs and on the BSD fast filesystem in asynchronous and synchronous mode

  27. Results of Bonnie benchmark

  28. Reference • [Williaim Stallings 1998] Operating Systems 3rd edition 1998 • [David A. Rustuling 1999] The Linux kernel 1999 • [Remy Card 1993] Design and Implementation of the second Extended Filesystem 1993 • http://e2fsprogs.sourceforge.net/ext2.html

  29. Thank you!

More Related