33
4.3. THE VIRTUAL FILE SYSTEM Jordi Garcia 2013-2014

4.3. The Virtual File System

  • Upload
    kenley

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

4.3. The Virtual File System. Jordi Garcia. 2013-2014. Concepts about the file system The user view The disk structure Files in disk – The ext2 FS The Virtual File System. Concepts about the file system The disk structure Files in disk – The ext2 FS The Virtual File System. The VFS. - PowerPoint PPT Presentation

Citation preview

Page 1: 4.3. The Virtual File System

4.3. THE VIRTUAL FILE SYSTEM

Jordi Garcia2013-2014

Page 2: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 2

Th

e V

FS

1. Concepts about the file system2. The disk structure3. Files in disk – The ext2 FS4. The Virtual File System

Contents

1. Concepts about the file system The user view

2. The disk structure3. Files in disk – The ext2 FS4. The Virtual File System

Page 3: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 3

Th

e F

ile

Syste

m Disk: Device that stores information

(files)

Many files x many users: OS management Files organization

▪ Directories▪ Links

Files protection: rwx rwx rwx▪ Data file: read / write / execute▪ Directory:

▪ r allows reading directory contents▪ w allows writing directory contents (add or remove files)▪ x allows changing directory

Concepts (1)

Page 4: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 4

Th

e F

ile

Syste

m File system: Logical view of a disc

The information is organized: files, directories

Features Inverted tree structure

▪ Or graph (acyclic / cyclic), when links Root directory: / Current directory: . Parent directory: ..

▪ Exception: Parent of root directory

All processes have a working directory: cwd Relative path (assuming cwd) Absolute path (cwd not assumed)

Concepts (2)

Page 5: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 5

Th

e F

ile

Syste

m File: Any object with a name in the File System

File types Regular file

▪ Contains data Directory

▪ Contains files (regular, directory, …) Link

▪ Soft / symbolic (points to the name)▪ Hard (points to the content)

Device▪ Type, major, minor

Named pipe▪ Type p

Concepts (3)

Page 6: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 6

With . and .. files in each directory If there are links, the tree becomes a

graph

Th

e F

ile

Syste

mExample

f1

fffbbbaaa

f1.of1.c

josepjordi

lib home binusrdevetc mnt

/

Page 7: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 7

Th

e F

ile

Syste

m Usual I/O system calls, and

And other system calls to manage Permissions Relationship Features …

Additional system calls

Service System call

Create / remove link link / unlink / symlink

Change file permissions chmod

Change file proprietary / group

chown / chgrp

Get inode information stat / lstat / fstat

Page 8: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 8

Th

e F

ile

Syste

m Organize files (namespace,

directories) Manage file contents in disk Manage disk space

(allocated/free)

… and guarantee correctness, robustness, protection and efficiency

OS responsibilitiesIN MEMORY

IN DISK

Page 9: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 9

Th

e V

FS

1. Concepts about the file system2. The disk structure3. Files in disk – The ext2 FS4. The Virtual File System

Contents

1. Concepts about the file system2. The disk structure

Disk structure Disk contents

3. Files in disk – The ext2 FS4. The Virtual File System

Page 10: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 10

Th

e d

isk

str

uctu

re

Consists of: Platter/head/track/sector All sectors have the same size

It can also be seen as a list of sectors

The disk

SECTOR-1 SECTOR-2 SECTOR-3 SECTOR-4 … SECTOR-N

Page 11: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 11

Th

e d

isk

str

uctu

re Metadata

Boot sector (optional, only if bootable disk) Super block (one, or several through the

disk)▪ Disk structure (metadata / data), size, …▪ List of free sectors

Info about files (the data) storage Data: organized in blocks

1 block (OS view) = N sectors (disk view)

The actual format depends on specific FS▪ ext2, ext3, NTFS, …

Disk contents

BOOT sector

Super block

Info aboutfiles storage

Datablock

Datablock

Datablock

Datablock

Datablock

Super block

Info aboutfiles storage

Datablock

Datablock

Datablock

… …

Page 12: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 12

Th

e d

isk

str

uctu

re Disk allocation strategies

Continuous▪ For write-once disks

Discontinuous (at block level)▪ Linked list: FAT

▪ Index table: inode▪ The ext2 file system

Free space management Depends on allocation strategy

▪ Bitmap of free blocks

Space allocation/free

Page 13: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 13

Th

e V

FS

1. Concepts about the file system2. The disk structure3. Files in disk – The ext2 FS4. The Virtual File System

