Linux file systems - PowerPoint PPT Presentation

About This Presentation
Title:

Linux file systems

Description:

In the early days, Linux was developed under the Minix operating system ... Minix FS. Basic File System Concept. Inodes. Directories. Links. Devices. Basic FS concept ... – PowerPoint PPT presentation

Number of Views:3274
Avg rating:3.0/5.0
Slides: 30
Provided by: Pei79
Category:
Tags: file | linux | minix | systems

less

Transcript and Presenter's Notes

Title: Linux file systems


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 systems Minux
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 systems Minux
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 systems Minux
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 systems Minux
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 systems Minux
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
Minix FS Ext FS Ext2 FS Xia FS
Max FS size 64 MB 2GB 4TB 2GB
Max file size 64MB 2GB 2GB 64MB
Max file name 16/30 c 255c 255c 248c
3 times support NO NO YES YES
Extensible NO NO YES NO
Var. block size NO NO YES NO
Maintained YES NO YES ?
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






i1 name1
i2 name2
i1 name3
i4 name4
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.

Boot selector Block Group 1 Block Group2 Block Group N
21
The structure of a block group
  • Contains a redundant copy of crucial
    filesystem control informations and also contains
    a part of filesystem.

Super Block FS descriptors Block Bitmap Inode Btmap Inode Table Data Blocks
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

Inode number Entry length Name length File name
i1 16 05 File1
i2 40 09 Long_name
i3 12 02 f2
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

Char Write (KB/s) Block Write (KB/s) Rewite (KB/s) Char Read (KB/s) Block Read (KB/s)
BSD Async 710 684 401 721 888
BSD sync 699 677 400 710 878
Ext2 fs 452 1237 536 397 1033
Xia fs 440 704 380 366 895
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!
Write a Comment
User Comments (0)
About PowerShow.com