Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
kmon — Менеджер ядра Linux и монитор активности 🐧💻 | Kitploit
Инструменты/GitHubGitHub/orhun/kmon
Утилиты общего назначения
GitHuborhun/kmon

kmon

Менеджер ядра Linux и монитор активности 🐧💻

РепозиторийСайт
2.9k9420 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться


Менеджер ядра Linux и монитор активности 🐧💻


Ядро — это часть операционной системы, которая обеспечивает взаимодействие между аппаратными и программными компонентами. В большинстве систем оно загружается при запуске после загрузчика и обрабатывает запросы ввода-вывода, а также периферийные устройства, такие как клавиатуры, мониторы, сетевые адаптеры и динамики. Как правило, ядро отвечает за управление памятью, управление процессами, управление устройствами, системные вызовы и безопасность. Приложения используют механизм системных вызовов для запроса услуги у операционной системы, и в большинстве случаев этот запрос передаётся ядру с помощью библиотеки, предоставляемой операционной системой, для вызова соответствующей функции ядра. Пока ядро выполняет эти низкоуровневые задачи, оно находится в отдельной области памяти, называемой защищённым пространством ядра, которая недоступна для приложений и других частей системы. Напротив, приложения, такие как браузеры, текстовые редакторы, оконные менеджеры или аудио/видеоплееры, используют другую отдельную область памяти — пространство пользователя. Такое разделение предотвращает взаимное влияние пользовательских данных и данных ядра, вызывающее нестабильность и замедление работы, а также предотвращает сбой всей операционной системы из-за неисправных прикладных программ.
Существуют различные конструкции ядра из-за разных способов управления системными вызовами и ресурсами. Например, в то время как монолитные ядра выполняют все инструкции операционной системы в одном адресном пространстве для скорости, микроядра используют разные пространства для пользовательских и системных служб для модульности. Помимо них, существуют гибридные ядра, наноядра и экзоядра. Архитектура гибридного ядра основана на сочетании аспектов микроядра и монолитного ядра.

Ядро Linux — это открытое, монолитное и Unix-подобное ядро операционной системы, используемое в дистрибутивах Linux, различных встраиваемых системах, таких как маршрутизаторы, а также во всех системах на базе Android. Линус Торвальдс задумал и создал ядро Linux в 1991 году, и до сих пор оно разрабатывается тысячами разработчиков. Это яркий пример свободного и открытого программного обеспечения, и оно используется в других проектах свободного ПО, в частности, в операционной системе GNU. Хотя операционные системы на базе Linux доминируют в большинстве вычислительных систем, они всё ещё несут некоторые недостатки проектирования, которые были предметом значительных дискуссий в ранние дни Linux. Например, оно имеет самый большой размер и наибольшую сложность по сравнению с другими типами ядер. Но это особенность конструкции, присущая монолитным ядрам. Подобные проблемы проектирования побудили разработчиков добавить в ядро Linux новые функции и механизмы, которых нет у других ядер.

В отличие от стандартных монолитных ядер, ядро Linux также является модульным, принимая загружаемые модули ядра (LKM), которые обычно используются для добавления поддержки нового оборудования (в качестве драйверов устройств) и/или файловых систем, или для добавления системных вызовов. Поскольку LKM могут быть загружены и выгружены в систему во время выполнения, они имеют преимущество расширения ядра без перезагрузки и перекомпиляции. Таким образом, функциональность ядра, предоставляемая модулями, не будет находиться в памяти без необходимости, и соответствующий модуль может быть выгружен для освобождения памяти и других ресурсов.
Загружаемые модули ядра находятся в /lib/modules с расширением .ko (kernel object) в Linux. Для вывода списка загруженных модулей ядра можно использовать команду lsmod, а для загрузки или выгрузки модуля ядра — modprobe или insmod/rmmod. insmod/rmmod используются для модулей, независимых от modprobe и не требующих установки в /lib/modules/$(uname -r).

