Free linux что это

Free linux что это

malloc() распределяет size байтов и возвращает указатель на распределенную память. Память при этом не «очищается».

free() освобождает место в памяти, на которое указывает ptr , возвращенный, по-видимому, предшествующим вызовом функций malloc() , calloc() или realloc() . Иначе (или если уже вызывался free( ptr ) ) дальнейший ход событий непредсказуем. Если ptr равен NULL , то не выполняется никаких действий.

realloc() меняет размер блока памяти, на который указывает ptr, на размер, равный size байтов. Содержание будет неизменным в пределах наименьшего из старых и новых размеров, а новая распределенная память будет неинициализирована. Если ptr равно NULL , то данный вызов эквивалентен malloc(size) ; если размер равен нулю, то данный вызов эквивалентен free( ptr ) . Если только ptr не равен NULL , он, по-видимому, возвращен более ранним вызовом malloc() , calloc() или realloc() .

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

free() не возвращает значений.

realloc() возвращает указатель на память, которая должным образом повторно распределена для каждого типа переменных и может отличаться от ptr , или возвращает NULL , если запрос завершился с ошибкой. Если size был равен нулю, то возвращается либо NULL, либо указатель, который может быть передан free (). Если realloc() не выполнена, то блок памяти остается нетронутым: он не «очищается» и не перемещается.

СООТВЕТСТВИЕ СТАНДАРТАМ


СМ. ТАКЖЕ


ЗАМЕЧАНИЯ

Аварийные ситуации в malloc() , free() или realloc() почти всегда связаны с искажением данных кучи, например, с переполнением больших распределенных участков памяти или «освобождением» одного и того же указателя дважды.

Последние версии Linux библиотеки libc (более поздние по сравнению с 5.4.23) и GNU библиотеки libc (2.x) включают в себя реализации malloc, которые настраиваются с помощью переменных окружения. Когда включен MALLOC_CHECK_ , то используется специальная (менее эффективная) реализация, устойчивая к простейшим ошибкам, например, к двойным вызовам free() с теми же параметрами или превышению единственного байта (off-by-one bugs). Защититься от всех подобных ошибок, конечно, не получится, к тому же в этом случае могут происходить потери данных памяти. Если MALLOC_CHECK_ установлено равным нулю, то любое замеченное повреждение кучи незаметно игнорируется; если это значение установлено равным 1, то на stderr выводится сообщение об ошибке; а если устанавливаемое значение равно 2-м, то немедленно вызывается abort (). Это может быть полезно, так как иначе сбой может произойти гораздо позднее и настоящую причину ошибки будет очень трудно обнаружить.

Linux следует крайне самоуверенной стратегии распределения памяти. Это означает, что когда malloc() возвращает ненулевое значение, нет никаких гарантий, что память в действительности доступна. Если обнаружится, что системе не хватает памяти, то один или несколько процессов будут подло убиты OOM.

Источник

Команда free в Linux

Сколько свободной оперативной памяти доступно в моей системе Linux? Достаточно ли свободной памяти для установки и запуска новых приложений?

Читайте также:  Кодеки для linux fedora

В системах Linux вы можете использовать команду free чтобы получить подробный отчет об использовании памяти системой.

Команда free предоставляет информацию об общем объеме физической памяти и памяти подкачки , а также о свободной и используемой памяти.

Как использовать команду free

Синтаксис free команды следующий:

При использовании без какой-либо опции команда free будет отображать информацию о памяти и подкачке в кибибайтах. 1 кибибайт (КиБ) равен 1024 байтам.

Вывод будет включать три строки, заголовок, одну строку для памяти и одну для свопа:

Вот что означает каждый столбец:

  • total — это число представляет общий объем памяти, который может быть использован приложениями.
  • used — Используемая память. Он рассчитывается как: used = total — free — buffers — cache
  • бесплатно — Свободная / неиспользуемая память.
  • общий — этот столбец можно игнорировать, поскольку он не имеет значения. Это здесь только для обратной совместимости.
  • buff / cache — объединенная память, используемая буферами ядра, а также страничным кешем и блоками. Эта память может быть освобождена в любое время, если это необходимо приложениям. Если вы хотите, чтобы буферы и кеш отображались в двух отдельных столбцах, используйте параметр -w .
  • доступно — оценка объема памяти, доступного для запуска новых приложений без подкачки.

Отображение использования памяти в удобочитаемом формате

