Компонент Toybox

Компонент Toybox представляет собой вариант реализации утилиты командной строки toybox, адаптированный для работы в KasperskyOS.

Состав компонента Toybox:

Важно! Компонент Toybox является экспериментальным и работает с ограничениями, описанными ниже. Этот компонент доступен пользователям для тестирования и предоставления отзывов.

Функциональность компонента Toybox в KasperskyOS имеет следующие отличия от реализации утилиты toybox в ОС Linux, вызванные архитектурными особенностями KasperskyOS и её политиками безопасности:

Команды, поддерживаемые компонентом Toybox

[

df*

file*

jobs**

mountpoint*

reboot**

strings

uptime*

base64*

dirname

find*

kill**

mv*

reset

tail*

wc

basename

dmesg**

fmt

link

nl

rm

test

xxd

cat*

du*

free**

ln*

od

rmdir

top**

yes

chmod

echo

getopt*

ls*

patch*

sed*

touch*

zcat

clear

egrep

grep*

lsblk**

ping**

seq

true

 

cmp

env

gunzip*

lspcie**

printf

sleep

truncate

 

comm

exec**

head

lsusb**

pwd*

sort*

uname*

 

cp*

false

help

md5sum*

readelf*

split

uniq

 

date*

fgrep

hexedit

mkdir

readlink

stat*

unlink

 

Команды с ограниченной функциональностью в компоненте Toybox

Команда

Неподдерживаемые опции команды

и другие ограничения

base64

[-i]

cat

[-etuv]

cp

[-adFHLlnRsv]

date

[-s]

Игнорируется значение переменной окружения TZ.

df

[-aHhikP] [-t TYPE]

du

[-abcHKkLlmsx] [-d N]

file

[-bs]

find

Не поддерживаются фильтры поиска:

  • -user UNAME
  • -nouser
  • -group GROUP
  • -nogroup
  • -prune
  • -xdev
  • -links N
  • -empty
  • -atime N[u]
  • -ctime N[u]
  • -mtime N[u]
  • -inum N
  • -context PATTERN
  • -newer FILE
  • -executable
  • -readable
  • -depth
  • -mindepth N

Добавлены фильтры поиска:

  • -lname PATTERN
  • -ilname

Не поддерживаются действия:

  • -print0
  • -exec
  • -execdir
  • -ok
  • -okdir
  • -delete

getopt

[-a]

grep

[-ft] [-MS PATTERN]

gunzip

[-ft]

ln

[-v]

ls

[-HLghns] [--color[=auto]]

md5sum

[-b]

Не вычисляются хэши по алгоритмам SHA.

mountpoint

[-qdx]

Не поддерживается работа с устройствами.

mv

[-FTvx] [-t TARGET]

patch

[-Rlsuv] [-d DIR] [-i FILE] [-p DEPTH] [-F FUZZ]

pwd

[-L]

readelf

[-A]

sed

[-i]

sort

[-bdiMsVz]

stat

[-tfL]

tail

[-fFs]

touch

[-h]

uname

[-m]

uptime

[-ps]

Не предоставляются данные о количестве активных пользователей и средней загрузке системы.

Команды с собственной реализацией в компоненте Toybox

Команда

Сведения о команде

dmesg

Назначение

Выводит диагностические сообщения ядра KasperskyOS, генерируемые во время загрузки и работы системы.

Синтаксис

  • dmesg

Опции

Нет.

exec

Назначение

Запускает процесс из исполняемого файла с использованием функции StartEntity() интерфейса IApplicationController компонента ExecutionManager.

Синтаксис

  • exec [--bg] [--eiid <className>] [--name <taskName>] <fileName> [--<arguments>...]

Опции

  • --bg

    Запуск процесса в фоновом режиме. После запуска процесса в фоновом режиме в терминал будет выведен ID запущенного процесса, заключенный в квадратные скобки.

  • --eiid <className>

    Имя класса процессов. Если не указан, то будет использовано имя exec_app.ExecApp.

  • --name <taskName>

    Имя процесса. Если не указано, используется имя класса процесса.

  • fileName

    Имя исполняемого файла.

  • --<arguments>

    Аргументы командной строки, передаваемые запускаемому процессу.

free

Назначение

Выводит данные о физической памяти, основанные на значениях счетчиков производительности:

  • установленная физическая память (total);
  • используемая память, рассчитанная как разница между установленной памятью и свободной, разделяемой и памятью с атрибутом "доступ на исполнение" (used = total - free - shmem - exsize);
  • свободная физическая память (free);
  • физическая память, используемая в качестве разделяемой (shmem);
  • физическая память с атрибутом "доступ на исполнение" (exsize).

Синтаксис

  • free [-bkmg]

Опции

  • -bkmg

    Вывод значений в байтах/килобайтах/мегабайтах/гигабайтах.

jobs

Назначение

Выводит данные о фоновых процессах, полученные с использованием функции GetApplicationState() интерфейса IStateProvider компонента ExecutionManager, в следующем формате:

[<jobNumber>] <taskName>: <state> [ExitCode=<exitCode>]

Где:

  • jobNumber – ID процесса;
  • taskName – имя процесса;
  • state – состояние процесса;
  • exitCode – код возврата для процесса, если процесс остановился самостоятельно (в том числе после получения сигнала на свою остановку).

Например:

[1] DemoSuccess.3: Completed ExitCode=0

Синтаксис

  • jobs

Опции

Нет.

kill

Назначение

Останавливает фоновые процессы, запущенные ранее командой exec, с использованием функции StopEntity() интерфейса IApplicationController компонента ExecutionManager.

Синтаксис

  • kill jobNumber1 [jobNumber2...]

Опции

  • jobNumber<N>

    ID процесса, который может быть получен при использовании команд jobs или exec (если exec была вызвана с опцией --bg).

lsblk

Назначение

Выводит список обнаруженных блочных устройств в следующем формате:

<idx> <devName> hw:<hwName> <{present|absent}>, <{removable|non-removable}> [<blockCount> * <blockSize> bytes] <flags>

Где:

  • idx – индекс устройства в списке;
  • devName – имя устройства;
  • hwName – имя драйвера, обеспечивающее работу устройства;
  • present|absent – состояние устройства: present (доступно) или absent (недоступно);
  • removable|non-removable – тип устройства: removable (съёмное) или non-removable (несъёмное);
  • [<blockCount> * <blockSize> bytes] – объем устройства в байтах, заданный как умножение blockCount (количества блоков на устройстве) на blockSize (размер блока);
  • flags – дополнительные атрибуты устройства: raw (raw-устройство), ro (только для чтения), rw (чтение и запись), (partition) (раздел диска).

Например:

1 SDv2 hw:pl181-sd present, non-removable [522240 * 512 bytes] rw (partition)

Синтаксис

  • lsblk

Опции

Нет.

lspcie

Назначение

Выводит данные об обнаруженных на аппаратной платформе PCIe-устройствах. Для каждого PCIe-устройства указывается:

  • Адрес устройства в формате:

    <segment>:<bus>:<device>.<function>

    • segment – номер сегмента устройства в шестнадцатеричном виде;
    • bus – номер шины PCIe в шестнадцатеричном виде;
    • device – номер устройства на шине в шестнадцатеричном виде;
    • function – номер функции устройства в шестнадцатеричном виде.
  • Идентификаторы производителя и устройства в формате:

    vendorId: <vID>, deviceId: <dID>

    • vID – идентификатор производителя в шестнадцатеричном виде;
    • dID – идентификатор устройства в шестнадцатеричном виде.
  • Класс устройства и его подклассы в формате:

    class: <class>, subclass: <subc>, interface: <intr>, revision: <rev>

    • class – код класса устройства в шестнадцатеричном виде;
    • subc – код подкласса устройства в шестнадцатеричном виде;
    • intr – код программного интерфейса в шестнадцатеричном виде;
    • rev – номер ревизии устройства в шестнадцатеричном виде.
  • Прерывания в формате:

    IRQ: <irq>, pin: <pin>, mode: <mode>

    • irq – номер линии прерывания;
    • pin – номер контакта прерывания;
    • mode – режим прерывания в шестнадцатеричном виде.
  • Список базовых адресных регистров (англ. Base Address Register, BAR) в формате:

    BAR<N>: <type> <{prefetchable|non-prefetchable}> @ <start> - <end>

    • N – номер BAR;
    • type – тип BAR: IO (порт ввода-вывода), MEM32 (32-битная память), MEM64 (64-битная память) ;
    • prefetchable|non-prefetchable – свойства BAR: prefetchable (поддерживает предварительную загрузку данных в кэш), non-prefetchable (не поддерживает);
    • start – начальный адрес BAR;
    • end – конечный адрес BAR.

Синтаксис

  • lspcie

Опции

Нет.

lsusb

Назначение

Выводит список обнаруженных на аппаратной платформе USB-устройств в следующем формате:

<N> <devName>: <bus>/<addr>/<bus_idx> <<vendor> <product>> cfg<cfg_idx> (cnt=<cfgN>)

Где:

  • N – порядковый номер устройства в списке;
  • devName – имя устройства;
  • bus – номер шины USB;
  • addr – адрес устройства на шине USB;
  • idx – индекс устройства;
  • vendor – имя производителя устройства;
  • product – название продукта;
  • cfg_idx – индекс конфигурации устройства;
  • cfgN – номер конфигурации устройства.

Синтаксис

  • lsusb

Опции

Нет.

ping

Назначение

Проверяет сетевые соединения через ICMP-запросы.

Синтаксис

  • ping [-c <count>] host

Опции

  • -c <count>

    Количество отправляемых пакетов.

  • host

    Целевой сетевой узел, заданный IP-адресом или доменным именем.

reboot

Назначение

Перезагружает аппаратную платформу с использованием функции KnHalResetSystem().

Синтаксис

  • reboot

Опции

Нет.

top

Назначение

Выводит данные о процессах:

  • PID – идентификатор процесса;
  • PPID – идентификатор родительского процесса;
  • PR – приоритет процесса;
  • S – состояние процесса: R (работает), S (заблокирован) или T (завершён, но не удалён), U (не инициализирован);
  • THR – количество потоков в процессе;
  • VMEM – размер виртуальной памяти процесса (в страницах памяти);
  • PMEM – размер физической памяти, используемой процессом, (в страницах памяти);
  • VSHR – размер виртуальной памяти процесса, отображаемой на разделяемую физическую память (в страницах памяти);
  • TIME – суммарное время работы всех процессоров, затраченное на исполнение заданного процесса, (в наносекундах);
  • UTIME – суммарное время работы всех процессоров, затраченное на исполнение заданного процесса в пользовательском режиме, (в наносекундах);
  • NAME – имя процесса;
  • PATH – имя исполняемого файла в ROMFS, из которого запущен процесс.

Синтаксис

  • top [-h] [-a] [-f <format>]

Опции

  • -h

    Текст справки.

  • -a

    Дополнительная информация о процессах (PR и UTIME).

  • -f <format>

    Формат вывода. Подробная информация о формате вывода указана в тексте справки (опция -h).

В начало