Page 298 - DCAP404 _Object Oriented Programming
P. 298
Unit 13: Working with Files
Other bookkeeping information is typically associated with each file within a file system. The Notes
length of the data contained in a file may be stored as the number of blocks allocated for the file
or as an exact byte count. The time that the file was last modified may be stored as the file’s
timestamp. Some file systems also store the file creation time, the time it was last accessed, and
the time that the file’s meta-data was changed. (Note that many early PC operating systems did
not keep track of file times.) Other information can include the file’s device type (e.g., block,
character, socket, subdirectory, etc.), its owner user-ID and group-ID, and its access permission
settings (e.g., whether the file is read-only, executable, etc.).
The hierarchical file system was an early research interest of Dennis Ritchie of Unix fame;
previous implementations were restricted to only a few levels, notably the IBM implementations,
even of their early databases like IMS. After the success of Unix, Ritchie extended the file system
concept to every object in his later operating system developments, such as Plan 9 and Inferno.
Traditional file systems offer facilities to create, move and delete both files and directories. They
lack facilities to create additional links to a directory (hard links in Unix), rename parent links
(“..” in Unix-like OS), and create bidirectional links to files.
Traditional file systems also offer facilities to truncate, append to, create, move, delete and in-
place modify files. They do not offer facilities to prepend to or truncate from the beginning of a
file, let alone arbitrary insertion into or deletion from a file. The operations provided are highly
asymmetric and lack the generality to be useful in unexpected contexts. For example, interprocess
pipes in Unix have to be implemented outside of the file system because the pipes concept does
not offer truncation from the beginning of files.
Secure access to basic file system operations can be based on a scheme of access control lists or
capabilities. Research has shown access control lists to be difficult to secure properly, which is
why research operating systems tend to use capabilities. Commercial file systems still use
access control lists.
A file system is a method for storing and organizing computer files and the data they contain to
make it easy to find and access them. File systems may use a data storage device such as a hard
disk or CD-ROM and involve maintaining the physical location of the files, they might provide
access to data on a file server by acting as clients for a network protocol (e.g., NFS, SMB, or 9P
clients), or they may be virtual and exist only as an access method for virtual data.
More formally, a file system is a set of abstract data types that are implemented for the storage,
hierarchical organization, manipulation, navigation, access, and retrieval of data.
Task File systems share much in common with database technology, but it is debatable
whether a file system can be classified as a special-purpose database (DBMS). Analyze.
13.6.1 Types of File Systems
File system types can be classified into disk file systems, network file systems and special
purpose file systems.
1. Disk file systems: A disk file system is a file system designed for the storage of files on a
data storage device, most commonly a disk drive, which might be directly or indirectly
connected to the computer. Examples of disk file systems include FAT, FAT32, NTFS, HFS
and HFS+, ext2, ext3, ISO 9660, ODS-5, and UDF. Some disk file systems are journaling file
systems or versioning file systems.
LOVELY PROFESSIONAL UNIVERSITY 291