πfs: новая файловая система, с которой вам не придётся беспокоиться о данных
7К открытий7К показов
Вчера неофициально отмечался день числа пи, и мы нашли на GitHub исходники интересной файловой системы πfs. Вместо того, чтобы тратить место на жёстком диске, храните данные в π! В этом числе содержится любой доступный файл, поэтому у вас никогда не кончится место, да и сжатие практически стопроцентное ?
πfs очень легко собрать. Сперва вам нужно установить пакеты autoconf, automake и libfuse. Например, на Debian это делается так:
πfs очень просто использовать:
где metadata directory — это место, где πfs должна хранить метаданные (имена файлов и их местоположения в π), а mountpoint — это точка монтирования вашей обычной файловой системы.
Но как связаны число π и мои данные?
π (или «пи») — это одна из важнейших математических констант, которая обладает интересными свойствами (подробнее о них можно узнать на Википедии).
Одно из свойств заключается в том, что число π считается нормальным, то есть все цифры в его записи распределены нормально, и что эти цифры образуют дизъюнктивную последовательность, то есть в записи числа можно найти любую конечную последовательность цифр. В шестнадцатеричной системе счисления это свойство выполняется, значит, в π существуют все возможные файлы. Впервые этот факт был обнаружен в 2001 году.
Теперь возникает вопрос: зачем тратить эксабайты на хранение этих данных, если их можно просто найти в π?
И что, прям совсем любой?
Именно! Любой, который создали вы, кто-то другой и который ещё вообще не создали! Нарушение авторских прав? Бросьте, это лишь несколько цифр числа π! Они всегда там были!
Но как найти там мои данные?
Если вы знаете, с какой по счёту цифры числа начинается ваш файл и его длину, его легко извлечь при помощи формулы Бэйли-Боруэйна-Плаффа. Кроме того, её можно использовать для поиска той самой первой цифры.
Чем длиннее искомая последовательность, тем дольше её искать, поэтому есть смысл разбить файлы на небольшие блоки. В этой реализации для повышения производительности файлы разбиваются на отдельные байты, которые ищутся в π.
Я нашёл свои байты, но как запомнить их местоположение?
Ну, вы всегда можете их записать на листок бумаги — но почему бы не записать их в π? Более того, местоположения файлов в числе — это метаданные, и даже если вы их потеряете, сами данные останутся в π — куда им оттуда деться?
Но почему она такая медленная? Файл в 400 строк записывался целых 5 минут!
Это лишь прототип, но не стоит забывать про закон Мура ?
7К открытий7К показов