Файлы System/bin Android 12. Справочник.


  Все     Команда     Скрипт     Служба     Приложение  

toybox
Универсальная ("всё в одном") командная строка Linux

Тип файла: команда
  Eng  

usage: toybox
@@[--long |


--help |

--version |

[COMMAND]
[ARGUMENTS...]]

Без аргументов "toybox" показывает доступные имена КОМАНД

Добавить --long, чтобы включить предлагаемый путь
установки для каждой команды,

Первый аргумент — это имя КОМАНДЫ, за которой
следуют любые АРГУМЕНТЫ этой команды.

Большинство команд toybox также понимают:

  • --help Показать справку по командам (только)

  • --version Показать версию toybox (только)

    Имя файла "-" означает stdin/stdout,
    "--" останавливает синтаксический анализ аргументов

    Числовые аргументы принимают однобуквенный суффикс:
    kilo
    mega
    giga
    tera
    peta
    exabytes
    плюс дополнительный «d»
    для обозначения десятичных 1000 вместо 1024.

    Продолжительность может быть десятичной дробью
    и принимать суффиксы
    "m" - minute
    "h" - hour
    "d" - day
    0.1m = 6s

    [ ToyBox ]    

    Комментарии
    Использование toybox

    Сборка toybox создает двоичный файл multicall, программу «швейцарский армейский нож», которая действует по-разному в зависимости от имени, под которым она была вызвана (cp, mv, cat...).
    Установка toybox добавляет символические ссылки для каждого имени команды в $PATH.
    Специальная команда «toybox» рассматривает свой первый аргумент как команду для запуска.
    Без аргументов он перечисляет доступные команды.
    Это позволяет использовать toybox без его установки.
    Это единственная команда, которая может иметь произвольный суффикс (отсюда и «toybox-armv5l»).
    Команда «help» предоставляет информацию о каждой команде (например, «help cat»).

    Настройка toybox

    Он работает как ядро Linux: allnoconfig, defconfig и menuconfig редактируют файл «.config», который выбирает, какие функции включить в результирующий двоичный файл. Вы можете сохранить и повторно использовать файл .config, хотя может потребоваться запустить «make oldconfig», чтобы повторно запустить преобразователь зависимостей при переходе на новые версии.
    Максимально разумной конфигурацией является «make defconfig»: allyesconfig не рекомендуется для toybox, поскольку он разрешает незавершенные команды и код отладки.

    Создание системы Linux на базе Toybox

    Toybox — это не полноценная операционная система, это программа, работающая под управлением операционной системы. Для загрузки простой системы в приглашение оболочки требуются три пакета: ядро операционной системы (Linux*) для управления оборудованием, одна или несколько программ для запуска системы (toybox) и библиотека C («libc») для их связывания. вместе (toybox был протестирован с musl, uClibc, glibc и bionic).

    Библиотека C является частью «цепочки инструментов», которая представляет собой интегрированный набор компилятора, ассемблера и компоновщика, а также стандартные заголовочные файлы и библиотеки, необходимые для создания программ на C. (И различные двоичные файлы, такие как nm и objdump.)
    Статическая компоновка (с параметром --static) копирует содержимое разделяемой библиотеки в программу, в результате чего получается более крупная, но более переносимая программа, которая может работать, даже если это единственный файл в файловой системе. В противном случае "динамически" компонуемые программы требуют, чтобы файлы библиотеки присутствовали в целевой системе ("man ldd" и "man ld.so" для подробностей).

    Примером системы на основе Toybox является Aboriginal Linux:
    http://landley.net/aboriginal/about.html

    Он предназначен для работы под управлением qemu, эмулируя несколько различных аппаратных архитектур (x86, x86-64, arm, mips, sparc, powerpc, sh4). Каждый выпуск toybox проходит регрессионное тестирование путем сборки Linux From Scratch в рамках этой системы на основе toybox для каждой поддерживаемой архитектуры с использованием QEMU для эмуляции систем с прямым порядком байтов и прямым порядком байтов с разным размером слова и требованиями к выравниванию. (Конечная цель — заменить Linux From Scratch проектом Android с открытым исходным кодом.)
  • Или что-то, предоставляющее тот же API, например уровень эмуляции Linux во FreeBSD.