Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

tmpfs - это парадигма временного файлового хранилища, реализованная во многих Unix-подобных операционных системах. Он должен выглядеть как смонтированная файловая система , но данные хранятся в энергозависимой памяти, а не на постоянном запоминающем устройстве. Похожая конструкция представляет собой RAM-диск , который выглядит как виртуальный диск и содержит файловую систему диска .

Семантика [ править ]

Все, что хранится в tmpfs, является временным в том смысле, что никакие файлы не будут создаваться напрямую в энергонезависимом хранилище, таком как жесткий диск (хотя пространство подкачки используется как резервное хранилище в случае нехватки памяти). При перезагрузке все в tmpfs будет потеряно.

Память, используемая tmpfs, увеличивается и уменьшается для размещения содержащихся в ней файлов.

Многие дистрибутивы Unix включают и используют tmpfs по умолчанию для ветви / tmp файловой системы или для общей памяти . Это можно наблюдать с помощью df, как в этом примере:

Используемый размер файловой системы Доступность% Установлено наtmpfs 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]

Solaris / TMP каталог был сделан TMPFS файловой системы по умолчанию , начиная с Solaris 2.1, [3] выпущен в декабре 1992 года [4] Выход для Solaris команда покажет своп в качестве фона для хранения любого объема TMPFS:df

# df -k Файловая система, используемая в килобайтах, доступная емкость Монтировано на своп 601592 0 601592 0% / tmp / test

Linux [ править ]

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

Внешние ссылки [ править ]

  • "Справочная страница Solaris tmpfs (7FS)" . Проверено 25 февраля 2013 .
  • "Документация Kernel.org tmpfs" . Проверено 5 октября 2015 .