Contents

1. Concepts about the file system2. The disk structure3. Files in disk – The ext2 FS

Regular file Directory Links Other types

4. The Virtual File System

Page 14: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 14

Files in

dis

k –

ext2 Contains: data (any type) Where: In data blocks,

discontinuously File attributes

Packed into one data structure: inode▪ Metadata with all information about

the file▪ … including the index table▪ … except the file name (!)

Regular file (1)

Index table

BOOT sector

Super block

List of inodes Data Data Data Data DataSuper block

List of inodes Data Data Data… …

Info

Ino

de

Page 15: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 15

Files in

dis

k –

ext2 The inode data structure

▪ 1 inode per file

File type: data (dir, link, device, pipe, …) Size (determines #blocks and offset in last block) Permissions Proprietary Dates (creation, modification, access) Number of references (later) … Index table (13 pointers)

▪ 10 direct pointers▪ 1 single indirect pointer▪ 1 double indirect pointer▪ 1 triple indirect pointer

Regular file (2)

Page 16: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 16

Files in

dis

k –

ext2 Contains: List of files/inodes Where: In data blocks

▪ Usually 1 block but, if more, discontinuously

Data block contents▪ file name - #inode

Always, at least, . and .. directories

Directory file (1)

Index table

BOOT sector

Super block

List of inodes Data Data Data Data DataSuper block

List of inodes Data Data Data… …

Info

Ino

de

file name

file name

file name

#inode

#inode

#inode

Page 17: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 17

Files in

dis

k –

ext2 The inode data structure

File type: dir All other fields are similar than

regular file

Considerations in Linux Root directory inode is always #0 . directory points to the same directory .. directory points to the parent

▪ Except for root, that points to itself

Directory file (2)

Page 18: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 18

Files in

dis

k –

ext2 In Linux, the root inode is

always #0

Build the following file system: Inodes

Data blocks

Example (1)

type: DIR

6

#0

type: DATA

3

#1

type: DIR

2

#2

type: DATA

15

#3

type: DIR

11

#4

type: DATA

7

#5

type: DIR

18

#6

type: DIR

8

#7

2

0

3

.

..

A

f1

6

#2 #3

0

0

2

.

..

A

B

C

4

7

#6 #7

7

0

.

..

#8

4

0

.

..

#11 #15

6

2

5

.

..

f1

f2

1

#18

patim patam patum

Page 19: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 19

Files in

dis

k –

ext2 Soft Link (or symbolic link)

New file object that points to a path name The inode data structure contains

▪ File type: link▪ All other fields are similar than regular files

The data block contains the path name Hard link

New directory entry (name) that points to an existing inode

There is not any specific inode for it▪ Number of references ++

There are not data blocks for it Note that . and .. are hard links

Links

Page 20: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 20

Files in

dis

k –

ext2 Device

File object that represents a device in the FS

The inode data structure contains▪ File type: char / block▪ Major, minor, …▪ No data blocks are used

Named pipe File object that represents a pipe in the FS The inode data structure contains

▪ File type: pipe▪ No data blocks are used

And more: Sockets, …

Other types

Page 21: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 21

Files in

dis

k –

ext2 In Linux, the root inode is

always #0

Build the following file system: Inodes

Data blocks

Example (2)

type: DIR #refs = 5

6

#0

type: DATA #refs = 1

18

7

#1

type: DIR #refs = 2

2

#2

type: LINK #refs = 1

15

#3

type: DIR #refs = 2

11

#4

type: DATA #refs = 2

3

#5

type: DIR #refs = 3

8

#7

2

0

7

.

..

file3

D

5

#2

0

0

2

.

..

A

B

C

4

7

#6

7

0

.

..

file4 1

#8

4

0

5

.

..

file1

file2

3

#11#3

/B/file3

#7

patim

#15

/B/file3

#18

patam

Page 22: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 22

Th

e V

FS

1. Concepts about the file system2. The disk structure3. Files in disk – The ext2 FS4. The Virtual File System

Contents

1. Concepts about the file system2. The disk structure3. Files in disk – The ext2 FS4. The Virtual File System

Overview Internal VFS data structures System calls and the VFS

Page 23: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 23

Vir

tual File

Syste

m Abstraction layer on top of a

specific FS

Overview

Virtual File SystemProcs & memory

management

IPCBlocks server (buffer cache)

Syscalls interface

ext2 ext3 NTFS …FAT

device driver

device driver

device driver

void main() { read(…); write(…);}

void main() { read(…); write(…);}

Use

rSy

stem

Page 24: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 24

Vir

tual File

Syste

m FS: Information in disk, non-volatile, to

store and organize files according to a predetermined format (ie: ext2, FAT, NTFS, …) Different FS offer different options, attributes,

security levels, … but it is independent of the user interface and VFS implementation

VFS: Information in memory, part of the OS, to access and manage the files at run-time (from a process) Contains a copy of the information in disk

(metadata) to speed up the access times

So …

Page 25: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 25

Vir

tual File

Syste

m Different devices and/or partitions can be

accessed in a system Devices: hard disks, pen drives, network units Partitions: Set of consecutive sectors in disk

(metadata and data blocks), managed as independent logic entity

Each device and/or partition has its own directory structure and FS implementation

In order to access them, they have to be mounted in the main directory tree

▪ mount –t ext2 /dev/hda1 /home

Mounting FS

f1

bbbaaa

f1.of1.c

usr2usr1

lib home binusrdevetc mnt

/

bbbaaa

dir2 dir3dir1

/

Page 26: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 26

Vir

tual File

Syste

m Channels Table done!

Defines the files that can be accessed by a process Open Files Table done!

Represents the opened files in the system Inodes Table done!

Contains the used files, a “copy” of the inode object▪ And other run-time information, such as #refs▪ Actually, inodes in memory (IT) are called vnodes, and

are a superset to represent the inodes info + other FS related info

Buffer cache new! Contains a copy of data blocks (for any device) Used to speed access times and facilitate sharing Also, dentry cache with a copy of directory entries

Internal VFS data structures

Page 27: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 27

Vir

tual File

Syste

m The open syscall receives a file name

(path) as a parameter and, therefore, it has to access the VFS Sequence of inodes and directory data blocks Until the last inode is reached

(and added to the IT, if first time)▪ No data blocks are accessed!

1 OFT entry is added 1 CT entry is added

In case of caches, most of these disk access may be avoided or, later, reused

open and the VFS (1)

Page 28: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 28

Vir

tual File

Syste

m If the opened file is new (create),

a new line in the directory data block will be added Create new indode (and write to the

disk) Modify directory data block Modify directory inode (data, size)

And modify super block (list of free inodes)

open and the VFS (2)

Page 29: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 29

Vir

tual File

Syste

m

Compute number of disk accesses to execute:

▪ open(“/A/file1”, O_RDONLY);▪ open(“/A/file2”, O_RDONLY);

Assuming:▪ 1 inode = 1 block▪ 1 directory = 1 block▪ No caches of any type are used

Example (3)

file3file2file1

BA

/ #0

#4 #2

#5#5#3

link to /B/file3

Page 30: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 30

Vir

tual File

Syste

m The read syscall reads data

blocks from disk, as long as they are not in the buffer cache 1 or more, depending on size and

offset Also, depends on whether blocks

are pointed by direct or indirect indexes in the inode

read and the VFS

Page 31: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 31

Vir

tual File

Syste

m The write syscall writes data blocks to the

buffer cache (if present) Later (periodically), data blocks from the buffer

cache are written back to the disk Assuming N blocks have to be written

(depending on size and offset), special attention has to be paid to the first and last If initial offset is not block start, then this data

block has to be read before writing If final offset is not block end, then this data

block has to be read before writing All other data blocks are written directly

Also, depends on whether blocks are pointed by direct or indirect indexes in the inode

write and the VFS

Page 32: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 32

Vir

tual File

Syste

m Regular file

Decrements #refs and if zero removes inode + data blocks

Removes directory entry for this file Directory

Some VFS check if directory is empty; otherwise remove recursively all files included in it

Decrements #refs and if zero removes inode + data block

Removes directory entry for this file Soft link

Decrements #refs and if zero removes inode + data blocks▪ Does not remove the file pointed by this link

Removes directory entry for this file Other special files, just remove the inode

File deletion in the VFS

Page 33: 4.3. The Virtual File System

(c) 2013, Prof. Jordi Garcia | mailto:[email protected] 33

Vir

tual File

Syste

m The presence of links in a FS turns the

directory tree into a directory graph If the graph is cyclic, the OS has to control

infinite loops during file access, backup, … Different OS strategies to manage this

Cycles with soft-links are easy to manage. For instance, the backup process does not follow any soft-link

Cycles with hard-links are really difficult to manage, so▪ Deny hard links if they cause a cycle▪ Implement some type of mechanism to detect

cycles

Last considerations