SlideShare a Scribd company logo
Introduction
One of the key goals for the Windows Subsystem for Linux is to allow users to work with their
files as they would on Linux, while giving full interoperability with files the user already has on
their Windows machine. Unlike a virtual machine, where you have to use network shares or
other solutions to share files between the host and guest OS, WSL has direct access to all your
Windows drives to allow for easy interop.
Windows file systems differ substantially from Linux file systems, and this post looks into how
WSL bridges those two worlds.
File systems on Linux
Linux abstracts file systems operations through the Virtual File System (VFS), which provides
both an interface for user mode programs to interact with the file system (through system calls
such as open, read, chmod, stat, etc.) and an interface that file systems have to implement. This
allows multiple file systems to coexist, providing the same operations and semantics, with VFS
giving a single namespace view of all these file systems to the user.
File systems are mounted on different directories in this namespace. For example, on a typical
Linux system your hard drive may be mounted at the root, /, with directories such as /dev, /proc,
/sys, and /mnt/cdrom all mounting different file systems which may be on different devices.
Examples of file systems used on Linux include ext4, rfs, FAT, and others.
VFS implements the various system calls for file system operations by using a number of data
structures such as inodes, directory entries and files, and related callbacks that file systems must
implement.
Inodes
The inode is the central data structure used in VFS. It represents a file system object such as a
regular file, directory, symbolic link, etc. An inode contains information about the file type, size,
permissions, last modified time, and other attributes. For many common Linux disk file systems
such as ext4, the on-disk data structures used to represent file metadata directly correspond to the
inode structure used by the Linux kernel.
While an inode represents a file, it does not represent a file name. A single file may have
multiple names, or hard links, but only one inode.
File systems provide a lookup callback to VFS which is used to retrieve an inode for a particular
file, based on the parent inode and the child name. File systems must implement a number of
other inode operations such as chmod, stat, open, etc.
Directory entries
VFS uses a directory entry cache to represent your file system namespace. Directory entries only
exist in memory, and contain a pointer to the inode for the file. For example, if you have a path
like /home/user/foo, there is a directory entry for home, user, and foo, each with a pointer to an
inode. Directory entries are cached for fast lookup, but if an entry is not yet in the cache, the
inode lookup operation is used to retrieve the inode from the file system so a new directory entry
can be created.
File objects
When an inode is opened, a file object is created for that file which keeps track of things like the
file offset and whether the file was opened for read, write or both. File systems must provide a
number of file operations such as read, write, sync, etc.
File descriptors
Applications refer to file objects through file descriptors. These are numeric values, unique to a
process, that refer to any files the process has open. File descriptors can refer to other types of
objects that provide a file-like interface in Linux, including ttys, sockets, and pipes. Multiple file
descriptors can refer to the same file object, e.g. through use of the dup system call.
Special file types
Besides just regular files and directories, Linux supports a number of additional file types. These
include device files, FIFOs, sockets, and symbolic links.
Some of these files affect how paths are parsed. Symbolic links are special files that refer to a
different file or directory, and following them is handled seamlessly by VFS. If you open the
path /foo/bar/baz and bar is a symbolic link to /zed, then you will actually open /zed/baz instead.
Similarly, a directory may be used as a mount point for another file system. In this case, when a
path crosses this directory, all inode operations below the mount point go to the new file system.
Special and pseudo file systems
Linux uses a number of file systems that don’t read files from a disk. TmpFs is used as a
temporary, in-memory file system, whose contents will not be persisted. ProcFs and SysFs both
provide access to kernel information about processes, devices and drivers. These file systems do
not have a disk, network or other device associated with them, and instead are virtualized by the
kernel.
File systems on Windows
Windows generalizes all system resources into objects. These include not just files, but also
things like threads, shared memory sections, and timers, just to name a few. All requests to open
a file ultimately go through the Object Manager in the NT kernel, which routes the request
through the I/O Manager to the correct file system driver. The interface that file system drivers
implement in Windows is more generic and enforces fewer requirements. For example, there is
no common inode structure or anything similar, nor is there a directory entry; instead, file system
drivers such as ntfs.sys are responsible for resolving paths and opening file objects.
File systems in Windows are typically mounted on drive letters like C:, D:, etc., although they
can be mounted on directories in other file systems as well. These drive letters are actually a
construct of Win32, and not something that the Object Manager directly deals with. The Object
Manager keeps a namespace that looks similar to the Linux file system namespace, rooted in ,
with file system volumes represented by device objects with paths like
DeviceHarddiskVolume1.
When you open a file using a path like C:foobar, the Win32 CreateFile call translates this to
an NT path of the form DosDeviceC:foobar, where DosDeviceC: is actually a symbolic
link to, for example, DeviceHarddiskVolume4. Therefore, the real full path to the file is
actually DeviceHarddiskVolume4foobar. The object manager resolves each component of
the path, similar to how VFS would in Linux, until it encounters the device object. At this point,
it forwards the request to the I/O manager, which creates an I/O Request Packet (IRP) with the
remaining path, which it sends to the file system driver for the device.
File objects
When a file is opened, the object manager creates a file object for it. Instead of file descriptors,
the object manager provides handles to file objects. Handles can actually refer to any object
manager object, not just files.
When you call a system call like NtReadFile (typically through the Win32 ReadFile function),
the I/O manager again creates an IRP to send down to the file system driver for the file object to
perform the request.
Because there are no inodes or anything similar in NT, most operations on files in Windows
require a file object.
Reparse points
Windows only supports two file types: regular files and directories. Both files and directories
can be reparse points, which are special files that have a fixed header and a block of arbitrary
data. The header includes a tag that identifies the type of reparse point, which must be handled
by a file system filter driver, or for built-in reparse point types, the I/O manager itself.
Reparse points are used to implement symbolic links and mount points. In these cases, the tag
indicates that the reparse point is a symbolic link or mount, and the data associated with the
reparse point contains the link target, or volume name for mount points. Reparse points can also
be used for other functionality such as the placeholder files used by OneDrive in Windows 8.
Solution
Introduction
One of the key goals for the Windows Subsystem for Linux is to allow users to work with their
files as they would on Linux, while giving full interoperability with files the user already has on
their Windows machine. Unlike a virtual machine, where you have to use network shares or
other solutions to share files between the host and guest OS, WSL has direct access to all your
Windows drives to allow for easy interop.
Windows file systems differ substantially from Linux file systems, and this post looks into how
WSL bridges those two worlds.
File systems on Linux
Linux abstracts file systems operations through the Virtual File System (VFS), which provides
both an interface for user mode programs to interact with the file system (through system calls
such as open, read, chmod, stat, etc.) and an interface that file systems have to implement. This
allows multiple file systems to coexist, providing the same operations and semantics, with VFS
giving a single namespace view of all these file systems to the user.
File systems are mounted on different directories in this namespace. For example, on a typical
Linux system your hard drive may be mounted at the root, /, with directories such as /dev, /proc,
/sys, and /mnt/cdrom all mounting different file systems which may be on different devices.
Examples of file systems used on Linux include ext4, rfs, FAT, and others.
VFS implements the various system calls for file system operations by using a number of data
structures such as inodes, directory entries and files, and related callbacks that file systems must
implement.
Inodes
The inode is the central data structure used in VFS. It represents a file system object such as a
regular file, directory, symbolic link, etc. An inode contains information about the file type, size,
permissions, last modified time, and other attributes. For many common Linux disk file systems
such as ext4, the on-disk data structures used to represent file metadata directly correspond to the
inode structure used by the Linux kernel.
While an inode represents a file, it does not represent a file name. A single file may have
multiple names, or hard links, but only one inode.
File systems provide a lookup callback to VFS which is used to retrieve an inode for a particular
file, based on the parent inode and the child name. File systems must implement a number of
other inode operations such as chmod, stat, open, etc.
Directory entries
VFS uses a directory entry cache to represent your file system namespace. Directory entries only
exist in memory, and contain a pointer to the inode for the file. For example, if you have a path
like /home/user/foo, there is a directory entry for home, user, and foo, each with a pointer to an
inode. Directory entries are cached for fast lookup, but if an entry is not yet in the cache, the
inode lookup operation is used to retrieve the inode from the file system so a new directory entry
can be created.
File objects
When an inode is opened, a file object is created for that file which keeps track of things like the
file offset and whether the file was opened for read, write or both. File systems must provide a
number of file operations such as read, write, sync, etc.
File descriptors
Applications refer to file objects through file descriptors. These are numeric values, unique to a
process, that refer to any files the process has open. File descriptors can refer to other types of
objects that provide a file-like interface in Linux, including ttys, sockets, and pipes. Multiple file
descriptors can refer to the same file object, e.g. through use of the dup system call.
Special file types
Besides just regular files and directories, Linux supports a number of additional file types. These
include device files, FIFOs, sockets, and symbolic links.
Some of these files affect how paths are parsed. Symbolic links are special files that refer to a
different file or directory, and following them is handled seamlessly by VFS. If you open the
path /foo/bar/baz and bar is a symbolic link to /zed, then you will actually open /zed/baz instead.
Similarly, a directory may be used as a mount point for another file system. In this case, when a
path crosses this directory, all inode operations below the mount point go to the new file system.
Special and pseudo file systems
Linux uses a number of file systems that don’t read files from a disk. TmpFs is used as a
temporary, in-memory file system, whose contents will not be persisted. ProcFs and SysFs both
provide access to kernel information about processes, devices and drivers. These file systems do
not have a disk, network or other device associated with them, and instead are virtualized by the
kernel.
File systems on Windows
Windows generalizes all system resources into objects. These include not just files, but also
things like threads, shared memory sections, and timers, just to name a few. All requests to open
a file ultimately go through the Object Manager in the NT kernel, which routes the request
through the I/O Manager to the correct file system driver. The interface that file system drivers
implement in Windows is more generic and enforces fewer requirements. For example, there is
no common inode structure or anything similar, nor is there a directory entry; instead, file system
drivers such as ntfs.sys are responsible for resolving paths and opening file objects.
File systems in Windows are typically mounted on drive letters like C:, D:, etc., although they
can be mounted on directories in other file systems as well. These drive letters are actually a
construct of Win32, and not something that the Object Manager directly deals with. The Object
Manager keeps a namespace that looks similar to the Linux file system namespace, rooted in ,
with file system volumes represented by device objects with paths like
DeviceHarddiskVolume1.
When you open a file using a path like C:foobar, the Win32 CreateFile call translates this to
an NT path of the form DosDeviceC:foobar, where DosDeviceC: is actually a symbolic
link to, for example, DeviceHarddiskVolume4. Therefore, the real full path to the file is
actually DeviceHarddiskVolume4foobar. The object manager resolves each component of
the path, similar to how VFS would in Linux, until it encounters the device object. At this point,
it forwards the request to the I/O manager, which creates an I/O Request Packet (IRP) with the
remaining path, which it sends to the file system driver for the device.
File objects
When a file is opened, the object manager creates a file object for it. Instead of file descriptors,
the object manager provides handles to file objects. Handles can actually refer to any object
manager object, not just files.
When you call a system call like NtReadFile (typically through the Win32 ReadFile function),
the I/O manager again creates an IRP to send down to the file system driver for the file object to
perform the request.
Because there are no inodes or anything similar in NT, most operations on files in Windows
require a file object.
Reparse points
Windows only supports two file types: regular files and directories. Both files and directories
can be reparse points, which are special files that have a fixed header and a block of arbitrary
data. The header includes a tag that identifies the type of reparse point, which must be handled
by a file system filter driver, or for built-in reparse point types, the I/O manager itself.
Reparse points are used to implement symbolic links and mount points. In these cases, the tag
indicates that the reparse point is a symbolic link or mount, and the data associated with the
reparse point contains the link target, or volume name for mount points. Reparse points can also
be used for other functionality such as the placeholder files used by OneDrive in Windows 8.

