Join my adventure in exploring Operating Systems!
TOP 10 LIST WEEK 03
1. File
A file is an abstract data type defined and implemented by the OS. Files are stored in storage devices which are usually nonvolatile so that the contents are preserved even when there is no constant power to retain data.
2. Directory
A directory is a container that is used to contain folders and file. It organizes files and folders into a hierarchical manner.
Single-level: The simplest, faster, and easy implementation, but searching operations will be quite long if the directory is large.
Two-level: Several users can have same directory as well as file name but cannot share files with each other.
Tree-structured: Very generalize, scalable, and easy for searching but inefficient.
Acyclic graph: Can share files and easy searching. Deleting files via linking maybe a problem.
3. Remote File Systems
Remote file systems enable an application that runs on a client computer to access files stored on a different computer. Remote file systems also often make other resources (ex: remote printers) accessible from a client computer.
4. Consistency Checkers
Consistency Checker is one approach still used by older Linux-based systems to find and repair inconsistencies. It is not a complete solution and may still have inodes pointing to garbage data. The major focus is to make the metadata internally consistent.
5. Free Space Management
A file system is responsible to allocate the free blocks to the file therefore it has to keep track of all the free blocks present in the disk.
Bit vector: The free space list is implemented as a bit map vector. It contains the number of bits where each bit represents each block
Linked list: Linking together all the free blocks and keeping a pointer in the cache which points to the first free block.
6. File Access Methods
File access is a process that determines the way that files are accessed and read into memory.
Sequential Access: Records are accessed in a certain pre-defined sequence, information stored in the file is also processed one by one.
Random Access: Allows accessing the record directly. Each record has its own address on which can be directly accessed for reading and writing.
Index Sequential Access: An index is built for every file, with a direct pointer to different memory blocks.
Linked Allocation: Every file includes a list of links. The directory contains a link or pointer in the first block of a file. Not ideal for direct access
Index Allocation: Directory comprises the addresses of index blocks of the specific files.
Contiguous Allocation: Every file users a contiguous address space on memory.
8. WAFL File System
A proprietary file system that supports large, high-performance RAID arrays, quick restarts without lengthy consistency checks in the event of a crash or power failure, and growing the filesystems size quickly.
9. Virtual File System
An abstract layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way.
10.Network File System
NFS was designed in 1984 by Sun Microsystems. This distributed file system protocol allows a user on a client computer to access files over a network in the same way they would access a local storage file.