На этой странице описывается подмножество интерфейсов ядра 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/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 | Универсальный файл устройства 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 в двоичной форме. |