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

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

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

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

прктл

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

PR_SET_TIMERSLACK_PID
PR_SET_VMA

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

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

procfs

Интерфейс Описание
/прок/звук/ Доступный только для чтения файл, показывающий список настроенных в данный момент драйверов ALSA.
/proc/cmdline Доступный только для чтения файл, содержащий аргументы командной строки, передаваемые ядру.
/proc/config.gz Доступный только для чтения файл, содержащий конфигурацию сборки ядра.
/прок/процессоринфо Доступный только для чтения файл, содержащий сведения о процессоре для конкретной архитектуры.
/прок/дискстатс Доступный только для чтения файл, показывающий статистику ввода-вывода блочных устройств.
/proc/файловые системы Доступный только для чтения файл со списком файловых систем, которые в настоящее время поддерживаются ядром.
/прок/кмсг Доступный только для чтения файл, показывающий сообщения ядра в режиме реального времени.
/proc/средняя загрузка Доступный только для чтения файл, показывающий среднюю загрузку ЦП и ввода-вывода с течением времени.
/proc/meminfo Доступный только для чтения файл, показывающий сведения о подсистеме памяти.
/прок/разное Доступный только для чтения файл со списком различных драйверов, зарегистрированных на различных основных устройствах.
/прок/модули Доступный только для чтения файл, содержащий информацию о загруженных модулях ядра.
/прок/монтирует Симлинк на /proc/self/mounts , который является доступным только для чтения файлом, содержащим информацию о смонтированных файловых системах.
/прок/нет Каталог, содержащий различные параметры сетевого стека.
/proc/net/xt_qtaguid/ Файл для чтения и записи, предоставляющий информацию о помеченных сокетах.
/proc/pagetypeinfo Доступный только для чтения файл, содержащий информацию о распределителе страниц.
/прок/статистика Доступный только для чтения файл, содержащий различную статистику ядра и системы.
/прок/свопы Доступный только для чтения файл, показывающий использование пространства подкачки. Этот файл является необязательным; его содержимое и разрешения будут проверены в VTS только в том случае, если файл присутствует .
/proc/sys/аби/swp Файл для чтения и записи, определяющий поведение устаревшей инструкции ARM SWP.
/proc/sys/fs/pipe-максимальный размер Файл для чтения и записи, который сообщает о максимальном размере в байтах отдельного буфера канала.
/proc/sys/fs/protected_hardlinks Файл для чтения и записи, который управляет поведением при создании жестких ссылок.
/proc/sys/fs/protected_symlinks Файл для чтения и записи, управляющий поведением при создании символических ссылок.
/proc/sys/fs/suid_dumpable Файл для чтения и записи, который управляет режимом дампа ядра для setuid или других защищенных/испорченных двоичных файлов.
/proc/sys/kernel/core_pattern Файл для чтения и записи, определяющий шаблон имени файла дампа ядра.
/proc/sys/ядро/core_pipe_limit Файл для чтения и записи, который определяет, сколько одновременных аварийных процессов может быть передано в пользовательские приложения параллельно.
/proc/sys/ядро/dmesg_restrict Файл для чтения и записи, который определяет, могут ли непривилегированные пользователи получать доступ к dmesg.
/proc/sys/kernel/имя домена Файл для чтения и записи, содержащий доменное имя системы 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 Файл для чтения и записи, управляющий поведением ядра при oops.
/proc/sys/kernel/perf_event_max_sample_rate Файл для чтения и записи, который управляет максимальной частотой дискретизации событий производительности.
/proc/sys/kernel/perf_event_paranoid Файл для чтения и записи, контролирующий использование системы событий производительности непривилегированными пользователями.
/proc/sys/ядро/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/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 'd.
/proc/sys/VM/mmap_rnd_bits Файл для чтения и записи, который определяет степень случайности в адресах, заданных mmap .
/proc/sys/VM/mmap_rnd_compat_bits Файл для чтения и записи, который определяет степень случайности в адресах, заданных mmap .
/proc/sys/VM/overcommit_memory Файл для чтения и записи, определяющий режим учета виртуальной памяти ядра.
/proc/sys/vm/page-кластер Файл для чтения и записи, контролирующий количество страниц, до которых последовательные страницы считываются из подкачки за одну попытку.
/proc/uid_cputime/remove_uid_range Файл только для записи, который при записи удаляет UID из отображения в /proc/uid_cputime/show_uid_stat .
/proc/uid_cputime/show_uid_stat Файл только для чтения, содержащий время, которое процессы UID провели в пространстве пользователя и ядра.
/proc/uid_io/статистика Доступный только для чтения файл, содержащий список статистики ввода-вывода для каждого UID в системе.
/proc/uid_procstat/установить Файл только для записи, используемый для настройки UID в качестве переднего плана или фона.
/proc/uid_time_in_state Файл только для чтения, содержащий время, которое процессы каждого UID тратят на выполнение на каждой доступной частоте. Этот файл является необязательным; его содержимое и разрешения будут проверены в VTS только в том случае, если файл присутствует .
/proc/время работы Доступный только для чтения файл, который показывает, как долго работает система.
/прок/версия Файл только для чтения, содержащий строку, описывающую версию ядра.
/proc/vmallocinfo Доступный только для чтения файл, содержащий vmalloc 'd.
/proc/vmstat Доступный только для чтения файл, содержащий статистику виртуальной памяти из ядра.
/прок/зонеинфо Доступный только для чтения файл, содержащий информацию о зонах памяти.

разработчик

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

sysfs

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

selinuxfs

Фреймворк монтирует selinuxfs в /sys/fs/selinux .

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