Перейти к содержанию

htop

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

htop
Скриншот программы htop
Тип Монитор процессов
Разработчик Hisham H. Muhammad
Написана на Си (C99)
Интерфейс ncurses
Операционная система GNU/Linux, FreeBSD, OpenBSD, OS X
Последняя версия 3.2.1[1] (3 июня 2022 года[2])
Лицензия GNU GPL v2[3]
Сайт hisham.hm/htop/

htop — компьютерная программа, предназначенная для вывода на терминал списка запущенных процессов и информации о них (монитор процессов). Создана как альтернатива программы top. Написана на языке Си. Предоставляет пользователю текстовый интерфейс; для вывода на терминал использует библиотеку ncurses.

История

Человек по имени Hisham Muhammad (ведущий программист проекта LuaRocks (система управления пакетами для Lua), доктор философии в PUC-Rio[англ.] (Рио-де-Жанейро, Бразилия) (в университете, в котором был разработан язык программирования Lua)[4]) был недоволен тем, что утилита top не поддерживала вертикальную и горизонтальную прокрутку, и в 2004 году[5] начал разработку программы htop[6].

Автор (Hisham Muhammad) назвал программу «htop» по аналогии с тем, как названа программа «pinfo»[7], написанная программистом по имени Przemek Borys. Слово «pinfo» означает «Przemek's info[англ.]». Слово «htop» означает «Hisham's top»[8].

Программа получала сведения о процессах из виртуальной ФС procfs, реализованной ядром Linux, поэтому могла работать только в ОС Linux.

Первое сообщение[9] с упоминанием ОС FreeBSD опубликовано в списке рассылки 9 мая 2006 года и информирует о выходе htop версии 0.6.1. 30 августа 2007 года[10][11] в коллекцию портов ОС FreeBSD была добавлена портированная программа htop версии 0.6.6 (выпущенная 1 июня 2007 года[12]). Для эмуляции procfs программа использовала библиотеку linprocfs. Появилась возможность портирования htop под любую ОС, поддерживающую слой эмуляции procfs.

htop версии 0.8.2 (выпущенная 2 июня 2009 года[13]) была портирована для работы в ОС Mac OS X. Портирование было выполнено путём замены кода, специфичного для Linux, на код, специфичный для Mac OS X[6].

13 января 2014 года проект переехал с сайта SourceForge.net[14] на сайты http://hisham.hm/htop/, GitHub.com (исходный код)[15] и FreeLists.org (список рассылки)[16].

До версии 1.0.3 (выпущенной 24 апреля 2014 года[17]) программа официально поддерживала только ОС Linux. Начиная с версии 2.0.0 (выпущенной 10 февраля 2016 года[2]) в исходный код htop был добавлен слой для абстрагирования от особенностей различных ОС. Усилиями сообщества htop удалось портировать для работы в операционных системах FreeBSD, OpenBSD и Darwin (Mac OS X).

Применение

htop часто применяется в тех случаях, когда информации, получаемой от утилиты top, недостаточно, например, при поиске утечек памяти в процессах.

htop также используется как system monitor[англ.][18].

Возможности

htop по умолчанию сортирует список процессов по величине, позволяющей оценить продолжительность времени выполнения процесса на ЦПУ (клавиша P) («CPU%»). Также сортировка возможна по размеру занятой процессом памяти (клавиша M) («MEM%»), по времени выполнения процесса в пространстве ядра и пространстве пользователя (клавиша T) («TIME+») и по любому отображаемому параметру процесса (клавиши < и >).

htop показывает:

В отличие от утилиты top, htop:

Также htop:

