Jump to content

tmpfs

tmpfs (сокращение от Temporary File реализованная System , 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 монтируется /запустить/ или /var/run/ для хранения временных файлов времени выполнения, таких как файлы PID и сокеты домена Unix .

Реализации

[ редактировать ]

Существует несколько независимых вариантов концепции tmpfs. Одна из первых была разработана Sun Microsystems для SunOS, а другие операционные системы, такие как BSD и Linux, предоставили свои собственные.

SunOS 4 включает, скорее всего, самую раннюю реализацию tmpfs; Впервые он появился в SunOS 4.0 в конце 1987 года вместе с новым управлением ортогональным адресным пространством, которое позволяло отображать в памяти любой объект. [1] [2]

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

 # df -k
 Filesystem  kbytes  used   avail capacity  Mounted on
 swap        601592     0  601592     0%    /tmp/test

tmpfs поддерживается ядром Linux , начиная с версии 2.4 (4 января 2001 г.). [5] Linux tmpfs (ранее известный как shm fs ) [6] основан на коде ramfs, используемом во время загрузки, а также использует кэш страниц , но в отличие от ramfs он поддерживает замену менее используемых страниц на пространство подкачки, а также ограничение размера файловой системы и индексных дескрипторов для предотвращения ситуаций нехватки памяти (по умолчанию — половина физическое ОЗУ и половина количества страниц ОЗУ соответственно). [7]

В 4.2BSD появилась MFS, [8] файловая система на основе памяти, реализованная путем применения существующей файловой системы диска FFS к области виртуальной памяти.

tmpfs, файловая система памяти, реализованная с использованием обычных структур данных в памяти для повышения производительности MFS, была объединена с официальным деревом исходного кода NetBSD 10 сентября 2005 г.; [9] он доступен в версии 4.0 и более поздних версиях.

FreeBSD перенесла реализацию NetBSD, где она доступна в версиях 7.0 и более поздних версиях. [10]

DragonFly BSD также перенесла реализацию NetBSD, где она доступна в версиях 2.5.1 и более поздних.

OpenBSD также перенесла реализацию tmpfs из NetBSD, первоначально начатую Педро Мартеллетто и улучшенную многими другими. Он был включен в сборках от 17 декабря 2013 года. [11] Первой версией OpenBSD с включенным tmpfs была версия 5.5. [12] OpenBSD 6.0 отключил tmpfs из-за отсутствия обслуживания.

Microsoft Windows

[ редактировать ]

В Microsoft Windows создавайте файлы, используя Флаг FILE_ATTRIBUTE_TEMPORARY заставит файловые системы избегать обратной записи данных в энергонезависимое хранилище, если доступно достаточно кэш-памяти. [13]

Преимущества

[ редактировать ]

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

Недостатки

[ редактировать ]

В системах без пространства подкачки или в системах, где пространство подкачки заканчивается, tmpfs может потреблять большие объемы памяти.

Если файлы кэша хранятся в tmpfs, программы потеряют свои кэшированные данные при перезагрузке.

  1. ^ Питер Снайдер. «tmpfs: файловая система виртуальной памяти» (PDF) . Проверено 7 мая 2007 г.
  2. ^ Хэл Л. Стерн. «Настройка производительности SunOS 4.1» . Архивировано из оригинала ( GZipped PostScript) 7 февраля 2012 г. Проверено 7 мая 2007 г.
  3. ^ «SPARC: Установка программного обеспечения Solaris» (PDF) . СанСофт. Декабрь 1992 г. с. 9 . Проверено 23 апреля 2019 г.
  4. ^ «Операционная система Solaris (Unix)» . операционная система.org .
  5. ^ Дэниел Роббинс (1 сентября 2001 г.). «Общие темы: Руководство по внедрению расширенной файловой системы, часть 3» . IBM DeveloperWorks . Архивировано из оригинала 3 февраля 2012 г. Проверено 15 февраля 2013 г.
  6. ^ Дэниел Роббинс (1 сентября 2001 г.). «Общие темы: Руководство по внедрению расширенной файловой системы, часть 3» . IBM DeveloperWorks . Архивировано из оригинала 3 февраля 2012 г. Проверено 15 февраля 2013 г.
  7. ^ Кристоф Роланд; Хью Дикинс; ЛОЖЬ Мотохиро. "tmpfs.txt " ядро.орг . Проверено 1 марта 2010 г.
  8. ^ «Справочная страница NetBSD mount_mfs(8)» . 08.12.2007 . Проверено 15 февраля 2013 г.
  9. ^ Хулио М. Мерино Видаль (24 февраля 2006 г.). «NetBSD-SoC: эффективная файловая система памяти» . Проверено 15 февраля 2013 г.
  10. ^ Синь Ли (23 апреля 2013 г.). «Справочная страница FreeBSD tmpfs(5)» . Проверено 2 декабря 2008 г.
  11. ^ «CVS: cvs.openbsd.org: src — включите tmpfs, чтобы его еще раз протестировали» .
  12. ^ «ОпенБСД 5.5» . 01.05.2014 . Проверено 1 мая 2014 г.
  13. ^ Альвинашкрафт (9 февраля 2023 г.). «Функция CreateFileA (fileapi.h) — приложения Win32» . Learn.microsoft.com . Проверено 27 июня 2024 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5493b27ad440759939bcdeba26611d1c__1719489240
URL1:https://arc.ask3.ru/arc/aa/54/1c/5493b27ad440759939bcdeba26611d1c.html
Заголовок, (Title) документа по адресу, URL1:
tmpfs - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)