Tmpfs - Tmpfs
tmpfs это временный файл парадигма хранения реализована во многих Unix-подобный операционные системы. Он должен выглядеть как смонтированный файловая система, но данные хранятся в энергозависимая память вместо постоянного запоминающего устройства. Аналогичная конструкция представляет собой RAM-диск, который выглядит как виртуальный диск и содержит файловая система на диске.
Семантика
Все, что хранится в tmpfs, является временным в том смысле, что файлы не будут создаваться напрямую в энергонезависимая память например, жесткий диск (несмотря на то что место подкачки используется как резервное хранилище в случае нехватки памяти). На перезагрузка, все в tmpfs будет потеряно.
Память, используемая tmpfs, увеличивается и уменьшается для размещения содержащихся в ней файлов.
Многие Unix распределения включить и использовать tmpfs по умолчанию для / tmp ветвь файловой системы или для Общая память. Это можно наблюдать с df как в этом примере:
Используемый размер файловой системы Доступность% Смонтировано ontmpfs 256M 688K 256M 1% / tmp
В некоторых дистрибутивах Linux (например, Debian, Ubuntu) / tmp является обычным каталогом, но / dev / shm использует tmpfs.
Реализации
Существует несколько независимых вариантов концепции tmpfs. Один из первых был разработан Sun Microsystems для SunOS и других операционных систем, таких как BSD и Linux, предоставили свои собственные.
SunOS
SunOS 4 включает то, что, скорее всего, является самой ранней реализацией tmpfs; он впервые появился в SunOS 4.0 в конце 1987 года вместе с новым управлением ортогональным адресным пространством, которое позволяло отображать в память любой объект.[1][2]
В Солярис / tmp директория была сделана файловой системой tmpfs по умолчанию, начиная с Solaris 2.1,[3] выпущен в декабре 1992 г.[4] Выход для Solaris df
команда покажет замена в качестве фонового хранилища для любого тома tmpfs:
# df -kФайловая система Используемая свободная емкость в килобайтах Установлено насвоп 601592 0 601592 0% / tmp / test
Linux
tmpfs поддерживается Ядро Linux начиная с версии 2.4.[5] Linux tmpfs (ранее известный как шмфс) основан на коде ramfs, используемом во время загрузки, и также использует кеш страниц, но в отличие от ramfs он поддерживает замену менее используемых страниц для подкачки пространства, а также размер файловой системы и ограничения inode для предотвращения недостаточно памяти ситуаций (по умолчанию половина физической RAM и половина количества страниц RAM соответственно).[6]
BSD
4.2BSD представил MFS,[7] файловая система на основе памяти, реализованная путем применения существующих FFS дисковую файловую систему в область виртуальной памяти.
tmpfs, файловая система в памяти, реализованная с использованием обычных структур данных в памяти для повышения производительности MFS, была объединена с официальной NetBSD исходное дерево 10 сентября 2005 г .;[8] он доступен в версиях 4.0 и более поздних.
FreeBSD перенесла реализацию NetBSD, где она доступна в 7.0 и более поздних версиях.[9]
DragonFly BSD также перенесла реализацию NetBSD, где она доступна в 2.5.1 и более поздних версиях.
OpenBSD также перенесена реализация tmpfs NetBSD, первоначально начатая Педро Мартеллетто и улучшенная многими другими. Он был включен в сборках с 17 декабря 2013 года.[10] Первый выпуск OpenBSD с включенным tmpfs - 5.5.[11] OpenBSD 6.0 отключил tmpfs из-за отсутствия поддержки.
Рекомендации
- ^ Питер Снайдер. «tmpfs: файловая система виртуальной памяти» (PDF). Получено 2007-05-07.
- ^ Хэл Л. Стерн. «Настройка производительности SunOS 4.1» (GZip-архив PostScript). Получено 2007-05-07.
- ^ «SPARC: Установка программного обеспечения Solaris» (PDF). SunSoft. Декабрь 1992 г. с. 9. Получено 23 апреля, 2019.
- ^ «Операционная система Solaris (Unix)». operating-system.org.
- ^ Дэниел Роббинс (2001-09-01). «Общие темы: Расширенное руководство разработчика файловой системы, часть 3». IBM DeveloperWorks. Получено 2013-02-15.
- ^ Кристоф Роланд; Хью Дикинс; KOSAKI Motohiro. "tmpfs.txt". kernel.org. Получено 2010-03-16.
- ^ "Справочная страница по NetBSD mount_mfs (8)". 2007-12-08. Получено 2013-02-15.
- ^ Хулио М. Мерино Видаль (24 февраля 2006 г.). "NetBSD-SoC: эффективная файловая система памяти". Получено 2013-02-15.
- ^ Синь Ли (23 апреля 2013 г.). "Справочная страница FreeBSD tmpfs (5)". Получено 2008-12-02.
- ^ "CVS: cvs.openbsd.org: src - включите tmpfs, чтобы его еще немного протестировали".
- ^ «OpenBSD 5.5». 2014-05-01. Получено 2014-05-01.
внешняя ссылка
- "Справочная страница Solaris tmpfs (7FS)". Получено 2013-02-25.
- "Документация Kernel.org tmpfs". Получено 2015-10-05.