In the vast world of Linux, where almost anything seems possible, there comes a point when someone asks:
“Why don’t we store data using network pings?”
And thus, PingFS was born—a file system so absurdly unconventional, you might think it’s a joke. But it’s not. This is the story of how Linux’s flexibility and a little network magic turned one of the simplest network commands, ping, into a file storage system. Yes, you read that right.
Disclaimer: PingFS is an experimental concept with no practical use, meant purely for exploring creative possibilities in Linux.
What Is PingFS?

You’ve probably used the ping command dozens of times. It’s that trusty tool you use to check if a server is alive, sending little packets of data and waiting for a response, just like knocking on a door and waiting for an echo.
But what if we took that echo and somehow… made it store data?
PingFS: An experimental, borderline insane file system that uses ICMP echo requests (ping packets) to store and retrieve data.
Instead of reading from your SSD or hard drive, PingFS reads and writes data over the network by measuring the time it takes for a ping to return. The latency? That’s your storage access time.
Absurd? Totally. Practical? Not even a little. But its existence shows just how far Linux’s flexibility can stretch—and it’s a brilliant stretch at that.
How PingFS Works
To fully appreciate PingFS, let’s break down what it’s doing:
- Ping as Storage: In PingFS, each ICMP echo request (ping) you send is treated as a read or write operation. Each response (the echo reply) is the “data” coming back. Instead of reading from a disk, you’re reading from a network.
- Latency as Access Time: The round-trip time (RTT) of a ping essentially becomes your storage speed. Imagine the delay you sometimes get while loading a webpage. Now picture that delay acting like the read speed of your hard drive!
- Simulating File Storage: PingFS doesn’t traditionally store the data. Instead, it’s more of an experiment to see how far you can push the concept of a file system. It’s a challenge to see if we can turn a ping — something never intended for storage — into a tool that reads and writes files.
Setting Up PingFS
If you’re feeling adventurous (or just want to impress your Linux-savvy friends with the weirdest thing you can run on a terminal), here’s a rough guide to setting up PingFS:
- Install PingFS: You’d need to hunt down the PingFS package or clone it from an obscure GitHub repository. It’s not exactly mainstream software.
In case you have an Ubuntu setup you can use the below commands to install dependencies:
sudo apt-get update
sudo apt-get install pkg-config
sudo apt-get install gcc
sudo apt-get install libfuse-dev
You need to run a make command with proper dependencies installed for your system.
2. Mount the File System: Once installed, you’ll mount PingFS like any other. Normally, you can create a directory.
sudo mkdir /mnt/data
3. Start Pinging for Data: Run a few pings and watch in awe as your terminal attempts to store and retrieve data via the magical power of ICMP.

The target_hosts file contains the host that you want to ping you need to create the file before running PingFS
4. Store Data: Create a file in the mounted directory and put some data into the file.
vi /mnt/datadata.txt
Be Prepared for Horrendous Performance: Remember, PingFS was not designed for speed. Or efficiency. Or really, any practical use at all. But it’s one of those things you try just to say you did.
PingFS In Action
When you create a file, like file.txt
, in the mounted PingFS directory and write data to it, you’re breaking that file into tiny pieces that get stored in ping packets.
These packets bounce back and forth between your machine and a remote server, and the system cleverly adjusts their size to fit your data.
Higher Latency = More “Storage Time”: If you ping a server far away, like one in Australia while you’re in the UK, it takes longer. This means your data has a bit more time to be stored as it travels.
Bouncing Packets: The ping packets keep going back and forth between your machine and the server. So, your data is stored in these packets while the ping is happening. It’s not saved in any permanent place but in these packets.
If you stop the ping process, those packets stop bouncing, and your data is gone for good. So when you remount the system, there’s nothing left. Your files were only stored in the motion of those packets, and without that, they vanished.
But… Why? The Philosophy of PingFS
You might be wondering why anyone would bother with PingFS when it’s so ridiculously useless. Linux’s ability to let you be creative and flexible is the key. They’re efficient, so projects like PingFS don’t exist. They exist to make you think. Their work challenges our ideas about what computers can do and what they’re capable of.
PingFS is a reminder that the journey is sometimes more important than the destination in a world where technology is all about speed and efficiency. It’s a silly experiment, a way to ask “What if?” about something straightforward like a “ping” command.
Closing Thought
PingFS won’t make the world a better place in the big picture. Your system won’t run faster, and it won’t take the place of your file system any time soon. You will think about computers differently after reading it. Inventions that push the limits, even if it’s just for fun, are sometimes the most important ones. They don’t always come from making things easier to use.
After all, where else but Linux can you turn a network ping into a file system?
If you would like to connect with me to discuss DevOps, connect here.