More Related Content

Similar to Introduction One of the key goals for the Windows Subsystem for Li.pdf

Linux File System.docx
Linux File System.docxLinux File System.docx
Linux File System.docx
BhuvanaR13
 
CH11.pdf
CH11.pdfCH11.pdf
CH11.pdf
ImranKhan880955
 
linux-file-system01.ppt
linux-file-system01.pptlinux-file-system01.ppt
linux-file-system01.ppt
MeesanRaza
 
Unit 7
Unit 7Unit 7
Unit 7
siddr
 
Locus Distributed Operating System
Locus Distributed Operating SystemLocus Distributed Operating System
Locus Distributed Operating System
Tamer Rezk
 
File system security
File system securityFile system security
File system security
AmmAr mobark
 
Linux fundamentals
Linux fundamentalsLinux fundamentals
Linux fundamentals
Raghu nath
 
file management
 file management file management
file management
Sweta Kumari Barnwal
 
009709863.pdf
009709863.pdf009709863.pdf
009709863.pdf
KalsoomTahir2
 
File system hiearchy
File system hiearchyFile system hiearchy
File system hiearchy
sritolia
 
File system.
File system.File system.
File system.
elyza12
 
Learn about the File Concept in operating systems ppt
Learn about the File Concept in operating systems pptLearn about the File Concept in operating systems ppt
Learn about the File Concept in operating systems ppt
geethasenthil2706
 
Chapter 10 - File System Interface
Chapter 10 - File System InterfaceChapter 10 - File System Interface
Chapter 10 - File System Interface
Wayne Jones Jnr
 
84640411 study-of-unix-os
84640411 study-of-unix-os84640411 study-of-unix-os
84640411 study-of-unix-os
homeworkping3
 
UNIT III.pptx
UNIT III.pptxUNIT III.pptx
UNIT III.pptx
YogapriyaJ1
 
computer notes - Unix primer
computer notes - Unix primercomputer notes - Unix primer
computer notes - Unix primer
ecomputernotes
 
File Input/output, Database Access, Data Analysis with Pandas
File Input/output, Database Access, Data Analysis with PandasFile Input/output, Database Access, Data Analysis with Pandas
File Input/output, Database Access, Data Analysis with Pandas
Prabu U
 
PARALLEL FILE SYSTEM FOR LINUX CLUSTERS
PARALLEL FILE SYSTEM FOR LINUX CLUSTERSPARALLEL FILE SYSTEM FOR LINUX CLUSTERS
PARALLEL FILE SYSTEM FOR LINUX CLUSTERS
RaheemUnnisa1
 
Files and directories in Linux 6
Files and directories  in Linux 6Files and directories  in Linux 6
Files and directories in Linux 6
Meenakshi Paul
 
Unix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell ScriptUnix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell Script
sbmguys
 

Similar to Introduction One of the key goals for the Windows Subsystem for Li.pdf (20)

Linux File System.docx
Linux File System.docxLinux File System.docx
Linux File System.docx
 
CH11.pdf
CH11.pdfCH11.pdf
CH11.pdf
 
linux-file-system01.ppt
linux-file-system01.pptlinux-file-system01.ppt
linux-file-system01.ppt
 
Unit 7
Unit 7Unit 7
Unit 7
 
