MINIX file system
Encyclopedia
History
MINIX was written from scratch by Andrew S. TanenbaumAndrew S. Tanenbaum
Andrew Stuart "Andy" Tanenbaum is a professor of computer science at the Vrije Universiteit, Amsterdam in the Netherlands. He is best known as the author of MINIX, a free Unix-like operating system for teaching purposes, and for his computer science textbooks, regarded as standard texts in the...
in the 1980s, as a Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
operating system whose source code could be used freely in education. The MINIX file system was designed for use with MINIX; it copies the basic structure of the Unix File System
Unix File System
The Unix file system is a file system used by many Unix and Unix-like operating systems. It is also called the Berkeley Fast File System, the BSD Fast File System or FFS...
but avoids any complex features in the interest of keeping the source code clean, clear and simple, to meet the overall goal of MINIX to be a useful teaching aid.
When Linus Torvalds
Linus Torvalds
Linus Benedict Torvalds is a Finnish software engineer and hacker, best known for having initiated the development of the open source Linux kernel. He later became the chief architect of the Linux kernel, and now acts as the project's coordinator...
first started writing his Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
operating system kernel (1991), he was working on a machine running MINIX, so the initial releases based a lot of functionality on Minix subsystems. Until the April 1992 introduction of the Extended file system
Extended file system
The extended file system or ext was implemented in April 1992 as the first file system created specifically for the Linux operating system. It has metadata structure inspired by the traditional Unix File System and was designed by Rémy Card to overcome certain limitations of the Minix file...
, Linux used the MINIX file system. The format is still used by some Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
distributions for bootable disks and other situations where a simple and compact file system is needed.
Design and implementation
A MINIX file system has six components:- The Boot BlockBoot sectorA boot sector or boot block is a region of a hard disk, floppy disk, optical disc, or other data storage device that contains machine code to be loaded into random-access memory by a computer system's built-in firmware...
which is always stored in the first block. It contains the boot loaderBootingIn computing, booting is a process that begins when a user turns on a computer system and prepares the computer to perform its normal operations. On modern computers, this typically involves loading and starting an operating system. The boot sequence is the initial set of operations that the...
that loads and runs an operating systemOperating systemAn operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
at system startup. - The second block is the Superblock which stores data about the file system, that allows the operating system to locate and understand other file system structures. For example, the number of inodes and zones, the size of the two bitmaps and the starting block of the data area.
- The inode bitmap is a simple map of the inodeInodeIn computing, an inode is a data structure on a traditional Unix-style file system such as UFS. An inode stores all the information about a regular file, directory, or other file system object, except its data and name....
s that tracks which ones are in use and which ones are free by representing them as either a one (in use) or a zero (free). - The zone bitmap works in the same way as the inode bitmap, except it tracks the zones.
- The inodes area. Each file or directory is represented as an inode, which records metadata including type (file, directory, block, char, pipe), ids for user and group, three timestamps that record the date and time of last access, last modification and last status change. An inode also contains a list of addresses that point to the zones in the data area where the file or directory data is actually stored.
- The data area is the largest component of the file system, using the majority of the space. It is where the actual file and directory data are stored.