По умолчанию команда free показывает информацию о памяти в кибибайтах. Чтобы просмотреть информацию в удобочитаемом формате (обычно в мегабайтах и гигабайтах), используйте параметр -h :

Отображение использования памяти в других показателях

Команда free также позволяет вам указать единицы измерения памяти. Допустимые варианты:

  • -b , —bytes — отображать вывод в байтах.
  • —kilo — отображать вывод в килобайтах (1 КБ = 1000 байт).
  • —mega — отображать вывод в мегабайтах.
  • —giga — Показать вывод в гигабайтах.
  • —tera — Показать вывод в терабайтах.
  • -k , —kibi — Показать вывод в кибибайтах. (1 КБ = 1024 байта). Это единица измерения по умолчанию.
  • -m , —mebi — Показать вывод в мебибайтах.
  • -g , —gibi — Показать вывод в гигабайтах.
  • —tebi — отображать вывод в тебибайтах.
  • —peti — Показать вывод в пебибайтах.
  • —si — вместо 1024 используйте —mebi —si 1000. Например, —mebi —si равно —mega .

Например, чтобы отобразить результат в мегабайтах, введите:

Отображение итоговых значений столбца

Чтобы отобразить строку, показывающую итоги столбца, используйте параметр -t . Это дает вам сумму памяти и свопа в столбцах total, used и free.

Непрерывно печатать результат

Чтобы постоянно отображать информацию о памяти на экране, вызовите free с параметром -s ( —seconds ), за которым следует число, определяющее задержку.

Например, чтобы распечатывать информацию о памяти каждые пять секунд, вы должны выполнить:

free команда будет продолжать отображать результат, пока вы не нажмете CTRL+C Это похоже на поведение команды watch .

Чтобы отображать результат определенное количество раз, используйте параметр -c ( —count ). В примере ниже команда выведет результат десять раз:

Выводы

Мы показали вам, как использовать free команду для проверки использования памяти системой и интерпретации вывода команды. Чтобы просмотреть все доступные параметры, введите в терминале man free .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Команда Free (свободная оперативная память) в Linux

Free Command in Linux

Сколько свободной оперативной памяти мне доступно в моей системе Linux? Достаточно ли свободной памяти для установки и запуска новых приложений?

В системах Linux вы можете использовать free команду для получения подробного отчета об использовании памяти системой.

Читайте также:  Настройка защитника windows 10 через реестр

Команда free предоставляет информацию об общем объеме физической и подкачки памяти, а также о свободной и используемой памяти и пространстве подкачки в системе.

Как использовать Free команду

Синтаксис free команды следующий:

При использовании без какой-либо опции, free команда отобразит информацию о памяти и поменяет местами в кибибайтах. 1 кибибайт (КиБ) составляет 1024 байта.

Вывод будет включать три строки, заголовок, одну строку для памяти и одну для подкачки:

В старых версиях Linux выходные данные могут немного отличаться.

  • total — это число представляет собой общий объем памяти, который может использоваться приложениями.
  • used — использованная память Он рассчитывается как: used = total — free — buffers — cache
  • free — Свободная / Неиспользуемая память.
  • shared — этот столбец можно игнорировать, так как он не имеет смысла. Это здесь только для обратной совместимости.
  • buff / cache — объединенная память, используемая буферами ядра, кешем страниц и слэбами. / эта память может быть восстановлена ​​в любое время, если это необходимо приложениям. Если вы хотите, чтобы буферы и кеш отображались в двух отдельных столбцах, используйте эту -w опцию.
  • available — оценка объема памяти, доступной для запуска новых приложений без замены.

Отображение использования памяти в удобочитаемом формате

Как мы видели в приведенном выше примере, по умолчанию free команда отображает информацию о памяти в кибибайтах. Чтобы просмотреть информацию в удобочитаемом формате (обычно мегабайты и гигабайты), используйте -h параметр:

Отображение использования памяти в других метриках

Команда free также позволяет указать единицу измерения памяти. Допустимые варианты:

  • -b , —bytes — Вывести вывод в байтах.
  • —kilo — Отображение вывода в килобайтах (1 КБ = 1000 байт).
  • —mega — Показать вывод в мегабайтах.
  • —giga — Отображение вывода в гигабайтах.
  • —tera — Отображение вывода в терабайтах.
  • -k , —kibi — Вывести вывод в кибибайтах. (1 КБ = 1024 байт). Это единица по умолчанию.
  • -m , —mebi — выход дисплея в Mebibytes.
  • -g , —gibi — выход дисплея в gibytes.
  • —tebi — Отображать вывод в тебибайтах.
  • —peti — Выводить вывод в пебибайтах.
  • —si — Вместо 1024 используйте полномочия 1000. Например —mebi —si , равно —mega .