Locus Distributed Operating System
Locus Distributed Operating SystemLocus Distributed Operating System
Locus Distributed Operating System
 
File system security
File system securityFile system security
File system security
 
Linux fundamentals
Linux fundamentalsLinux fundamentals
Linux fundamentals
 
file management
 file management file management
file management
 
009709863.pdf
009709863.pdf009709863.pdf
009709863.pdf
 
File system hiearchy
File system hiearchyFile system hiearchy
File system hiearchy
 
File system.
File system.File system.
File system.
 
Learn about the File Concept in operating systems ppt
Learn about the File Concept in operating systems pptLearn about the File Concept in operating systems ppt
Learn about the File Concept in operating systems ppt
 
Chapter 10 - File System Interface
Chapter 10 - File System InterfaceChapter 10 - File System Interface
Chapter 10 - File System Interface
 
84640411 study-of-unix-os
84640411 study-of-unix-os84640411 study-of-unix-os
84640411 study-of-unix-os
 
UNIT III.pptx
UNIT III.pptxUNIT III.pptx
UNIT III.pptx
 
computer notes - Unix primer
computer notes - Unix primercomputer notes - Unix primer
computer notes - Unix primer
 
File Input/output, Database Access, Data Analysis with Pandas
File Input/output, Database Access, Data Analysis with PandasFile Input/output, Database Access, Data Analysis with Pandas
File Input/output, Database Access, Data Analysis with Pandas
 
PARALLEL FILE SYSTEM FOR LINUX CLUSTERS
PARALLEL FILE SYSTEM FOR LINUX CLUSTERSPARALLEL FILE SYSTEM FOR LINUX CLUSTERS
PARALLEL FILE SYSTEM FOR LINUX CLUSTERS
 
Files and directories in Linux 6
Files and directories  in Linux 6Files and directories  in Linux 6
Files and directories in Linux 6
 
Unix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell ScriptUnix/Linux Basic Commands and Shell Script
Unix/Linux Basic Commands and Shell Script
 

More from anwarfoot

0 to -1 Solution 0 to -1 .pdf
  0 to -1  Solution  0 to -1  .pdf  0 to -1  Solution  0 to -1  .pdf
0 to -1 Solution 0 to -1 .pdf
anwarfoot
 
phosphate group and deoxyribose The groups are .pdf
                     phosphate group and deoxyribose  The groups are  .pdf                     phosphate group and deoxyribose  The groups are  .pdf
phosphate group and deoxyribose The groups are .pdf
anwarfoot
 
Osmosis .pdf
                     Osmosis                                      .pdf                     Osmosis                                      .pdf
Osmosis .pdf
anwarfoot
 
in case of solid oxygen the atoms of oxygen are s.pdf
                     in case of solid oxygen the atoms of oxygen are s.pdf                     in case of solid oxygen the atoms of oxygen are s.pdf
in case of solid oxygen the atoms of oxygen are s.pdf
anwarfoot
 
Yeast is a microorganism and doesnt itself rise.pdf
                     Yeast is a microorganism and doesnt itself rise.pdf                     Yeast is a microorganism and doesnt itself rise.pdf
Yeast is a microorganism and doesnt itself rise.pdf
anwarfoot
 
First, lets analyze what each component of the .pdf
                     First, lets analyze what each component of the .pdf                     First, lets analyze what each component of the .pdf
First, lets analyze what each component of the .pdf
anwarfoot
 
when they reach equilibrium te cell potential is .pdf
                     when they reach equilibrium te cell potential is .pdf                     when they reach equilibrium te cell potential is .pdf
when they reach equilibrium te cell potential is .pdf
anwarfoot
 
E° = 0.07 - (0.14)     = 0.21 V 2UO22+(aq) + Sn(s.pdf
                     E° = 0.07 - (0.14)     = 0.21 V 2UO22+(aq) + Sn(s.pdf                     E° = 0.07 - (0.14)     = 0.21 V 2UO22+(aq) + Sn(s.pdf
E° = 0.07 - (0.14)     = 0.21 V 2UO22+(aq) + Sn(s.pdf
anwarfoot
 
D) Not B) because Cl-Benzene bond develops a doub.pdf
                     D) Not B) because Cl-Benzene bond develops a doub.pdf                     D) Not B) because Cl-Benzene bond develops a doub.pdf
D) Not B) because Cl-Benzene bond develops a doub.pdf
anwarfoot
 
