Download presentation
Presentation is loading. Please wait.
Published byKristin Gillian Franklin Modified over 9 years ago
1
Linux Filesystem Last Update 2012.08.24 1.3.0 Copyright 2000-2012 Kenneth M. Chipps Ph.D. www.chipps.com 1
2
Objectives of This Section Learn –What filesystems are –What filesystems Linux can use Copyright 2000-2003 Ken Chipps All Rights Reserved 2
3
History of Linux Filesystems Linux was cross-developed under the Minix operating system Linus Torvalds decided It was easier to share disks between the two systems than to design a new filesystem, so support for the Minix filesystem was built into Linux The Minix filesystem was an efficient and relatively bug-free piece of software Copyright 2000-2003 Ken Chipps All Rights Reserved 3
4
History of the Linux Filesystem However, the restrictions in the design of the Minix filesystem were too limiting, so people started thinking and working on the implementation of new filesystems in Linux In order to ease the addition of new filesystems into the Linux kernel, a VFS - Virtual File System layer was developed Copyright 2000-2003 Ken Chipps All Rights Reserved 4
5
History of the Linux Filesystem The VFS layer was initially written by Chris Provenzano, and later rewritten by Linus Torvalds before it was integrated into the Linux kernel VFS also proved to be too limiting so a new filesystem, called the Extended File System was implemented in April 1992 and added to Linux 0.96c Copyright 2000-2003 Ken Chipps All Rights Reserved 5
6
History of the Linux Filesystem This new filesystem removed the two big Minix limitations –Maximum size of 2 GB –Maximum file name size of 255 characters This was an improvement over the Minix filesystem but some problems were still present in it Copyright 2000-2003 Ken Chipps All Rights Reserved 6
7
History of the Linux Filesystem There was no support for –Separate access –Inode modification –Data modification timestamps The filesystem used linked lists to keep track of free blocks and inodes and this produced bad performance Copyright 2000-2003 Ken Chipps All Rights Reserved 7
8
History of the Linux Filesystem As the filesystem was used, the lists became unsorted and the filesystem became fragmented As a response to these problems, two new filesystems were released in the Alpha version of Linux in January 1993 –The Xia filesystem –The Second Extended File System Copyright 2000-2003 Ken Chipps All Rights Reserved 8
9
History of the Linux Filesystem The Xia filesystem was heavily based on the Minix filesystem kernel code and only added a few improvements over this filesystem Basically, it provided long file names, support for bigger partitions, and support for the three timestamps Copyright 2000-2003 Ken Chipps All Rights Reserved 9
10
History of the Linux Filesystem On the other hand, ext2 was based on the ext code with many reorganizations and many improvements It had been designed with evolution in mind and contained space for future improvements When the two new filesystems were first released, they provided essentially the same features Copyright 2000-2003 Ken Chipps All Rights Reserved 10
11
History of the Linux Filesystem Due to its minimal design, xia fs was more stable than ext2 As the filesystems were used more widely, bugs were fixed in ext2 and lots of improvements and new features were integrated ext2 is now very stable and has become the de-facto standard Linux filesystem Copyright 2000-2003 Ken Chipps All Rights Reserved 11
12
Structure Unlike Windows Linux keeps a single filesystem for all hardware devices There is no C: D: E: and so on Copyright 2000-2003 Ken Chipps All Rights Reserved 12
13
Inode Within a Linux filesystem each file is represented by a structure, called an inode Each inode contains the description of the file, as in –File type –Access rights –Owners –Timestamps –Size Copyright 2000-2003 Ken Chipps All Rights Reserved 13
14
Inode –Pointers to data blocks The addresses of data blocks allocated to a file are stored in its inode When a user requests an I/O operation on the file, the kernel code converts the current offset to a block number, uses this number as an index in the block addresses table and reads or writes the physical block Copyright 2000-2003 Ken Chipps All Rights Reserved 14
15
Directories Directories are structured in a hierarchical tree Each directory can contain files and subdirectories Directories are implemented as a special type of file Actually, a directory is a file containing a list of entries Copyright 2000-2003 Ken Chipps All Rights Reserved 15
16
Directories 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 After the name has been converted to an inode number, the inode is loaded into memory and is used by subsequent requests Copyright 2000-2003 Ken Chipps All Rights Reserved 16
17
Files Linux itself does not use extensions in file names Filenames that begin with a period are hidden To see them use ls -a Copyright 2000-2003 Ken Chipps All Rights Reserved 17
18
Links Like Unix, Linux filesystems implement the concept of links Several names can be associated with an inode The inode contains a field containing the number associated with the file Copyright 2000-2003 Ken Chipps All Rights Reserved 18
19
Links Adding a link simply consists of creating a directory entry, where the inode number points to the inode, and in incrementing the links count in the inode. When a link is deleted, in other words when one uses the rm command to remove a filename, the kernel decrements the links count and deallocates the inode if this count becomes zero Copyright 2000-2003 Ken Chipps All Rights Reserved 19
20
Links This type of link is called a hard link and can only be used within a single filesystem It is impossible to create cross-filesystem hard links Moreover, hard links can only point to files Another kind of link exists in Linux filesystems Copyright 2000-2003 Ken Chipps All Rights Reserved 20
21
Links Symbolic links are simply files which contain a filename When the kernel encounters a symbolic link during a pathname to inode conversion, it replaces the name of the link by its contents In other words. the name of the target file, then it restarts the pathname interpretation Copyright 2000-2003 Ken Chipps All Rights Reserved 21
22
Links Since a symbolic link does not point to an inode, it is possible to create cross- filesystem symbolic links Symbolic links can point to any type of file, even to nonexistent files Symbolic links are very useful because they don't have the limitations associated with hard links Copyright 2000-2003 Ken Chipps All Rights Reserved 22
23
ext2 The current filesystem standard The second extended file system First appeared in the 2.2 kernel Although some are moving to ext3 Copyright 2000-2003 Ken Chipps All Rights Reserved 23
24
ext3 ext3 is a journaling filesystem developed by Stephen Tweedie It is compatible with the ext2 filesystems Basically it can be seen as an ext2 filesystem with a journal file The journaling capability means no more waiting for fsck to run or worrying about metadata corruption Copyright 2000-2003 Ken Chipps All Rights Reserved 24
25
ext3 What is most noticeable is that you can switch back and forth between ext2 and ext3 on a partition without any problem It is just a matter of giving the mount command the right filesystem type From kernel version 2.4.16 on ext3 is included in the standard kernel Copyright 2000-2003 Ken Chipps All Rights Reserved 25
26
ext3 Before a partition can be mounted as an ext3 filesystem the journal file must be created The easiest way to do it is to type –tune2fs -j /dev/hdaX This can be done on an unmounted or on a mounted filesystem If the journal is created on a mounted filesystem a file named.journal file will be seen Copyright 2000-2003 Ken Chipps All Rights Reserved 26
27
ext3 Don't try to delete this and don't back this up or restore it from backup If tune2fs -j is run on an unmounted partition an invisible journal file will be created Now the filesystem can be mounted as ext3 using –mount -t ext3 /dev/hdaX /mnt/somewhere Copyright 2000-2003 Ken Chipps All Rights Reserved 27
28
Copyright 2000-2003 Ken Chipps All Rights Reserved 28 Standard System Directories / –The root directory –Generally in Linux, unlike other operating systems, this directory holds no files –It only has other directories below it /bin –Holds standard commands and utilities
29
Copyright 2000-2003 Ken Chipps All Rights Reserved 29 Standard System Directories /boot –Holds the kernel image files and modules loaded when the system boots /dev –Holds the file interfaces for devices such as printers /etc –This directory and its subdirectories holds system configuration files
30
Standard System Directories /home –Holds user home directories /initrd –This directory is empty, but is used as a critical mount point during the boot process /lib –Shared libraries and kernel modules Copyright 2000-2003 Ken Chipps All Rights Reserved 30
31
Copyright 2000-2003 Ken Chipps All Rights Reserved 31 Standard System Directories /lost+found –Used by fsck to place orphaned files, such as files without names /misc –Normally not used /media –On modern Linux systems this contains the mount points fore removable media
32
Copyright 2000-2003 Ken Chipps All Rights Reserved 32 Standard System Directories /mnt –On older Linux systems this contains the mount points fore removable media /opt –Holds software applications that have been added /proc –Used to show running processes
33
Standard System Directories /root –The home directory of the superuser /sbin –Holds specialized system programs /tmp –For temporary files /usr –Hold files and commands directly related to users of the system Copyright 2000-2003 Ken Chipps All Rights Reserved 33
34
Copyright 2000-2003 Ken Chipps All Rights Reserved 34 Standard System Directories /usr/bin –User oriented commands and utilities /usr/doc –Documentation /usr/lib –Holds libraries for programming languages
35
Copyright 2000-2003 Ken Chipps All Rights Reserved 35 Standard System Directories /use/local –Locally installed software /usr/sbin –Holds system administration commands /usr/share –Stuff to be used by several programs /usr/share/doc –Holds Linux documentation
36
Copyright 2000-2003 Ken Chipps All Rights Reserved 36 Standard System Directories /usr/share/man –Holds the man pages /usr/spool –Holds spooled files, such as print spooling /usr/src –Holds source files –For example /usr/src/linux holds the kernel source files
37
Copyright 2000-2003 Ken Chipps All Rights Reserved 37 Standard System Directories /usr/X11R6 –X Window applications and libraries /var –Holds files that vary a lot in size /var/cache –Application cache data /var/lib –State information for applications
38
Standard System Directories /var/lock –Holds locks for files that are locked /var/log –Holds kernel and system log files /var/spool –Holds application spool data as well as print, cron, and at jobs Copyright 2000-2003 Ken Chipps All Rights Reserved 38
39
Copyright 2000-2003 Ken Chipps All Rights Reserved 39 Standard System Directories /var/tmp –Holds temporary files that need to be retained during a system reboot
40
Copyright 2000-2003 Ken Chipps All Rights Reserved 40 Links Some files in Linux systems are not files Instead they are links to files These show up as –l in the first position when the –ls command is issued
41
Copyright 2000-2003 Ken Chipps All Rights Reserved 41 Links Basically a symbolic link is just another way to indicate a path Symbolic links then differ from hard links Hard links are actual files To remove a file, just remove the hard links The symbolic links will then fail, as the file is no longer there
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.