Требования к интерфейсу

На этой странице описывается подмножество интерфейсов ядра Linux, от которых зависит правильная работа Android. Наличие и корректность этих интерфейсов проверяются в рамках Vendor Test Suite (VTS) . Со временем это подмножество будет расширяться и включать в себя большую часть интерфейсов ядра Android.

Системные вызовы

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

прктл

В дополнение к вышестоящим операциям prctl для поддерживаемых версий ядра Android использует дополнительные операции prctl , реализацию которых можно найти в ядре android-common.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

Файловые системы

Ядро Linux экспортирует интерфейсы через несколько файловых систем. Android ожидает, что эти интерфейсы будут передавать ту же информацию, в том же формате и обеспечивать ту же семантику, что и исходное ядро ​​Linux. Для интерфейсов, которые не существуют в исходном коде, соответствующее поведение определяется соответствующей ветвью общего ядра Android.

прокфс

Интерфейс Описание
/проц/звук/ Доступный только для чтения файл, показывающий список настроенных в данный момент драйверов ALSA.
/proc/cmdline Файл только для чтения, содержащий аргументы командной строки, передаваемые ядру.
/proc/config.gz Доступный только для чтения файл, содержащий конфигурацию сборки ядра.
/proc/cpuinfo Файл только для чтения, содержащий сведения о процессоре, зависящие от архитектуры.
/proc/diskstats Доступный только для чтения файл, показывающий статистику ввода-вывода блочных устройств.
/proc/файловые системы Список файлов, доступных только для чтения. Файловые системы, которые в настоящее время поддерживаются ядром.
/proc/kmsg Доступный только для чтения файл, показывающий сообщения ядра в реальном времени.
/proc/loadavg Доступный только для чтения файл, показывающий среднюю загрузку ЦП и ввода-вывода с течением времени.
/proc/meminfo Доступный только для чтения файл, показывающий подробную информацию о подсистеме памяти.
/proc/разное Доступный только для чтения файл со списком различных драйверов, зарегистрированных на разных основных устройствах.
/прок/модули Доступный только для чтения файл, содержащий информацию о загруженных модулях ядра.
/proc/монтирует Символическая ссылка на /proc/self/mounts — файл, доступный только для чтения и содержащий информацию о смонтированных файловых системах.
/прок/сеть Каталог, содержащий различные параметры сетевого стека.
/proc/net/xt_qtaguid/ Файл для чтения и записи, предоставляющий информацию о помеченных сокетах.
/proc/pagetypeinfo Файл, доступный только для чтения, содержащий информацию о распределителе страниц.
/прок/стат Файл только для чтения, содержащий различную статистику ядра и системы.
/proc/свопы Доступный только для чтения файл, показывающий использование пространства подкачки. Этот файл является необязательным; его содержимое и разрешения будут проверены в VTS только в том случае, если файл присутствует .
/proc/sys/abi/swp Файл чтения-записи, определяющий поведение устаревшей инструкции ARM SWP.
/proc/sys/fs/pipe-max-size Файл для чтения и записи, который сообщает максимальный размер (в байтах) отдельного буфера канала.
/proc/sys/fs/protected_hardlinks Файл чтения и записи, управляющий процессом создания жестких ссылок.
/proc/sys/fs/protected_symlinks Файл чтения-записи, управляющий поведением создания символических ссылок.
/proc/sys/fs/suid_dumpable Файл для чтения и записи, который управляет режимом дампа ядра для setuid или иным образом защищенных/испорченных двоичных файлов.
/proc/sys/kernel/core_pattern Файл для чтения и записи, задающий шаблон имени файла дампа памяти.
/proc/sys/kernel/core_pipe_limit Файл чтения-записи, определяющий, сколько одновременных процессов сбоя может быть параллельно передано пользовательским приложениям.
/proc/sys/kernel/dmesg_restrict Файл для чтения и записи, который контролирует, могут ли непривилегированные пользователи получать доступ к dmesg.
/proc/sys/ядро/имя_домена Файл для чтения и записи, содержащий доменное имя системы YP/NIS.
/proc/sys/ядро/имя хоста Файл чтения-записи, определяющий имя хоста системы.
/proc/sys/kernel/hung_task_timeout_secs Файл чтения и записи, который управляет тайм-аутом, используемым для определения того, когда задача перестает отвечать на запросы и ее следует считать зависшей. Этот файл является необязательным; его содержимое и разрешения будут проверены в VTS только в том случае, если файл присутствует .
/proc/sys/kernel/kptr_restrict Файл для чтения и записи, определяющий, печатаются ли указатели ядра в файлах proc и других интерфейсах.
/proc/sys/kernel/modules_disabled Файл чтения-записи, который контролирует, можно ли загружать модули ядра.
/proc/sys/kernel/panic_on_oops Файл чтения-записи, управляющий поведением ядра при возникновении ошибок.
/proc/sys/kernel/perf_event_max_sample_rate Файл чтения и записи, который управляет максимальной частотой дискретизации событий производительности.
/proc/sys/kernel/perf_event_paranoid Файл для чтения и записи, который контролирует использование системы событий производительности непривилегированными пользователями.
/proc/sys/kernel/pid_max Файл для чтения и записи, содержащий значение переноса выделения PID.
/proc/sys/kernel/random/boot_id Файл, доступный только для чтения, который содержит новый случайный идентификатор при каждой загрузке.
/proc/sys/kernel/randomize_va_space Файл чтения-записи, определяющий политику рандомизации структуры адресов для системы.
/proc/sys/kernel/sched_child_runs_first Файл для чтения и записи, который контролирует, будут ли новые разветвленные задачи иметь преимущество при планировании перед родительскими задачами.
/proc/sys/kernel/sched_latency_ns Файл чтения и записи, содержащий максимальную задержку в наносекундах, которая может возникнуть перед планированием задачи.
/proc/sys/kernel/sched_rt_ period_us Файл для чтения и записи, содержащий длину периода, используемого общесистемным пределом выполнения RT, в микросекундах.
/proc/sys/kernel/sched_rt_runtime_us Файл для чтения и записи, содержащий количество времени относительно sched_rt_ period_us, в течение которого система может выполнять задачи RT.
/proc/sys/kernel/sched_tunable_scaling Файл чтения-записи, который определяет, должен ли планировщик автоматически корректировать sched_latency_ns в зависимости от количества процессоров.
/proc/sys/kernel/sched_wakeup_granularity_ns Файл для чтения и записи, который содержит информацию о том, насколько больше виртуальной задачи выполнения A должно быть в наносекундах, чем у задачи B, чтобы задача B могла ее вытеснить.
/proc/sys/ядро/sysrq Файл для чтения и записи, который управляет функциями, которые разрешено вызывать с помощью ключа sysrq.
/proc/sys/net/* Каталог, содержащий различные параметры сетевого стека.
/proc/sysrq-триггер Файл, доступный только для записи, который можно использовать для запуска функций sysrq.
/proc/sys/vm/dirty_background_ratio Файл для чтения и записи, содержащий в процентах от общего объема доступной памяти (свободные страницы и страницы, подлежащие восстановлению) количество страниц, на которых фоновые потоки очистки ядра начнут записывать грязные данные.
/proc/sys/vm/dirty_expire_centisecs Файл чтения-записи, определяющий, когда грязные данные станут достаточно старыми, чтобы их можно было записать потоками очистки ядра.
/proc/sys/vm/drop_caches Файл чтения-записи, который можно использовать, чтобы заставить ядро ​​очистить кэш.
/proc/sys/vm/extra_free_kbytes Файл для чтения и записи, который можно использовать для сохранения дополнительной свободной памяти между порогом, при котором срабатывает фоновое восстановление (kswapd), и порогом, когда срабатывает прямое восстановление (путем выделения процессов). Этот файл является необязательным; его содержимое и разрешения будут проверены в VTS только в том случае, если файл присутствует .
/proc/sys/vm/max_map_count Файл для чтения и записи, содержащий максимальное количество областей карты памяти, которое может иметь процесс.
/proc/sys/vm/mmap_min_addr Файл чтения-записи, определяющий минимальный адрес, который может быть задан mmap .
/proc/sys/vm/mmap_rnd_bits Файл для чтения и записи, определяющий степень случайности в адресах mmap .
/proc/sys/vm/mmap_rnd_compat_bits Файл для чтения и записи, определяющий степень случайности в адресах mmap .
/proc/sys/vm/overcommit_memory Файл чтения-записи, определяющий режим учета виртуальной памяти ядра.
/proc/sys/vm/page-cluster Файл чтения-записи, управляющий количеством страниц, до которых последовательные страницы считываются из раздела подкачки за одну попытку.
/proc/uid_cputime/remove_uid_range Доступный только для записи файл, который при записи удаляет UID из отображения в /proc/uid_cputime/show_uid_stat .
/proc/uid_cputime/show_uid_stat Доступный только для чтения файл, содержащий время, проведенное процессами UID в пространстве пользователя и ядра.
/proc/uid_io/stats Доступный только для чтения файл, содержащий список статистики ввода-вывода для каждого UID в системе.
/proc/uid_procstat/set Файл, доступный только для записи, используемый для настройки UID в качестве основного или фонового изображения.
/proc/uid_time_in_state Доступный только для чтения файл, содержащий время, которое процессы каждого UID затрачивают на выполнение с каждой доступной частотой. Этот файл является необязательным; его содержимое и разрешения будут проверены в VTS только в том случае, если файл присутствует .
/прок/время безотказной работы Доступный только для чтения файл, показывающий, как долго работает система.
/проц/версия Доступный только для чтения файл, содержащий строку, описывающую версию ядра.
/proc/vmallocinfo Доступный только для чтения файл, содержащий диапазоны vmalloc .
/proc/vmstat Доступный только для чтения файл, содержащий статистику виртуальной памяти ядра.
/proc/zoneinfo Доступный только для чтения файл, содержащий информацию о зонах памяти.

разработчик

Интерфейс Описание
/dev/ashmem Анонимный файл устройства с общей памятью.
/dev/связующее Файл устройства подшивки.
/dev/хвбиндер Файл устройства связывания оборудования.
/dev/тун Универсальный файл устройства TUN/TAP.
/dev/xt_qtaguid Файл устройства сетевого фильтра QTAGUID.

sysfs

Интерфейс Описание
/sys/класс/сеть/*/mtu Файл чтения-записи, содержащий максимальную единицу передачи для каждого интерфейса.
/sys/класс/rtc/*/hctosys Файл только для чтения, показывающий, предоставляет ли конкретный RTC системное время при загрузке и возобновлении работы.
/sys/устройства/система/процессор/ Каталог, содержащий информацию о конфигурации и частоте процессора.
/sys/kernel/wakeup_reasons Каталог файлов, доступных только для чтения, содержащий время последней приостановки и причину возобновления.
/sys/питание/состояние Файл чтения и записи, который управляет состояниями сна системы.
/sys/power/wake_lock Файл для чтения и записи, содержащий активные блокировки пробуждения.
/sys/power/wake_unlock Файл для чтения и записи, содержащий неактивные блокировки пробуждения.
/sys/power/wakeup_count Файл чтения-записи, который можно использовать для перевода системы в состояние сна с учетом одновременного поступления событий пробуждения.

selinuxfs

Платформа монтирует selinuxfs в /sys/fs/selinux .

Путь Описание
/sys/fs/selinux/checkreqprot Файл чтения/записи, содержащий двоичный флаг, определяющий, как проверяется защита selinux при вызовах mmap и mprotect .
/sys/фс/селинукс/нуль Чтение/запись нулевого устройства для использования selinux.
/sys/fs/selinux/политика Файл только для чтения, содержащий политику selinux в двоичной форме.