YesBecause (1,1) is missing, it is not reflexive though (3,3) (2,2.pdf
YesBecause (1,1) is missing, it is not reflexive though (3,3) (2,2.pdfYesBecause (1,1) is missing, it is not reflexive though (3,3) (2,2.pdf
YesBecause (1,1) is missing, it is not reflexive though (3,3) (2,2.pdf
anwarfoot
 
We know that from Nernst Equation ,E o cell = E o – ( 0.059 n ) .pdf
We know that from Nernst Equation ,E o cell = E o – ( 0.059  n ) .pdfWe know that from Nernst Equation ,E o cell = E o – ( 0.059  n ) .pdf
We know that from Nernst Equation ,E o cell = E o – ( 0.059 n ) .pdf
anwarfoot
 
lower.. think about it.. take a straw draw a line.pdf
                     lower.. think about it.. take a straw draw a line.pdf                     lower.. think about it.. take a straw draw a line.pdf
lower.. think about it.. take a straw draw a line.pdf
anwarfoot
 
r= 1+ sin theta drd = cos = 0Therefore = 2Solutionr=.pdf
r= 1+ sin theta drd = cos = 0Therefore = 2Solutionr=.pdfr= 1+ sin theta drd = cos = 0Therefore = 2Solutionr=.pdf
r= 1+ sin theta drd = cos = 0Therefore = 2Solutionr=.pdf
anwarfoot
 
From left to right iodocyclopropane; 1-bromo-3-m.pdf
                     From left to right iodocyclopropane; 1-bromo-3-m.pdf                     From left to right iodocyclopropane; 1-bromo-3-m.pdf
From left to right iodocyclopropane; 1-bromo-3-m.pdf
anwarfoot
 
For inorganic compounds Chemical properties remai.pdf
                     For inorganic compounds Chemical properties remai.pdf                     For inorganic compounds Chemical properties remai.pdf
For inorganic compounds Chemical properties remai.pdf
anwarfoot
 
n=4 l=3 we know that L=h2(l(l+1))L=3.710-34Solutionn.pdf
n=4 l=3 we know that L=h2(l(l+1))L=3.710-34Solutionn.pdfn=4 l=3 we know that L=h2(l(l+1))L=3.710-34Solutionn.pdf
n=4 l=3 we know that L=h2(l(l+1))L=3.710-34Solutionn.pdf
anwarfoot
 
Over forty interstellar molecules have been found, ranging from simp.pdf
Over forty interstellar molecules have been found, ranging from simp.pdfOver forty interstellar molecules have been found, ranging from simp.pdf
Over forty interstellar molecules have been found, ranging from simp.pdf
anwarfoot
 
One of the four prominent symptoms of typhoid is coated tongue. Even.pdf
One of the four prominent symptoms of typhoid is coated tongue. Even.pdfOne of the four prominent symptoms of typhoid is coated tongue. Even.pdf
One of the four prominent symptoms of typhoid is coated tongue. Even.pdf
anwarfoot
 
Meselson and Stahl in 1957 gave experimental evidence that each DNA .pdf
Meselson and Stahl in 1957 gave experimental evidence that each DNA .pdfMeselson and Stahl in 1957 gave experimental evidence that each DNA .pdf
Meselson and Stahl in 1957 gave experimental evidence that each DNA .pdf
anwarfoot
 
import java.awt.BorderLayout; import java.awt.Color; import java.pdf
import java.awt.BorderLayout; import java.awt.Color; import java.pdfimport java.awt.BorderLayout; import java.awt.Color; import java.pdf
import java.awt.BorderLayout; import java.awt.Color; import java.pdf
anwarfoot
 

More from anwarfoot (20)

0 to -1 Solution 0 to -1 .pdf
  0 to -1  Solution  0 to -1  .pdf  0 to -1  Solution  0 to -1  .pdf
0 to -1 Solution 0 to -1 .pdf
 
phosphate group and deoxyribose The groups are .pdf
                     phosphate group and deoxyribose  The groups are  .pdf                     phosphate group and deoxyribose  The groups are  .pdf
phosphate group and deoxyribose The groups are .pdf
 
Osmosis .pdf
                     Osmosis                                      .pdf                     Osmosis                                      .pdf
Osmosis .pdf
 
in case of solid oxygen the atoms of oxygen are s.pdf
                     in case of solid oxygen the atoms of oxygen are s.pdf                     in case of solid oxygen the atoms of oxygen are s.pdf
in case of solid oxygen the atoms of oxygen are s.pdf
 
Yeast is a microorganism and doesnt itself rise.pdf
                     Yeast is a microorganism and doesnt itself rise.pdf                     Yeast is a microorganism and doesnt itself rise.pdf
Yeast is a microorganism and doesnt itself rise.pdf
 
First, lets analyze what each component of the .pdf
                     First, lets analyze what each component of the .pdf                     First, lets analyze what each component of the .pdf
First, lets analyze what each component of the .pdf
 
when they reach equilibrium te cell potential is .pdf
                     when they reach equilibrium te cell potential is .pdf                     when they reach equilibrium te cell potential is .pdf
when they reach equilibrium te cell potential is .pdf
 
E° = 0.07 - (0.14)     = 0.21 V 2UO22+(aq) + Sn(s.pdf
                     E° = 0.07 - (0.14)     = 0.21 V 2UO22+(aq) + Sn(s.pdf                     E° = 0.07 - (0.14)     = 0.21 V 2UO22+(aq) + Sn(s.pdf
E° = 0.07 - (0.14)     = 0.21 V 2UO22+(aq) + Sn(s.pdf
 
D) Not B) because Cl-Benzene bond develops a doub.pdf
                     D) Not B) because Cl-Benzene bond develops a doub.pdf                     D) Not B) because Cl-Benzene bond develops a doub.pdf
D) Not B) because Cl-Benzene bond develops a doub.pdf
 
