Designing a Simple File System with Blocks, Bitmaps, Inodes, and Directories
This article walks through the step‑by‑step design of a simple file system on a 1 TB disk, introducing logical blocks, block bitmaps, inode structures, directory handling, indirect indexing, superblocks, and hierarchical file organization, while comparing the design to the classic ext2 filesystem.
The tutorial starts by assuming a 1 TB hard disk and divides it into logical 1 KB blocks (each block = two physical sectors), creating 1024 blocks for a simplified 1 MB example. A block bitmap is introduced to track block usage, with block 0 reserved for the bitmap itself.
Files are stored by selecting a free block (e.g., block 3) and writing the file data there. To avoid overwriting, a bitmap records which blocks are used, and a separate inode bitmap tracks inode allocation.
Each file gets an inode (128 bytes) that stores metadata such as name, size, timestamps, and a pointer to the data block. The inode table occupies a fixed block (block 2) and the inode bitmap resides in block 1.
For larger files requiring multiple blocks, the design first uses contiguous allocation, then introduces indirect indexing: one block can store pointers to many data blocks, enabling a first‑level indirect index that expands the addressable space to 263 blocks, with the possibility of second‑level indexing for even larger files.
Directory support is added by defining a special file type for directories, storing directory entries (inode numbers, file types, and names) within data blocks. The root directory is fixed at inode 0, and hierarchical paths (e.g., folder/file.txt) are resolved by traversing directory inodes.
Additional structures such as a superblock (holding global counts of blocks, free blocks, inodes, etc.) and block descriptors are placed in the early blocks to simplify management when structures grow beyond a single block.
The final layout mirrors the classic Linux ext2 filesystem, with block bitmap, inode bitmap, inode table, data blocks, and directory structures, demonstrating a complete, extensible file system design.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
IT Services Circle
Delivering cutting-edge internet insights and practical learning resources. We're a passionate and principled IT media platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
