A file is a one-dimensional array of bytes that can contain ASCII or binary information. In this operating system, files can contain data, shell scripts, and programs. File names are also used to represent abstract objects such as sockets or device drivers.
Internally, files are represented by index nodes (i-nodes). Within this file system, an i-node is a 128-byte structure that contains all access, timestamp, ownership, and data location information for each file. Pointers within the i-node structure designate the real disk address of the data blocks associated with the file. An i-node is identified by an offset number (i-number) and has no file name information. The connection of i-numbers and file names is called a link.
File names exist only in directories. Directories are a unique type of file that give hierarchical structure to the file system. Directories contain directory entries. Each directory entry contains a file name and an i-number.
The journaled file system (JFS) is native to this operating system. The file system links the file and directory data to the structure used by storage and retrieval mechanisms. This chapter contains the following sections that further describe the journaled file system programming model:
Linking Files and Directories.
File Systems Overview for System Management explains file system types and the reorganized file tree structure.
List of Files and Directories Subroutines.
Header Files Overview.
Virtual File System Overview.
Input and Output Handling Programmer's Overview.
Understanding System Memory Allocation.
Special Files Overview describes specific qualities of the files that define devices.
Network File System (NFS) Overview for System Management.
Bach, Maurice. The Design of the UNIX Operating System. Englewood Cliffs, NJ: Prentice-Hall Press, 1986.
Leffler, Samuel J., McKusic, Marshall Kirk, Karels, Michael J., Quarterman, John S. The Design and Implementation of the 4.3 BSD UNIX Operating System. USA: Addison-Wesley Publishing Company, 1989.
Kernighan, Brian W., Pike, Rob. The UNIX Programming Environment. Englewood Cliffs, NJ: Prentice-Hall Press, 1984.