YesBecause (1,1) is missing, it is not reflexive though (3,3) (2,2.pdf
YesBecause (1,1) is missing, it is not reflexive though (3,3) (2,2.pdfYesBecause (1,1) is missing, it is not reflexive though (3,3) (2,2.pdf
YesBecause (1,1) is missing, it is not reflexive though (3,3) (2,2.pdf
 
We know that from Nernst Equation ,E o cell = E o – ( 0.059 n ) .pdf
We know that from Nernst Equation ,E o cell = E o – ( 0.059  n ) .pdfWe know that from Nernst Equation ,E o cell = E o – ( 0.059  n ) .pdf
We know that from Nernst Equation ,E o cell = E o – ( 0.059 n ) .pdf
 
lower.. think about it.. take a straw draw a line.pdf
                     lower.. think about it.. take a straw draw a line.pdf                     lower.. think about it.. take a straw draw a line.pdf
lower.. think about it.. take a straw draw a line.pdf
 
r= 1+ sin theta drd = cos = 0Therefore = 2Solutionr=.pdf
r= 1+ sin theta drd = cos = 0Therefore = 2Solutionr=.pdfr= 1+ sin theta drd = cos = 0Therefore = 2Solutionr=.pdf
r= 1+ sin theta drd = cos = 0Therefore = 2Solutionr=.pdf
 
From left to right iodocyclopropane; 1-bromo-3-m.pdf
                     From left to right iodocyclopropane; 1-bromo-3-m.pdf                     From left to right iodocyclopropane; 1-bromo-3-m.pdf
From left to right iodocyclopropane; 1-bromo-3-m.pdf
 
For inorganic compounds Chemical properties remai.pdf
                     For inorganic compounds Chemical properties remai.pdf                     For inorganic compounds Chemical properties remai.pdf
For inorganic compounds Chemical properties remai.pdf
 
n=4 l=3 we know that L=h2(l(l+1))L=3.710-34Solutionn.pdf
n=4 l=3 we know that L=h2(l(l+1))L=3.710-34Solutionn.pdfn=4 l=3 we know that L=h2(l(l+1))L=3.710-34Solutionn.pdf
n=4 l=3 we know that L=h2(l(l+1))L=3.710-34Solutionn.pdf
 
Over forty interstellar molecules have been found, ranging from simp.pdf
Over forty interstellar molecules have been found, ranging from simp.pdfOver forty interstellar molecules have been found, ranging from simp.pdf
Over forty interstellar molecules have been found, ranging from simp.pdf
 
One of the four prominent symptoms of typhoid is coated tongue. Even.pdf
One of the four prominent symptoms of typhoid is coated tongue. Even.pdfOne of the four prominent symptoms of typhoid is coated tongue. Even.pdf
One of the four prominent symptoms of typhoid is coated tongue. Even.pdf
 
Meselson and Stahl in 1957 gave experimental evidence that each DNA .pdf
Meselson and Stahl in 1957 gave experimental evidence that each DNA .pdfMeselson and Stahl in 1957 gave experimental evidence that each DNA .pdf
Meselson and Stahl in 1957 gave experimental evidence that each DNA .pdf
 
import java.awt.BorderLayout; import java.awt.Color; import java.pdf
import java.awt.BorderLayout; import java.awt.Color; import java.pdfimport java.awt.BorderLayout; import java.awt.Color; import java.pdf
import java.awt.BorderLayout; import java.awt.Color; import java.pdf
 

Recently uploaded

Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
paigestewart1632
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
Smart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICTSmart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICT
simonomuemu
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
taiba qazi
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
IreneSebastianRueco1
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
RitikBhardwaj56
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
PECB
 

Recently uploaded (20)

Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
Smart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICTSmart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICT
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
 

Introduction One of the key goals for the Windows Subsystem for Li.pdf

  • 1. Introduction One of the key goals for the Windows Subsystem for Linux is to allow users to work with their files as they would on Linux, while giving full interoperability with files the user already has on their Windows machine. Unlike a virtual machine, where you have to use network shares or other solutions to share files between the host and guest OS, WSL has direct access to all your Windows drives to allow for easy interop. Windows file systems differ substantially from Linux file systems, and this post looks into how WSL bridges those two worlds. File systems on Linux Linux abstracts file systems operations through the Virtual File System (VFS), which provides both an interface for user mode programs to interact with the file system (through system calls such as open, read, chmod, stat, etc.) and an interface that file systems have to implement. This allows multiple file systems to coexist, providing the same operations and semantics, with VFS giving a single namespace view of all these file systems to the user. File systems are mounted on different directories in this namespace. For example, on a typical Linux system your hard drive may be mounted at the root, /, with directories such as /dev, /proc, /sys, and /mnt/cdrom all mounting different file systems which may be on different devices. Examples of file systems used on Linux include ext4, rfs, FAT, and others. VFS implements the various system calls for file system operations by using a number of data structures such as inodes, directory entries and files, and related callbacks that file systems must implement. Inodes The inode is the central data structure used in VFS. It represents a file system object such as a regular file, directory, symbolic link, etc. An inode contains information about the file type, size, permissions, last modified time, and other attributes. For many common Linux disk file systems such as ext4, the on-disk data structures used to represent file metadata directly correspond to the inode structure used by the Linux kernel. While an inode represents a file, it does not represent a file name. A single file may have multiple names, or hard links, but only one inode. File systems provide a lookup callback to VFS which is used to retrieve an inode for a particular file, based on the parent inode and the child name. File systems must implement a number of other inode operations such as chmod, stat, open, etc. Directory entries VFS uses a directory entry cache to represent your file system namespace. Directory entries only exist in memory, and contain a pointer to the inode for the file. For example, if you have a path
  • 2. like /home/user/foo, there is a directory entry for home, user, and foo, each with a pointer to an inode. Directory entries are cached for fast lookup, but if an entry is not yet in the cache, the inode lookup operation is used to retrieve the inode from the file system so a new directory entry can be created. File objects When an inode is opened, a file object is created for that file which keeps track of things like the file offset and whether the file was opened for read, write or both. File systems must provide a number of file operations such as read, write, sync, etc. File descriptors Applications refer to file objects through file descriptors. These are numeric values, unique to a process, that refer to any files the process has open. File descriptors can refer to other types of objects that provide a file-like interface in Linux, including ttys, sockets, and pipes. Multiple file descriptors can refer to the same file object, e.g. through use of the dup system call. Special file types Besides just regular files and directories, Linux supports a number of additional file types. These include device files, FIFOs, sockets, and symbolic links. Some of these files affect how paths are parsed. Symbolic links are special files that refer to a different file or directory, and following them is handled seamlessly by VFS. If you open the path /foo/bar/baz and bar is a symbolic link to /zed, then you will actually open /zed/baz instead. Similarly, a directory may be used as a mount point for another file system. In this case, when a path crosses this directory, all inode operations below the mount point go to the new file system. Special and pseudo file systems Linux uses a number of file systems that don’t read files from a disk. TmpFs is used as a temporary, in-memory file system, whose contents will not be persisted. ProcFs and SysFs both provide access to kernel information about processes, devices and drivers. These file systems do not have a disk, network or other device associated with them, and instead are virtualized by the kernel. File systems on Windows Windows generalizes all system resources into objects. These include not just files, but also things like threads, shared memory sections, and timers, just to name a few. All requests to open a file ultimately go through the Object Manager in the NT kernel, which routes the request through the I/O Manager to the correct file system driver. The interface that file system drivers implement in Windows is more generic and enforces fewer requirements. For example, there is no common inode structure or anything similar, nor is there a directory entry; instead, file system drivers such as ntfs.sys are responsible for resolving paths and opening file objects. File systems in Windows are typically mounted on drive letters like C:, D:, etc., although they
  • 3. can be mounted on directories in other file systems as well. These drive letters are actually a construct of Win32, and not something that the Object Manager directly deals with. The Object Manager keeps a namespace that looks similar to the Linux file system namespace, rooted in , with file system volumes represented by device objects with paths like DeviceHarddiskVolume1. When you open a file using a path like C:foobar, the Win32 CreateFile call translates this to an NT path of the form DosDeviceC:foobar, where DosDeviceC: is actually a symbolic link to, for example, DeviceHarddiskVolume4. Therefore, the real full path to the file is actually DeviceHarddiskVolume4foobar. The object manager resolves each component of the path, similar to how VFS would in Linux, until it encounters the device object. At this point, it forwards the request to the I/O manager, which creates an I/O Request Packet (IRP) with the remaining path, which it sends to the file system driver for the device. File objects When a file is opened, the object manager creates a file object for it. Instead of file descriptors, the object manager provides handles to file objects. Handles can actually refer to any object manager object, not just files. When you call a system call like NtReadFile (typically through the Win32 ReadFile function), the I/O manager again creates an IRP to send down to the file system driver for the file object to perform the request. Because there are no inodes or anything similar in NT, most operations on files in Windows require a file object. Reparse points Windows only supports two file types: regular files and directories. Both files and directories can be reparse points, which are special files that have a fixed header and a block of arbitrary data. The header includes a tag that identifies the type of reparse point, which must be handled by a file system filter driver, or for built-in reparse point types, the I/O manager itself. Reparse points are used to implement symbolic links and mount points. In these cases, the tag indicates that the reparse point is a symbolic link or mount, and the data associated with the reparse point contains the link target, or volume name for mount points. Reparse points can also be used for other functionality such as the placeholder files used by OneDrive in Windows 8. Solution Introduction One of the key goals for the Windows Subsystem for Linux is to allow users to work with their files as they would on Linux, while giving full interoperability with files the user already has on
  • 4. their Windows machine. Unlike a virtual machine, where you have to use network shares or other solutions to share files between the host and guest OS, WSL has direct access to all your Windows drives to allow for easy interop. Windows file systems differ substantially from Linux file systems, and this post looks into how WSL bridges those two worlds. File systems on Linux Linux abstracts file systems operations through the Virtual File System (VFS), which provides both an interface for user mode programs to interact with the file system (through system calls such as open, read, chmod, stat, etc.) and an interface that file systems have to implement. This allows multiple file systems to coexist, providing the same operations and semantics, with VFS giving a single namespace view of all these file systems to the user. File systems are mounted on different directories in this namespace. For example, on a typical Linux system your hard drive may be mounted at the root, /, with directories such as /dev, /proc, /sys, and /mnt/cdrom all mounting different file systems which may be on different devices. Examples of file systems used on Linux include ext4, rfs, FAT, and others. VFS implements the various system calls for file system operations by using a number of data structures such as inodes, directory entries and files, and related callbacks that file systems must implement. Inodes The inode is the central data structure used in VFS. It represents a file system object such as a regular file, directory, symbolic link, etc. An inode contains information about the file type, size, permissions, last modified time, and other attributes. For many common Linux disk file systems such as ext4, the on-disk data structures used to represent file metadata directly correspond to the inode structure used by the Linux kernel. While an inode represents a file, it does not represent a file name. A single file may have multiple names, or hard links, but only one inode. File systems provide a lookup callback to VFS which is used to retrieve an inode for a particular file, based on the parent inode and the child name. File systems must implement a number of other inode operations such as chmod, stat, open, etc. Directory entries VFS uses a directory entry cache to represent your file system namespace. Directory entries only exist in memory, and contain a pointer to the inode for the file. For example, if you have a path like /home/user/foo, there is a directory entry for home, user, and foo, each with a pointer to an inode. Directory entries are cached for fast lookup, but if an entry is not yet in the cache, the inode lookup operation is used to retrieve the inode from the file system so a new directory entry can be created.
  • 5. File objects When an inode is opened, a file object is created for that file which keeps track of things like the file offset and whether the file was opened for read, write or both. File systems must provide a number of file operations such as read, write, sync, etc. File descriptors Applications refer to file objects through file descriptors. These are numeric values, unique to a process, that refer to any files the process has open. File descriptors can refer to other types of objects that provide a file-like interface in Linux, including ttys, sockets, and pipes. Multiple file descriptors can refer to the same file object, e.g. through use of the dup system call. Special file types Besides just regular files and directories, Linux supports a number of additional file types. These include device files, FIFOs, sockets, and symbolic links. Some of these files affect how paths are parsed. Symbolic links are special files that refer to a different file or directory, and following them is handled seamlessly by VFS. If you open the path /foo/bar/baz and bar is a symbolic link to /zed, then you will actually open /zed/baz instead. Similarly, a directory may be used as a mount point for another file system. In this case, when a path crosses this directory, all inode operations below the mount point go to the new file system. Special and pseudo file systems Linux uses a number of file systems that don’t read files from a disk. TmpFs is used as a temporary, in-memory file system, whose contents will not be persisted. ProcFs and SysFs both provide access to kernel information about processes, devices and drivers. These file systems do not have a disk, network or other device associated with them, and instead are virtualized by the kernel. File systems on Windows Windows generalizes all system resources into objects. These include not just files, but also things like threads, shared memory sections, and timers, just to name a few. All requests to open a file ultimately go through the Object Manager in the NT kernel, which routes the request through the I/O Manager to the correct file system driver. The interface that file system drivers implement in Windows is more generic and enforces fewer requirements. For example, there is no common inode structure or anything similar, nor is there a directory entry; instead, file system drivers such as ntfs.sys are responsible for resolving paths and opening file objects. File systems in Windows are typically mounted on drive letters like C:, D:, etc., although they can be mounted on directories in other file systems as well. These drive letters are actually a construct of Win32, and not something that the Object Manager directly deals with. The Object Manager keeps a namespace that looks similar to the Linux file system namespace, rooted in , with file system volumes represented by device objects with paths like
  • 6. DeviceHarddiskVolume1. When you open a file using a path like C:foobar, the Win32 CreateFile call translates this to an NT path of the form DosDeviceC:foobar, where DosDeviceC: is actually a symbolic link to, for example, DeviceHarddiskVolume4. Therefore, the real full path to the file is actually DeviceHarddiskVolume4foobar. The object manager resolves each component of the path, similar to how VFS would in Linux, until it encounters the device object. At this point, it forwards the request to the I/O manager, which creates an I/O Request Packet (IRP) with the remaining path, which it sends to the file system driver for the device. File objects When a file is opened, the object manager creates a file object for it. Instead of file descriptors, the object manager provides handles to file objects. Handles can actually refer to any object manager object, not just files. When you call a system call like NtReadFile (typically through the Win32 ReadFile function), the I/O manager again creates an IRP to send down to the file system driver for the file object to perform the request. Because there are no inodes or anything similar in NT, most operations on files in Windows require a file object. Reparse points Windows only supports two file types: regular files and directories. Both files and directories can be reparse points, which are special files that have a fixed header and a block of arbitrary data. The header includes a tag that identifies the type of reparse point, which must be handled by a file system filter driver, or for built-in reparse point types, the I/O manager itself. Reparse points are used to implement symbolic links and mount points. In these cases, the tag indicates that the reparse point is a symbolic link or mount, and the data associated with the reparse point contains the link target, or volume name for mount points. Reparse points can also be used for other functionality such as the placeholder files used by OneDrive in Windows 8.