Вот простой пример модуля ядра Linux, который выводит сообщение при загрузке и выгрузке. Шаги сборки и установки модуля с помощью Makefile показаны ниже.``` make # build sudo make install # install sudo modprobe lkm_example # load sudo modprobe -r lkm_example # unload

root@kitploit:~
Команда [dmesg](https://linux.die.net/man/8/dmesg) используется ниже для получения буфера сообщений ядра.```
[16994.295552] [+] Example kernel module loaded.
[16996.325674] [-] Example kernel module unloaded.

kmon предоставляет текстовый интерфейс пользователя для управления модулями ядра Linux и мониторинга активности ядра. Под управлением подразумевается загрузка, выгрузка, добавление в черный список и отображение информации о модуле. Эти изменения в модулях ядра, журналы об оборудовании и другие сообщения ядра могут отслеживаться с помощью монитора активности в реальном времени в kmon. Поскольку для этих задач в Linux требуется использование различных инструментов, таких как dmesg и kmod, kmon стремится собрать их в одном окне терминала и максимально упростить использование, сохраняя при этом функциональность.

kmon написан на Rust и использует библиотеки Ratatui и termion для своего текстового интерфейса пользователя.

Содержание

  • Установка
    • Cargo
    • Arch Linux
    • Nixpkgs
    • Alpine Linux
    • Docker
      • Сборка
      • Запуск
    • Вручную
      • Примечание
  • Использование
    • Параметры
    • Команды
      • Сортировка
  • Горячие клавиши
  • Возможности
    • Справка
    • Навигация и прокрутка
      • Прокрутка активности ядра
      • Плавная прокрутка
    • Меню настроек
    • Размеры блоков
    • Позиции блоков
    • Информация о ядре
    • Информация о модуле
      • Отображение зависимых модулей
      • Переход к зависимым модулям
    • Поиск модуля
    • Загрузка модуля
    • Выгрузка модуля
    • Добавление модуля в черный список
    • Перезагрузка модуля
    • Очистка кольцевого буфера
    • Копирование и вставка
    • Сортировка/обратный порядок модулей ядра
    • Настройка цветов
      • Поддерживаемые цвета
      • Использование пользовательского цвета
      • Изменение акцентного цвета
    • Символы Unicode

Установка

Packaging status

Cargo

kmon можно установить из crates.io с помощью Cargo, если установлен Rust.``` cargo install kmon

root@kitploit:~
Минимальная поддерживаемая версия Rust (MSRV) — `1.74.1`.

### Arch Linux

**kmon** можно установить из [официального репозитория](https://www.archlinux.org/packages/extra/x86_64/kmon/) Arch Linux.```
pacman -S kmon

Также существует пакет для разработки в AUR. Используйте ваш любимый AUR helper для установки. Например,``` paru -S kmon-git

root@kitploit:~
### Nixpkgs

**kmon** можно установить с помощью [менеджера пакетов Nix](https://nixos.org/nix/) из канала `nixpkgs-unstable`.```
nix-channel --add https://nixos.org/channels/nixpkgs-unstable
nix-channel --update nixpkgs
nix-env -iA nixpkgs.kmon

На NixOS:``` nix-channel --add https://nixos.org/channels/nixos-unstable nix-channel --update nixos nix-env -iA nixos.kmon

root@kitploit:~
### Alpine Linux

**kmon** доступен для [Alpine Edge](https://pkgs.alpinelinux.org/packages?name=kmon&branch=edge). Он может быть установлен через [apk](https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper) после включения [репозитория сообщества](https://wiki.alpinelinux.org/wiki/Repositories).```
apk add kmon

Docker

Docker Hub Build Status``` docker run -it --cap-add syslog orhunp/kmon:tagname

root@kitploit:~
#### Сборка```
docker build -t kmon .

