FauxFS A Bug-Infested File System for Learning
Mock file system with intentional bugs designed for fun

FauxFS: A Bug-Infested File System for Learning
Have you ever wanted to learn how to debug complex software systems in a safe and controlled environment? Introducing FauxFS, a mock file system written in Python, designed specifically for educational purposes. But here's the twist: FauxFS is riddled with intentional bugs, providing a unique and challenging learning experience for aspiring software engineers and seasoned developers alike.
What is FauxFS?
FauxFS is an in-memory mock file system that simulates the behavior of a real file system. It comes with basic features you'd expect:
Files and Directories: Create, delete, and manage files and directories.
Permissions: A Unix-like permission system with owner, group, and other read/write/execute permissions.
Interactive Shell: A command-line interface to interact with the file system using familiar commands like
ls,cd,mkdir,rm, and more.
You can create files, write content to them, organize them into directories, and manage their permissions, just like you would on a regular file system.
The Twist: Intentional Bugs
What sets FauxFS apart is its collection of 22 intentional bugs. These aren't accidental mistakes; they are carefully crafted flaws designed to mimic real-world software defects. The bugs are categorized into three difficulty levels:
Beginner: Simple issues like off-by-one errors and case sensitivity problems.
Intermediate: More complex bugs like race conditions and path traversal vulnerabilities.
Advanced: Deeply embedded issues such as deadlocks and integer overflows.
The goal isn't to have a perfect file system but to provide a playground for developers to hunt for and understand these bugs.
Why Learn with Bugs?
In the real world, software has bugs. Learning to find, understand, and fix them is a critical skill for any software engineer. FauxFS provides a safe environment to develop these skills without the risk of breaking a production system. By working with FauxFS, you will learn to:
Debug Filesystem Operations: Understand the common pitfalls in file system design and implementation.
Identify Memory Issues: Learn to spot memory leaks and buffer overflows.
Recognize Concurrency Problems: Get hands-on experience with race conditions and deadlocks.
Understand Security Vulnerabilities: Discover how permission systems can be bypassed.
Practice Systematic Debugging: Use tests, logging, and other tools to systematically hunt for bugs.
Getting Started
Getting started with FauxFS is easy. All you need is Python 3.13 or higher.
Clone the repository:
git clone https://github.com/rainzoo/fauxfs.git cd fauxfsBuild and run interactive container
docker build -t fauxfs:interactive .
docker run -it --rm fauxfs:interactive
Once you're in the FauxFS shell, you can start exploring the file system and hunting for bugs. Try running the test suite to see which tests fail, or experiment with edge cases to uncover hidden issues.
FauxFS is a learning tool that turns debugging into a fun and educational challenge. Whether you're a student learning about operating systems or a developer looking to sharpen your debugging skills, FauxFS offers a unique and valuable experience.
So, are you ready to go bug hunting? Clone the FauxFS repository and start exploring today! Refer to the docs directory for more instructions:





