tmpfs - tmpfs
tmpfs - это парадигма временного файлового хранилища, реализованная во многих Unix-подобных операционных системах. Он должен выглядеть как смонтированная файловая система , но данные хранятся в энергозависимой памяти, а не на постоянном запоминающем устройстве. Похожая конструкция представляет собой RAM-диск , который выглядит как виртуальный диск и содержит файловую систему диска .
Семантика
Все, что хранится в tmpfs, является временным в том смысле, что никакие файлы не будут создаваться напрямую в энергонезависимом хранилище, таком как жесткий диск (хотя пространство подкачки используется в качестве резервного хранилища в случае нехватки памяти). При перезагрузке все в tmpfs будет потеряно.
Память, используемая tmpfs, увеличивается и уменьшается для размещения содержащихся в ней файлов.
Многие дистрибутивы Unix включают и используют tmpfs по умолчанию для ветви / tmp файловой системы или для общей памяти . Это можно наблюдать с помощью df, как в этом примере:
Filesystem Size Used Avail Use% Mounted on tmpfs 256M 688K 256M 1% /tmp
Однако в некоторых дистрибутивах Linux, таких как Debian, tmpfs по умолчанию не смонтирован в / tmp ; в этом случае файлы в / tmp будут храниться в той же файловой системе, что и / .
И почти во всех дистрибутивах Linux tmpfs монтируется в / run / или / var / run / для хранения временных файлов времени выполнения, таких как файлы PID и сокеты домена Unix.
Реализации
Существует несколько независимых вариантов концепции tmpfs. Одна из первых была разработана Sun Microsystems для SunOS, а другие операционные системы, такие как BSD и Linux, предоставили свои собственные.
SunOS
SunOS 4, скорее всего, является самой ранней реализацией tmpfs; он впервые появился в SunOS 4.0 в конце 1987 года вместе с новым управлением ортогональным адресным пространством, которое позволяло отображать в память любой объект.
Solaris / TMP каталог был сделан TMPFS файловой системы по умолчанию , начиная с Solaris 2.1, выпущенный в декабре 1992 года выход для Solaris df
команда покажет своп в качестве фона для хранения любого объема TMPFS:
# df -k
Filesystem kbytes used avail capacity Mounted on
swap 601592 0 601592 0% /tmp/test
Linux
tmpfs поддерживается ядром Linux, начиная с версии 2.4. Linux tmpfs (ранее известный как shmfs ) основан на коде ramfs, используемом во время загрузки, а также использует кеш страниц, но в отличие от ramfs он поддерживает замену менее используемых страниц для подкачки пространства, а также размер файловой системы и ограничения inode для предотвращения выхода. ситуаций с памятью (по умолчанию половина физического ОЗУ и половина количества страниц ОЗУ, соответственно).
BSD
4.2BSD представила MFS, файловую систему на основе памяти, реализованную путем применения существующей дисковой файловой системы FFS к области виртуальной памяти.
tmpfs, файловая система в памяти, реализованная с использованием обычных структур данных в памяти для повышения производительности MFS, была объединена с официальным деревом исходных текстов NetBSD 10 сентября 2005 г .; он доступен в версиях 4.0 и более поздних.
FreeBSD перенесла реализацию NetBSD, где она доступна в 7.0 и более поздних версиях.
DragonFly BSD также перенесла реализацию NetBSD, где она доступна в 2.5.1 и более поздних версиях.
OpenBSD также перенесла реализацию tmpfs NetBSD, первоначально начатую Педро Мартеллетто и улучшенную многими другими. Он был включен в сборках с 17 декабря 2013 года. Первым выпуском OpenBSD с включенным tmpfs был 5.5. OpenBSD 6.0 отключил tmpfs из-за отсутствия поддержки.
Рекомендации
Внешние ссылки
- "Справочная страница Solaris tmpfs (7FS)" . Проверено 25 февраля 2013 .
- "Документация Kernel.org tmpfs" . Проверено 5 октября 2015 .