Запуск```

docker run -it --cap-add syslog kmon

root@kitploit:~
### Руководство

1. Загрузите последний бинарный файл из раздела [releases](https://github.com/orhun/kmon/releases) и выберите между [glibc](https://en.wikipedia.org/wiki/Glibc) и [musl-libc](https://musl.libc.org/) сборкой.
2. Чтобы загрузить пакет, скомпилированный с [glibc](https://en.wikipedia.org/wiki/Glibc), выполните:
`wget https://github.com/orhun/kmon/releases/download/v1.0.0/kmon-1.0.0-x86_64-unknown-linux-gnu.tar.gz````
wget https://github.com/orhun/kmon/releases/download/v[VERSION]/kmon-[VERSION]-x86_64-unknown-linux-gnu.tar.gz
  1. Чтобы загрузить пакет, скомпилированный с помощью musl-libc, выполните:``` wget https://github.com/orhun/kmon/releases/download/v[VERSION]/kmon-[VERSION]-x86_64-unknown-linux-musl.tar.gz
root@kitploit:~
3. Извлеките файлы.```
tar -xvzf kmon-*.tar.gz
  1. Войдите в новую папку.``` cd kmon-[VERSION]
root@kitploit:~
5. Запустите бинарный файл.```
./kmon
  1. Переместите бинарный файл в /usr/local/bin/, чтобы запускать его из терминала с помощью команды kmon.

  2. Страница руководства и автодополнение оболочки генерируются во время сборки в каталоге target.

Примечание

libxcb должен быть установлен для использования команд копирования/вставки в X11.

например: установите пакет libxcb1-dev для Debian/Ubuntu* и пакет libxcb-devel для Fedora/openSUSE/Void Linux.

Использование```

kmon [OPTIONS] [COMMAND]

root@kitploit:~
### Параметры```
-a, --accent-color <COLOR>  Set the accent color using hex or color name [default: white]
-c, --color <COLOR>         Set the main color using hex or color name [default: darkgray]
-t, --tickrate <MS>         Set the refresh rate of the terminal [default: 250]
-r, --reverse               Reverse the kernel module list
-u, --unicode               Show Unicode symbols for the block titles
-E, --regex                 Interpret the module search query as a regular expression
-h, --help                  Print help information
-V, --version               Print version information

Команды```

sort Sort kernel modules

root@kitploit:~
#### Сортировка```
kmon sort [OPTIONS]

