接口要求

本頁描述了 Android 正常運行所依賴的 Linux 內核接口的子集。這些接口的存在和正確性作為供應商測試套件 (VTS)的一部分進行測試。該子集將隨著時間的推移而增長,以包含更多的 Android 內核接口。

系統調用

所有系統調用都應提供與相同版本的上游 Linux 內核相同的簽名和語義。

prctl

除了支持內核版本的上游prctl操作外,Android 還依賴額外的prctl操作,其實現可以在 android-common 內核中找到。

PR_SET_TIMERSLACK_PID
PR_SET_VMA

文件系統

Linux 內核通過多個文件系統導出接口。 Android 期望這些接口以相同的格式傳遞相同的信息,並提供與上游 Linux 內核相同的語義。對於上游不存在的接口,相應的行為由 Android 公共內核的相應分支決定。

過程

界面描述
/proc/聲音/顯示當前配置的 ALSA 驅動程序列表的只讀文件。
/proc/cmdline包含傳遞給內核的命令行參數的只讀文件。
/proc/config.gz包含內核構建配置的只讀文件。
/proc/cpuinfo包含特定於體系結構的 CPU 詳細信息的只讀文件。
/proc/diskstats顯示塊設備的 I/O 統計信息的只讀文件。
/proc/文件系統列出內核當前支持的文件系統的只讀文件。
/proc/kmsg實時顯示內核消息的只讀文件。
/proc/loadavg顯示 CPU 和 IO 負載平均值隨時間變化的只讀文件。
/proc/meminfo顯示內存子系統詳細信息的只讀文件。
/proc/misc列出在其他主要設備上註冊的其他驅動程序的只讀文件。
/proc/模塊包含有關加載的內核模塊信息的只讀文件。
/proc/mounts /proc/self/mounts的符號鏈接,這是一個只讀文件,列出了有關已安裝文件系統的信息。
/proc/net包含各種網絡堆棧參數的目錄。
/proc/net/xt_qtaguid/提供有關標記套接字的信息的讀寫文件。
/proc/pagetypeinfo包含頁面分配器信息的只讀文件。
/proc/stat包含各種內核和系統統計信息的只讀文件。
/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控制內核在 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每次啟動時包含新隨機 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 是否應由調度程序根據 CPU 數量自動調整的讀寫文件。
/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 '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-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 的 I/O 統計信息列表的只讀文件
/proc/uid_procstat/set用於將 UID 配置為前台或後台的只寫文件。
/proc/uid_time_in_state只讀文件,包含每個 UID 的進程在每個可用頻率上執行所花費的時間。該文件是可選的;僅當文件存在時,才會在 VTS 中驗證其內容和權限
/proc/正常運行時間只讀文件,顯示系統運行了多長時間。
/proc/版本包含描述內核版本的字符串的只讀文件。
/proc/vmallocinfo包含vmalloc範圍的只讀文件。
/proc/vmstat包含來自內核的虛擬內存統計信息的只讀文件。
/proc/zoneinfo包含有關內存區域信息的只讀文件。

開發者

界面描述
/dev/ashmem匿名共享內存設備文件。
/dev/活頁夾活頁夾設備文件。
/dev/hwbinder硬件綁定設備文件。
/dev/tun通用 TUN/TAP 設備文件。
/dev/xt_qtaguid QTAGUID netfilter 設備文件。

系統文件

界面描述
/sys/class/net/*/mtu包含每個接口的最大傳輸單元的讀寫文件。
/sys/class/rtc/*/hctosys只讀文件,顯示特定 rtc 是否在啟動和恢復時提供系統時間。
/系統/設備/系統/中央處理器/包含有關 CPU 配置和頻率信息的目錄。
/sys/kernel/wakeup_reasons包含上次掛起時間和恢復原因的只讀文件目錄。
/系統/電源/狀態控制系統睡眠狀態的讀寫文件。
/sys/power/wake_lock包含活動喚醒鎖的讀寫文件。
/sys/power/wake_unlock包含非活動喚醒鎖的讀寫文件。
/sys/power/wakeup_count讀寫文件,可用於將系統置於睡眠狀態,同時考慮喚醒事件的並發到達。

selinuxfs

該框架將selinuxfs掛載在/sys/fs/selinux

小路描述
/sys/fs/selinux/checkreqprot包含二進制標誌的讀/寫文件,該標誌確定如何在mmapmprotect調用上檢查 selinux 保護。
/sys/fs/selinux/null selinux 使用的讀/寫空設備。
/sys/fs/selinux/策略包含二進制形式的 selinux 策略的只讀文件。