Например, чтобы показать вывод в мегабайтах, вы должны набрать:

Отображение итогов в столбце

Чтобы отобразить строку, отображающую итоги столбца, используйте -t параметр. Это даст вам сумму памяти и поменяет местами общие, использованные и свободные столбцы.

Постоянно печатать вывод

Для того, чтобы непрерывно отображать информацию о памяти об использовании экрана с -s , —seconds варианты с последующим номером , который определяет задержку.

Например, чтобы печатать информацию о памяти каждые пять секунд, вы должны выполнить:

Команда free будет продолжать отображать результат, пока вы не нажмете CTRL+C . Это похоже на поведение watch команды .

Для отображения результата для определенного числа раз использовать -c , —count вариант. В приведенном ниже примере команда напечатает результат десять раз:

Вывод

К настоящему времени вы должны хорошо понимать, как использовать и интерпретировать free команду. Для просмотра всех доступных параметров free командной строки введите man free в своем терминале.

Источник

бесплатная команда в Linux с примерами

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

Это в значительной степени то, что бесплатная команда делает для вас.
Синтаксис:

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

Используя бесплатную команду

Вы можете использовать команду free как:

Если ни одна из опций не используется, команда free создает столбчатый вывод, как показано выше, где column:

  1. всего отображает общая установленная память (MemTotal и SwapTotal , присутствующие в / Proc / MemInfo).
  2. used отображает использованную память
  3. free отображает неиспользованную память
  4. shared отображает память, используемую tmpfs (Shmen присутствует в / proc / meminfo и отображает ноль в случае недоступности).
  5. buffers отображает память, используемую буферами ядра.
  6. cached отображает память, используемую кешем страниц и плитами (Cached и Slab доступны в / proc / meminfo).
  7. buffers / cache отображает сумму буферов и кеша.

Варианты свободной команды

  • -b, — -bytes: отображает память в байтах.
  • -k, -kilo: отображает объем памяти в килобайтах (по умолчанию).
  • -m, — -mega: отображает объем памяти в мегабайтах.
  • -g, — -giga: Он отображает объем памяти в гигабайтах.
  • — — тера: отображает объем памяти в терабайтах.
  • -h, — -human: он показывает все выходные столбцы, автоматически масштабированные до самой короткой трехзначной единицы, а также отображают единицы распечатки. Используемые единицы измерения: B (байты), K (килограммы), M (мегагерцы), G (гига) и T (терасы).
  • -c, — -count: отображает выходные данные c количество раз, и эта опция фактически работает с опцией -s .
  • -l, — -lohi: показывает подробную статистику низкого и высокого уровня памяти
  • -o, — -old: эта опция отключает отображение строки, отрегулированной в буфере.
  • -s, — -seconds: эта опция позволяет отображать вывод непрерывно после задержки s секунд. На самом деле системный вызов usleep используется для времени задержки микросекундного разрешения.
  • -t, — -total: добавляет в вывод дополнительную строку, показывающую итоги столбца.
  • — -помощь: Он отображает сообщение справки и выход.
  • -V, — -version: отображает информацию о версии и завершает работу.

Использование свободной команды с опциями

1. Использование -b: он просто отображает вывод в единицах байтов.

2. Использование -k: эта опция отображает результат в килобайтах.

3. Использование -m: эта опция отображает результат в мегабайтах.

4.using -g: эта опция отображает результат в гигабайтах.

5. Использование -t (итого): эта опция отображает дополнительную строку, содержащую итоговые столбцы итоговых, использованных и свободных столбцов.

6. Использование -s и -o: эта опция позволяет вам отображать вывод команды free после заданного промежутка времени, заданного пользователем. Этот параметр требует, чтобы с ним передавалось числовое значение, которое обрабатывается как количество секунд, после которого будет отображаться вывод.

Теперь с помощью -s вы можете указать только промежуток времени, но не то, сколько раз вы хотите, чтобы вывод отображался. Для этого используется -c вместе с -s, определяющими, сколько раз будет отображаться вывод.

7. Использование -o: эта опция убирает строку буфера / кэша с вывода, как показано ниже.

Источник

Читайте также:  Windows on britain worksheets
Оцените статью