Опции:``` -s, --size Sort modules by their sizes -n, --name Sort modules by their names -d, --dependent Sort modules by their dependent modules -h, --help Print help information

root@kitploit:~
## Привязки клавиш

|                         |                                       |
| ----------------------- | ------------------------------------- |
| `[?], F1`               | Справка                               |
| `right/left, h/l`       | Переключение между блоками            |
| `up/down, k/j, alt-k/j` | Прокрутка вверх/вниз [выбранного блока] |
| `pgup/pgdown`           | Прокрутка вверх/вниз [активности ядра] |
| `</>`                   | Прокрутка вверх/вниз [информация о модуле] |
| `alt-h/l`               | Прокрутка влево/вправо [активности ядра] |
| `ctrl-t/b, home/end`    | К началу/концу [списка модулей]        |
| `alt-e/s`               | Развернуть/сжать выбранный блок        |
| `ctrl-x`                | Изменить положение блока               |
| `ctrl-l/u, alt-c`       | Очистка кольцевого буфера ядра         |
| `[d], alt-d`            | Показать зависимые модули              |
| `[1]..[9]`              | Перейти к зависимому модулю            |
| `[\], tab, backtab`     | Показать следующую информацию о ядре   |
| `[/], s, enter`         | Поиск модуля ядра                      |
| `[+], i, insert`        | Загрузить модуль ядра                  |
| `[-], u, backspace`     | Выгрузить модуль ядра                  |
| `[x], b, delete`        | Внести модуль ядра в чёрный список     |
| `ctrl-r, alt-r`         | Перезагрузить модуль ядра              |
| `m, o`                  | Показать меню параметров               |
| `y/n`                   | Выполнить/отменить команду             |
| `c/v`                   | Копировать/вставить                    |
| `r, F5`                 | Обновить                               |
| `q, ctrl-c/d, ESC`      | Выйти                                  |

## Возможности

### Справка

Нажмите '`?`' во время работы терминального интерфейса, чтобы увидеть привязки клавиш.

![Справка](https://assets.kitploit.com/production/public/readmes/4513/092daae0aa14fca490bc69381d3db28d4ff9a539c794a1991fb91c71e4424379.gif)

### Навигация и прокрутка

`Клавиши со стрелками` используются для навигации между блоками и прокрутки.

![Навигация и прокрутка](https://assets.kitploit.com/production/public/readmes/4513/da959ba770e1c03f848633a36d54097b8f82c8b41ef9e8e046ba31f6c976a3a3.gif)

#### Прокрутка активности ядра

Некоторые сообщения ядра могут быть слишком длинными, чтобы поместиться в блок активности ядра, поскольку они не переносятся. В такой ситуации активность ядра можно прокручивать по горизонтали с помощью клавиш `alt-h & alt-l`. Механизм вертикальной прокрутки такой же, как и для других блоков.

![Прокрутка активности ядра](https://assets.kitploit.com/production/public/readmes/4513/025efb6bfd17e6228b1f623e756c871836df78251defe58c57c65505616a4837.gif)

#### Плавная прокрутка

Клавиши `alt-j & alt-k` позволяют медленно прокручивать блок активности ядра и информацию о модулях.

![Плавная прокрутка](https://assets.kitploit.com/production/public/readmes/4513/e195f5f4ad41495fa7211bb3a91e12e9b4892a79418e2ce621dec963bed21e42.gif)

### Меню параметров

Клавиши `m` и `o` можно использовать как быстрый доступ к операциям управления модулями ядра. При нажатии появится меню параметров для управления текущим выбранным модулем ядра.

![Меню параметров](https://assets.kitploit.com/production/public/readmes/4513/8e5d26b77f927e4a5817c2e4402da8f53a91ec96621b049d05328c8dae544386.gif)

### Размеры блоков

Клавиши `alt-e & alt-s` используются для разворачивания/сжатия выбранного блока.

![Размеры блоков](https://assets.kitploit.com/production/public/readmes/4513/d563b6e8a665b57a9100ed1ee1dddf4c58029821e38e1ad2ff91d22e4c5c7e2c.gif)

### Положения блоков

Клавиша `ctrl-x` используется для изменения положения блоков.

![Положения блоков](https://assets.kitploit.com/production/public/readmes/4513/3cf0ddc44319f9fe7e5fa6027d8f66de5e33ea96032e0e19bae8b75d8d276c84.gif)

### Информация о ядре

Используйте одну из клавиш `\, tab, backtab`, чтобы переключаться между информацией о выпуске ядра, версии и платформе.

![Информация о ядре](https://assets.kitploit.com/production/public/readmes/4513/2003d3fef4bee4ddebbf578f97432611dbadb685f18c93f706f327b7a320bfa1.gif)

### Информация о модуле

Состояние модуля ядра отображается при его выборе.

![Информация о модуле](https://assets.kitploit.com/production/public/readmes/4513/fbd0a6aa127a5de68390c6776bb7ff019f328b600101d53a937fe3b58746c19b.gif)

#### Отображение зависимых модулей

Используйте одну из клавиш `d, alt-d`, чтобы показать все зависимые модули выбранного модуля.

![Отображение зависимых модулей](https://assets.kitploit.com/production/public/readmes/4513/93b382f93492bc58575981ef3bd2e9a5203eab4ee0d3df3cb04f5edc27511adf.gif)

#### Переход к зависимым модулям

Для перехода к зависимому модулю ядра от его родительского модуля используйте `цифровые клавиши` (1-9), чтобы указать индекс модуля в столбце _Используется кем_.

![Информация о зависимостях](https://assets.kitploit.com/production/public/readmes/4513/ddfa494abda891dfe1ac81d6d0c46fe8892ef07314f1ae80702e0603ff37306f.gif)

### Поиск модуля

Переключитесь в область поиска с помощью клавиш со стрелками или одной из клавиш `/, s, enter` и введите поисковый запрос для имени модуля.

![Поиск модуля](https://assets.kitploit.com/production/public/readmes/4513/08a4df2fb9795e789c77cf19fc289a37bd5ec551a6f466e4c8240fb0b1f18f8c.gif)

### Загрузка модуля

Чтобы добавить модуль в ядро Linux, переключитесь в режим загрузки с помощью одной из клавиш `+, i, insert` и укажите имя загружаемого модуля. Затем подтвердите/отмените выполнение команды загрузки с помощью `y/n`.

![Загрузка модуля](https://assets.kitploit.com/production/public/readmes/4513/fcb829b17f0fe7d09e29a3edbddfac451f17fb6ef5a8739eee855170876ac9ba.gif)

Команда, используемая для загрузки модуля:```
modprobe <module_name> || insmod <module_name>.ko