Значения цветов
Индикатор «CPU»
Цвет по умолчанию[19] Время ЦПУ тратится на выполнение …[20]
Синий low потоков пользователя, у которых приоритет nice больше 0 (низкие приоритеты)
Зелёный normal потоков пользователя, у которых приоритет nice меньше или равен 0 (нормальный и высокие приоритеты)
Красный kernel потоков ядра ОС
Жёлтый irq … обработчиков аппаратных прерываний
Маджента soft-irq … обработчиков программных прерываний
Сине-зелёный steal и guest виртуальных машин
Чёрный io-wait … ожидания завершения операций ввода-вывода
Индикатор «Mem»
Цвет по умолчанию[19] Назначение[20][21]
Зелёный used[m 1] = physical[m 2] - kernel_binary[m 3] - reserved[m 4] - buffers[m 5] - cache[m 6] - free[m 7]
Синий buffers[m 5]
Жёлтый cache[m 6]
  1. used — размер страниц памяти, находящихся в ОЗУ.
  2. physical — размер памяти, доступной на ОЗУ.
  3. kernel_binary — размер памяти, занятой исполняемым кодом ядра.
  4. reserved — размер зарезервированной памяти.
  5. 5,0 5,1 buffers — размер памяти ядра, используемой для временного хранения raw данных, прочитанных с диска или предназначенных для записи на диск.
  6. 6,0 6,1 cache — память ядра, находящаяся в ОЗУ и используемая для хранения содержимого файлов, прочитанных с диска.
  7. free — размер свободной памяти; сумма свободной памяти, размещёной по малым адресам (англ. lowmem) и используемой ядром, и свободной памяти, размещённой по большим адресам (англ. highmem) и доступной процессам пространства пользователя.

См. также

Примечания

  1. Hisham H. Muhammad. Скачать htop (англ.). Официальный сайт проекта. Дата обращения: 14 февраля 2016 года. Архивировано 10 августа 2015 года.
  2. 2,0 2,1 Index of /htop/releases. Дата обращения: 1 апреля 2017. Архивировано 4 мая 2017 года.
  3. Текст лицензии htop // GitHub.com.
  4. Hisham Muhammad. Сайт конференции FOSDEM 2016. Дата обращения: 14 февраля 2016. Архивировано 14 марта 2016 года.
  5. Исходный код htop Архивная копия от 29 сентября 2015 на Wayback Machine версии 0.1 опубликован 7 мая 2004 года на сайте SourceForge.net.
  6. 6,0 6,1 Going cross-platform - how htop was made portable // (Конференция FOSDEM 2016 (ULB Solbosch campus, Брюссельский столичный регион, Бельгия; 30-31 января 2016 года)). (слайды доклада Архивная копия от 21 февраля 2016 на Wayback Machine).
  7. Сайт программы pinfo Архивная копия от 2 мая 2015 на Wayback Machine.
  8. Часто задаваемые вопросы о htop (англ.). Официальный сайт htop. Дата обращения: 4 августа 2015. Архивировано 26 марта 2015 года.
  9. [htop-general] Announce: htop 0.6.1 // Список рассылки htop. Сообщение опубликовано 9 мая 2006 года в 20:10:29.
  10. FreshPorts -- sysutils/htop Архивная копия от 6 сентября 2015 на Wayback Machine. История порта программы htop для ОС FreeBSD // FreshPorts.org.
  11. Порт htop Архивная копия от 28 декабря 2010 на Wayback Machine для ОС FreeBSD // FreeBsdSoftware.org.
  12. [htop-general] Announce: htop 0.6.6 // Список рассылки htop. Сообщение опубликовано 1 июня 2007 года в 19:07:22.
  13. [htop-general] [ANN] htop 0.8.2 // Список рассылки htop. Сообщение опубликовано 2 июня 2009 года в 05:21:11.
  14. htop Архивная копия от 28 января 2016 на Wayback Machine // SourceForge.net.
  15. Исходный код htop Архивная копия от 1 августа 2015 на Wayback Machine // GitHub.com.
  16. Список рассылки htop Архивная копия от 17 февраля 2016 на Wayback Machine // FreeLists.org.
  17. [http://web.archive.org/web/20160216093925/https://www.freelists.org/post/htop/ANN-htop-103 Архивная копия от 16 февраля 2016 на Wayback Machine [htop] [ANN] htop 1.0.3] // Список рассылки htop. Сообщение опубликовано 24 апреля 2014 года в 20:25:34 UTC−3:00.
  18. System monitoring with htop (англ.) (недоступная ссылка). Хостинговая компания Rackspace (12 июня 2014 года). Дата обращения: 4 августа 2015. Архивировано 24 сентября 2015 года.
  19. 19,0 19,1 Файл CRT.c Архивная копия от 15 февраля 2016 на Wayback Machine // Исходный код htop на сайте github.com.
  20. 20,0 20,1 doc/Documentation/filesystems/proc.txt Архивная копия от 6 июля 2015 на Wayback Machine // Описание файловой системы procfs на сайте kernel.org.
  21. proc(5) — страница справки man по форматам файлов GNU/Linux  (англ.).

Ссылки