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