Выгрузка модуля

Используйте одну из клавиш -, u, backspace, чтобы удалить выбранный модуль из ядра Linux.

Выгрузка модуля

Команда, используемая для удаления модуля:``` modprobe -r <module_name> || rmmod <module_name>

root@kitploit:~
### Блокировка модуля

[Блокировка](https://wiki.archlinux.org/index.php/Kernel_module#Blacklisting) — это механизм предотвращения загрузки модуля ядра. Чтобы заблокировать выбранный модуль, используйте одну из клавиш `x, b, delete` и подтвердите выполнение.

![Блокировка модуля](https://assets.kitploit.com/production/public/readmes/4513/58af72f6d1ba84074928fbad372c58bf054fe3e16ac6c42e6dadb257ca7c9b41.gif)

Команда, используемая для блокировки модуля:```
if ! grep -q <module_name> /etc/modprobe.d/blacklist.conf; then
  echo 'blacklist <module_name>' >> /etc/modprobe.d/blacklist.conf
  echo 'install <module_name> /bin/false' >> /etc/modprobe.d/blacklist.conf
fi

Перезагрузка модуля

Используйте клавишу ctrl-r или alt-r для перезагрузки выбранного модуля.

Перезагрузка модуля

Команда, используемая для перезагрузки модуля:``` modprobe -r <module_name> || rmmod <module_name> && modprobe <module_name> || insmod <module_name>.ko

root@kitploit:~
### Очистка кольцевого буфера

Кольцевой буфер ядра можно очистить с помощью одной из клавиш `ctrl-l/u, alt-c`.

![Очистка кольцевого буфера](https://assets.kitploit.com/production/public/readmes/4513/5c693de033427319d9960aa2c1e35cf773a711e736962beb980b564bf071dfbd.gif)```
dmesg --clear

Копирование и вставка

Клавиши c/v назначены для операций копирования и вставки.

Копирование и вставка

Используйте ctrl-c/ctrl-v для копирования и вставки в режиме ввода.

Сортировка/реверсирование модулей ядра

Подкоманду sort можно использовать для сортировки модулей ядра по именам, размерам или зависимым модулям.``` kmon sort --name kmon sort --size kmon sort --dependent

root@kitploit:~
![Sorting the kernel modules](https://assets.kitploit.com/production/public/readmes/4513/2e134a1dc23793a61ee9cbb5523063dc8791e9e10b70550cc738da00f8c61f39.gif)

Также флаг `-r, --reverse` используется для разворота списка модулей ядра.```
kmon --reverse

Реверсинг модулей ядра

Настройка цветов

kmon использует цвета терминала по умолчанию, но цвет выделения можно задать с помощью опции -c, --color. Альтернативно, цвет текста по умолчанию можно задать с помощью опции -a, --accent-color.

