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 из-за отсутствия поддержки.

Рекомендации

  1. ^ Питер Снайдер. «tmpfs: файловая система виртуальной памяти» (PDF). Получено 2007-05-07.
  2. ^ Хэл Л. Стерн. «Настройка производительности SunOS 4.1» (GZip-архив PostScript). Получено 2007-05-07.
  3. ^ «SPARC: Установка программного обеспечения Solaris» (PDF). SunSoft. Декабрь 1992 г. с. 9. Получено 23 апреля, 2019.
  4. ^ «Операционная система Solaris (Unix)». operating-system.org.
  5. ^ Дэниел Роббинс (2001-09-01). «Общие темы: Расширенное руководство разработчика файловой системы, часть 3». IBM DeveloperWorks. Получено 2013-02-15.
  6. ^ Кристоф Роланд; Хью Дикинс; KOSAKI Motohiro. "tmpfs.txt". kernel.org. Получено 2010-03-16.
  7. ^ "Справочная страница по NetBSD mount_mfs (8)". 2007-12-08. Получено 2013-02-15.
  8. ^ Хулио М. Мерино Видаль (24 февраля 2006 г.). "NetBSD-SoC: эффективная файловая система памяти". Получено 2013-02-15.
  9. ^ Синь Ли (23 апреля 2013 г.). "Справочная страница FreeBSD tmpfs (5)". Получено 2008-12-02.
  10. ^ "CVS: cvs.openbsd.org: src - включите tmpfs, чтобы его еще немного протестировали".
  11. ^ «OpenBSD 5.5». 2014-05-01. Получено 2014-05-01.

внешняя ссылка