Diese Seite beschreibt eine Teilmenge der Linux-Kernel-Schnittstellen, auf die Android angewiesen ist, um ordnungsgemäß zu funktionieren. Das Vorhandensein und die Korrektheit dieser Schnittstellen werden im Rahmen der Vendor Test Suite (VTS) getestet. Diese Teilmenge wird mit der Zeit wachsen und einen größeren Teil der Android-Kernel-Schnittstellen enthalten.
Systemaufrufe
Von allen Systemaufrufen wird erwartet, dass sie dieselben Signaturen und Semantiken wie im Upstream-Linux-Kernel derselben Version bereitstellen.
Prctl
Zusätzlich zu den Upstream- prctl
Operationen für unterstützte Kernel-Versionen verlässt sich Android auf zusätzliche prctl
Operationen, deren Implementierung im Android-Common-Kernel zu finden ist.
PR_SET_TIMERSLACK_PID PR_SET_VMA
Dateisysteme
Der Linux-Kernel exportiert Schnittstellen über mehrere Dateisysteme. Android erwartet von diesen Schnittstellen, dass sie dieselben Informationen im selben Format kommunizieren und dieselbe Semantik bereitstellen wie im Upstream-Linux-Kernel. Für Schnittstellen, die im Upstream nicht vorhanden sind, wird das entsprechende Verhalten durch den entsprechenden Zweig des gemeinsamen Android-Kernels vorgegeben.
procfs
Schnittstelle | Beschreibung |
---|---|
/proc/asound/ | Schreibgeschützte Datei mit der Liste der aktuell konfigurierten ALSA-Treiber. |
/proc/cmdline | Schreibgeschützte Datei mit Befehlszeilenargumenten, die an den Kernel übergeben werden. |
/proc/config.gz | Schreibgeschützte Datei mit der Kernel-Build-Konfiguration. |
/proc/cpuinfo | Schreibgeschützte Datei mit architekturspezifischen CPU-Details. |
/proc/diskstats | Schreibgeschützte Datei mit E/A-Statistiken von Blockgeräten. |
/proc/filesystems | Schreibgeschützte Datei, die die Dateisysteme auflistet, die derzeit vom Kernel unterstützt werden. |
/proc/kmsg | Schreibgeschützte Datei, die Kernel-Meldungen in Echtzeit anzeigt. |
/proc/loadavg | Schreibgeschützte Datei, die die durchschnittliche CPU- und E/A-Auslastung im Zeitverlauf anzeigt. |
/proc/meminfo | Schreibgeschützte Datei mit Details zum Speichersubsystem. |
/proc/misc | Schreibgeschützte Datei, die verschiedene Treiber auflistet, die auf dem verschiedenen Hauptgerät registriert sind. |
/proc/modules | Schreibgeschützte Datei mit Informationen zu geladenen Kernelmodulen. |
/proc/mounts | Symlink zu /proc/self/mounts , einer schreibgeschützten Datei, die Informationen über die gemounteten Dateisysteme auflistet. |
/proc/net | Verzeichnis, das verschiedene Netzwerk-Stack-Parameter enthält. |
/proc/net/xt_qtaguid/ | Datei mit Lese-/Schreibzugriff, die Informationen zu getaggten Sockets bereitstellt. |
/proc/pagetypeinfo | Schreibgeschützte Datei mit Seitenzuordnungsinformationen. |
/proc/stat | Schreibgeschützte Datei mit verschiedenen Kernel- und Systemstatistiken. |
/proc/swaps | Schreibgeschützte Datei, die die Auslagerungsspeichernutzung zeigt. Diese Datei ist optional; Ihr Inhalt und ihre Berechtigungen werden in VTS nur dann überprüft, wenn die Datei vorhanden ist . |
/proc/sys/abi/swp | Lese-/Schreibdatei, die das Verhalten des veralteten ARM-Befehls SWP bestimmt. |
/proc/sys/fs/pipe-max-size | Datei mit Lese-/Schreibzugriff, die die maximale Größe eines einzelnen Pipe-Puffers in Bytes meldet. |
/proc/sys/fs/protected_hardlinks | Lese-/Schreibdatei, die das Verhalten bei der Erstellung von Hardlinks steuert. |
/proc/sys/fs/protected_symlinks | Lese-/Schreibdatei, die das Verhalten bei der Erstellung symbolischer Links steuert. |
/proc/sys/fs/suid_dumpable | Lese-/Schreibdatei, die den Core-Dump-Modus für setuid oder anderweitig geschützte/verdorbene Binärdateien steuert. |
/proc/sys/kernel/core_pattern | Datei mit Lese-/Schreibzugriff, die das Muster für den Dateinamen des Core-Dumps angibt. |
/proc/sys/kernel/core_pipe_limit | Datei mit Lese-/Schreibzugriff, die definiert, wie viele gleichzeitig abstürzende Prozesse parallel an Benutzeranwendungen weitergeleitet werden dürfen. |
/proc/sys/kernel/dmesg_restrict | Lese-/Schreibdatei, die steuert, ob unprivilegierte Benutzer auf dmesg zugreifen dürfen. |
/proc/sys/kernel/domainname | Lese-/Schreibdatei, die den YP/NIS-Domänennamen des Systems enthält. |
/proc/sys/kernel/hostname | Lese-/Schreibdatei, die den Hostnamen des Systems bestimmt. |
/proc/sys/kernel/hung_task_timeout_secs | Datei mit Lese-/Schreibzugriff, die das Zeitlimit steuert, das verwendet wird, um festzustellen, wann eine Aufgabe nicht mehr reagiert und als hängengeblieben betrachtet werden sollte. Diese Datei ist optional; Ihr Inhalt und ihre Berechtigungen werden in VTS nur dann überprüft, wenn die Datei vorhanden ist . |
/proc/sys/kernel/kptr_restrict | Lese-/Schreibdatei, die bestimmt, ob Kernelzeiger in proc Dateien und anderen Schnittstellen gedruckt werden. |
/proc/sys/kernel/modules_disabled | Lese-/Schreibdatei, die steuert, ob Kernelmodule geladen werden dürfen. |
/proc/sys/kernel/panic_on_oops | Lese-/Schreibdatei, die das Verhalten des Kernels bei Hoppla steuert. |
/proc/sys/kernel/perf_event_max_sample_rate | Lese-/Schreibdatei, die die maximale Abtastrate von Leistungsereignissen steuert. |
/proc/sys/kernel/perf_event_paranoid | Lese-/Schreibdatei, die die Nutzung des Leistungsereignissystems durch nicht privilegierte Benutzer steuert. |
/proc/sys/kernel/pid_max | Datei mit Lese-/Schreibzugriff, die den Wrap-Wert der PID-Zuordnung enthält. |
/proc/sys/kernel/random/boot_id | Schreibgeschützte Datei, die bei jedem Start eine neue Zufalls-ID enthält. |
/proc/sys/kernel/randomize_va_space | Lese-/Schreibdatei, die die Randomisierungsrichtlinie für das Adresslayout für das System bestimmt. |
/proc/sys/kernel/sched_child_runs_first | Datei mit Lese-/Schreibzugriff, die steuert, ob neu gegabelte Aufgaben bei der Planung gegenüber ihren übergeordneten Aufgaben bevorzugt werden. |
/proc/sys/kernel/sched_latency_ns | Lese-/Schreibdatei, die die maximale Latenz (in Nanosekunden) enthält, die eine Aufgabe vor der Planung aufweisen kann. |
/proc/sys/kernel/sched_rt_period_us | Lese-/Schreibdatei, die die vom systemweiten RT-Ausführungslimit verwendete Periodenlänge in Mikrosekunden enthält. |
/proc/sys/kernel/sched_rt_runtime_us | Lese-/Schreibdatei, die relativ zu sched_rt_period_us die Zeitspanne enthält, die das System RT-Aufgaben ausführen darf. |
/proc/sys/kernel/sched_tunable_scaling | Lese-/Schreibdatei, die steuert, ob sched_latency_ns automatisch vom Scheduler basierend auf der Anzahl der CPUs angepasst werden soll. |
/proc/sys/kernel/sched_wakeup_granularity_ns | Datei mit Lese-/Schreibzugriff, die angibt, wie viel mehr virtuelle Laufzeit Aufgabe A als Aufgabe B in Nanosekunden haben muss, damit Aufgabe B ihr zuvorkommt. |
/proc/sys/kernel/sysrq | Lese-/Schreibdatei, die die Funktionen steuert, die über die sysrq-Taste aufgerufen werden dürfen. |
/proc/sys/net/* | Verzeichnis, das verschiedene Netzwerk-Stack-Parameter enthält. |
/proc/sysrq-trigger | Schreibgeschützte Datei, die zum Initiieren von Sysrq-Funktionen verwendet werden kann. |
/proc/sys/vm/dirty_background_ratio | Datei mit Lese-/Schreibzugriff, die als Prozentsatz des gesamten verfügbaren Speichers (freie Seiten und zurückgewinnbare Seiten) die Anzahl der Seiten enthält, bei denen die Hintergrund-Kernel-Flusher-Threads mit dem Ausschreiben fehlerhafter Daten beginnen. |
/proc/sys/vm/dirty_expire_centisecs | Lese-/Schreibdatei, die definiert, wann fehlerhafte Daten alt genug sind, um von den Kernel-Flusher-Threads ausgeschrieben zu werden. |
/proc/sys/vm/drop_caches | Datei mit Lese-/Schreibzugriff, die verwendet werden kann, um den Kernel zu zwingen, saubere Caches zu löschen. |
/proc/sys/vm/extra_free_kbytes | Lese-/Schreibdatei, die verwendet werden kann, um zusätzlichen freien Speicher zwischen dem Schwellenwert, bei dem die Hintergrundrückgewinnung (kswapd) einsetzt, und dem Schwellenwert, bei dem die direkte Rückgewinnung (durch Zuweisung von Prozessen) einsetzt, zu halten. Diese Datei ist optional; Ihr Inhalt und ihre Berechtigungen werden in VTS nur dann überprüft, wenn die Datei vorhanden ist . |
/proc/sys/vm/max_map_count | Datei mit Lese-/Schreibzugriff, die die maximale Anzahl an Speicherzuordnungsbereichen enthält, die ein Prozess haben darf. |
/proc/sys/vm/mmap_min_addr | Lese-/Schreibdatei, die die Mindestadresse bestimmt, die mmap 'd werden kann. |
/proc/sys/vm/mmap_rnd_bits | Lese-/Schreibdatei, die den Grad der Zufälligkeit in mmap -Adressen angibt. |
/proc/sys/vm/mmap_rnd_compat_bits | Lese-/Schreibdatei, die den Grad der Zufälligkeit in mmap -Adressen angibt. |
/proc/sys/vm/overcommit_memory | Lese-/Schreibdatei, die den Abrechnungsmodus für den virtuellen Kernelspeicher bestimmt. |
/proc/sys/vm/page-cluster | Lese-/Schreibdatei, die die Anzahl der Seiten steuert, bis zu der aufeinanderfolgende Seiten in einem einzigen Versuch aus dem Swap eingelesen werden. |
/proc/uid_cputime/remove_uid_range | Schreibgeschützte Datei, die beim Schreiben die Anzeige von UIDs in /proc/uid_cputime/show_uid_stat entfernt. |
/proc/uid_cputime/show_uid_stat | Schreibgeschützte Datei, die die Zeit enthält, die die Prozesse einer UID im Benutzer- und Kernelbereich verbracht haben. |
/proc/uid_io/stats | Schreibgeschützte Datei mit einer Liste von E/A-Statistiken für jede UID im System |
/proc/uid_procstat/set | Schreibgeschützte Datei, die zum Konfigurieren einer UID als Vordergrund oder Hintergrund verwendet wird. |
/proc/uid_time_in_state | Schreibgeschützte Datei, die die Zeit enthält, die die Prozesse jeder UID mit der Ausführung bei jeder verfügbaren Häufigkeit verbringen. Diese Datei ist optional; Ihr Inhalt und ihre Berechtigungen werden in VTS nur dann überprüft, wenn die Datei vorhanden ist . |
/proc/uptime | Schreibgeschützte Datei, die anzeigt, wie lange das System bereits läuft. |
/proc/version | Schreibgeschützte Datei, die eine Zeichenfolge enthält, die die Kernel-Version beschreibt. |
/proc/vmallocinfo | Schreibgeschützte Datei mit vmalloc -Bereichen. |
/proc/vmstat | Schreibgeschützte Datei mit Statistiken zum virtuellen Speicher vom Kernel. |
/proc/zoneinfo | Schreibgeschützte Datei mit Informationen zu Speicherzonen. |
Entwickler
Schnittstelle | Beschreibung |
---|---|
/dev/ashmem | Anonyme Gerätedatei mit gemeinsam genutztem Speicher. |
/dev/binder | Binder-Gerätedatei. |
/dev/hwbinder | Hardware-Binder-Gerätedatei. |
/dev/tun | Universelle TUN/TAP-Gerätedatei. |
/dev/xt_qtaguid | QTAGUID Netfilter-Gerätedatei. |
sysfs
Schnittstelle | Beschreibung |
---|---|
/sys/class/net/*/mtu | Lese-/Schreibdatei, die die maximale Übertragungseinheit für jede Schnittstelle enthält. |
/sys/class/rtc/*/hctosys | Schreibgeschützte Datei, die zeigt, ob ein bestimmter RTC die Systemzeit beim Booten und Fortsetzen bereitstellt. |
/sys/devices/system/cpu/ | Verzeichnis mit Informationen zur CPU-Konfiguration und -Frequenz. |
/sys/kernel/wakeup_reasons | Verzeichnis schreibgeschützter Dateien, die den letzten Unterbrechungszeitpunkt und den Grund für die Wiederaufnahme enthalten. |
/sys/power/state | Lese-/Schreibdatei, die die Ruhezustände des Systems steuert. |
/sys/power/wake_lock | Datei mit Lese-/Schreibzugriff, die die aktiven Wakelocks enthält. |
/sys/power/wake_unlock | Lese-/Schreibdatei, die nicht aktive Wakelocks enthält. |
/sys/power/wakeup_count | Datei mit Lese-/Schreibzugriff, die verwendet werden kann, um das System in einen Ruhezustand zu versetzen und dabei das gleichzeitige Eintreffen von Weckereignissen zu berücksichtigen. |
selinuxfs
Das Framework mountet selinuxfs
unter /sys/fs/selinux
.
Weg | Beschreibung |
---|---|
/sys/fs/selinux/checkreqprot | Lese-/Schreibdatei mit einem Binärflag, das bestimmt, wie Selinux-Schutzmaßnahmen bei mmap und mprotect -Aufrufen überprüft werden. |
/sys/fs/selinux/null | Nullgerät mit Lese-/Schreibzugriff für die Verwendung durch Selinux. |
/sys/fs/selinux/policy | Schreibgeschützte Datei, die die Selinux-Richtlinie in Binärform enthält. |