Поддерживаемые цвета

Поддерживаемые цвета терминала: black, red, green, yellow, blue, magenta, cyan, gray, darkgray, lightred, lightgreen, lightyellow, lightblue, lightmagenta, lightcyan, white.``` kmon --color red

root@kitploit:~
![Поддерживаемые цвета](https://assets.kitploit.com/production/public/readmes/4513/03a0e1fbb0b033dd9571a77a29658679aa74cebc983af4430d590174861649a9.gif)

#### Использование пользовательского цвета

Укажите шестнадцатеричное значение цвета для использования.```
kmon --color 19683a

Использование пользовательского цвета

Изменение акцентного цвета

Цвет текста по умолчанию может вызывать проблемы с читаемостью на некоторых темах с прозрачностью. Опцию -a, --accent-color можно использовать аналогично опции -c, --color для решения этой проблемы.``` kmon --color 6f849c --accent-color e35760

root@kitploit:~
![Изменение акцентного цвета](https://assets.kitploit.com/production/public/readmes/4513/78d04e79126d2382ccfbe48d2a60e183c252c62282e9ef0e501499f07b9f7c60.gif)

### Символы Unicode

Используйте флаг `-u, --unicode` для отображения символов Unicode в заголовках блоков.```
kmon --unicode

Символы Unicode

Настройка частоты обновления терминала

-t, --tickrate — опция, используемая для установки интервала обновления интерфейса терминала в миллисекундах.

Настройка частоты обновления терминала

Поиск модулей по регулярному выражению

-E, --regex — опция, используемая для поиска модулей по регулярному выражению.

План развития

kmon стремится стать стандартным инструментом для управления ядром Linux, поддерживая большинство дистрибутивов Linux.

Доступность

Для достижения этой цели kmon должен быть доступен через различные менеджеры пакетов, такие как Snap* и RPM.

Зависимости

Для корректной работы kmon необходимо наличие на системе таких базовых инструментов, как dmesg и kmod. Таким образом, следующим шагом будет использование только системных ресурсов для этих функций.

Возможности

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

Тестирование

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

Ресурсы

О проекте

  • Кодекс поведения
  • Участие в разработке
  • Создание релиза

Статьи

  • Исследование ядра Linux от Bob Cromwell
  • Анатомия загружаемого модуля ядра Linux от Terenceli
  • Управление модулями ядра с помощью kmod от Lucas De Marchi

В СМИ

  • Управление и мониторинг модулей ядра Linux с помощью Kmon (OSTechNix)
  • Kmon — программное обеспечение для управления и мониторинга ядра Linux (Brodie Robertson на YouTube)

Галерея

Fedora 31Debian 10Manjaro 19
kmon на Fedorakmon на Debiankmon на Manjaro
Ubuntu 18.04openSUSEVoid Linux
kmon на Ubuntukmon на openSUSEkmon на Void Linux

Социальные сети

  • Подпишитесь на @kmonitor_ в Twitter
  • Подпишитесь на автора:
    • @orhun на GitHub
    • @orhundev в Twitter

Финансирование

GitHub

Поддержите разработку моих проектов, оказав поддержку через GitHub Sponsors.

Patreon

Кнопка Patreon

Open Collective

Сторонники Open Collective Спонсоры Open Collective

Поддержите усилия по разработке открытого исходного кода, став сторонником или спонсором.

Кнопка Open Collective

Лицензия

GNU General Public License (3.0)

Авторское право

Copyright © 2020-2024, Orhun Parmaksız

Скачать инструмент
Настройка частоты обновления терминала
  • Поиск модулей по регулярному выражению
  • План развития
    • Доступность
    • Зависимости
    • Возможности
    • Тестирование
  • Ресурсы
    • О проекте
    • Статьи
    • В СМИ
    • Галерея
    • Социальные сети
  • Финансирование
    • GitHub
    • Patreon
    • Open Collective
  • Лицензия
  • Авторские права