Wymagania dotyczące interfejsu

Na tej stronie opisujemy podzbiór interfejsów jądra systemu Linux, na których Android wymaga poprawnego działania. Obecność i poprawność tych interfejsów jest przetestowane w ramach Vendor Test Suite (VTS). Ten podzbiór będzie się powiększać, aby uwzględnić większą część Interfejsy jądra Androida.

Wywołania systemowe

Wszystkie wywołania systemowe powinny mieć takie same podpisy i semantykę jak w nadrzędnym jądrze Linuksa w tej samej wersji.

PRctl

Oprócz nadrzędnych operacji prctl na potrzeby obsługiwanych operacji jądra systemu, Android korzysta z dodatkowych operacji prctl, które można znaleźć w jądrze android-common.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

Systemy plików

Jądro Linuksa eksportuje interfejsy za pomocą kilku systemów plików. Wymagania Androida za pomocą tych interfejsów przekazują te same informacje w tym samym formacie zapewniają taką samą semantykę co w źródłowym jądrze Linuksa. Interfejs, który nie występują w źródle, odpowiednie działanie jest zależne od wersji wspólnego jądra Androida.

Procfs

Interfejs Opis
/proc/asound/ Plik tylko do odczytu z listą obecnie skonfigurowanych sterowników ALSA.
/proc/cmdline Plik tylko do odczytu zawierający argumenty wiersza poleceń przekazane do jądra.
/proc/config.gz Plik tylko do odczytu zawierający konfigurację kompilacji jądra.
/proc/cpuinfo Plik tylko do odczytu zawierający szczegóły procesora związane z architekturą.
/proc/diskstats Plik tylko do odczytu ze statystykami wejścia-wyjścia urządzeń blokowych.
/proc/filesystems Systemy plików z listą plików tylko do odczytu obsługiwane obecnie przez jądro.
/proc/kmsg Plik tylko do odczytu pokazujący komunikaty jądra w czasie rzeczywistym.
/proc/loadavg Plik tylko do odczytu ze średnią wartością obciążenia procesora i wejścia-wyjścia w danym okresie.
/proc/meminfo Plik tylko do odczytu ze szczegółami podsystemu pamięci.
/proc/misc Plik tylko do odczytu z listą różnych sterowników zarejestrowanych w na innym głównym urządzeniu.
/proc/modules Plik tylko do odczytu zawierający informacje o załadowanych modułach jądra.
/proc/mounts Link symboliczny do pliku /proc/self/mounts, który jest przeznaczony tylko do odczytu z informacjami o podłączonych systemach plików.
/proc/net Katalog zawierający różne parametry stosu sieciowego.
/proc/net/xt_qtaguid/ Plik do odczytu i zapisu zawierający informacje o otagowanych gniazdach.
/proc/pagetypeinfo Plik tylko do odczytu zawierający informacje o przydzielaniu stron.
/proc/stat Plik tylko do odczytu zawierający różne statystyki jądra i systemu.
/proc/swaps Plik tylko do odczytu pokazujący wykorzystanie miejsca wymiany. Ten plik jest opcjonalnie; jego zawartość i uprawnienia są weryfikowane w VTS tylko wtedy, gdy
/proc/sys/abi/swp Plik do odczytu i zapisu, który określa zachowanie przestarzałego procesora ARM proces tworzenia instrukcji.
/proc/sys/fs/pipe-max-size Plik do odczytu i zapisu, który zgłasza maksymalny rozmiar (w bajtach) z pojedynczego bufora potoku.
/proc/sys/fs/protected_hardlinks Plik do odczytu i zapisu, który kontroluje tworzenie linków twardych.
/proc/sys/fs/protected_symlinks Plik do odczytu i zapisu, który kontroluje tworzenie symboli .
/proc/sys/fs/suid_dumpable Plik do odczytu i zapisu, który steruje trybem zrzutu podstawowego dla setuid lub w inny sposób plików binarnych chronionych i zapisanych plików binarnych.
/proc/sys/kernel/core_pattern Plik do odczytu i zapisu, który określa wzorzec nazwy podstawowego pliku zrzutu.
/proc/sys/kernel/core_pipe_limit Plik do odczytu i zapisu, który określa, ile równoczesnych procesów awarii może zostać przesyłać równolegle do aplikacji użytkowników.
/proc/sys/kernel/dmesg_restrict Plik do odczytu i zapisu, który określa, czy użytkownicy bez uprawnień mają dostęp dmesg.
/proc/sys/kernel/domainname Plik do odczytu i zapisu zawierający nazwę domeny YP/NIS systemu.
/proc/sys/kernel/hostname Plik do odczytu i zapisu, który określa nazwę hosta systemu.
/proc/sys/kernel/hung_task_timeout_secs Plik do odczytu i zapisu, który kontroluje czas oczekiwania używany do określania, kiedy zadanie przestała odpowiadać i powinna być uznawana za niedostępną. Ten plik: jest opcjonalny. jego zawartość i uprawnienia są weryfikowane w VTS tylko wtedy, plik istnieje.
/proc/sys/kernel/kptr_restrict Plik do odczytu i zapisu określający, czy wskaźniki jądra są drukowane proc i inne interfejsy.
/proc/sys/kernel/modules_disabled Plik do odczytu i zapisu, który określa, czy moduły jądra mogą być ładowane.
/proc/sys/kernel/panic_on_oops Plik do odczytu i zapisu, który kontroluje działanie jądra w przypadku błędu „Ups”.
/proc/sys/kernel/perf_event_max_sample_rate Plik do odczytu i zapisu, który kontroluje maksymalną częstotliwość próbkowania wydajności zdarzeń.
/proc/sys/kernel/perf_event_paranoid Plik do odczytu i zapisu, który kontroluje korzystanie z systemu zdarzeń dotyczących wydajności przez użytkowników bez uprawnień.
/proc/sys/kernel/pid_max Plik do odczytu i zapisu zawierający wartość opakowania alokacji PID.
/proc/sys/kernel/random/boot_id Plik tylko do odczytu, który przy każdym uruchomieniu zawiera nowy losowy identyfikator.
/proc/sys/kernel/randomize_va_space Plik do odczytu i zapisu określający zasadę losowości układu adresu dla systemu.
/proc/sys/kernel/sched_child_runs_first Plik do odczytu i zapisu, który określa, czy nowo rozwidlone zadania są faworyzowane w na równi z rodzicami.
/proc/sys/kernel/sched_latency_ns plik do odczytu i zapisu zawierający maksymalny czas oczekiwania (w nanosekundach), może zostać naliczona przed ich zaplanowaniem.
/proc/sys/kernel/sched_rt_period_us plik do odczytu i zapisu zawierający długość okresu używaną przez systemowy RT limitu wykonywania w mikrosekundach.
/proc/sys/kernel/sched_rt_runtime_us Plik do odczytu i zapisu, który zawiera ilość czasu względem wartości sched_rt_period_us, system może wykonywać zadania RT.
/proc/sys/kernel/sched_tunable_scaling Plik do odczytu i zapisu, który określa, czy atrybut sched_latency_ns ma być automatycznie dostosowywane przez algorytm szeregowania na podstawie liczby procesorów.
/proc/sys/kernel/sched_wakeup_granularity_ns plik do odczytu i zapisu, który zawiera informacje o tym, ile więcej zadań A trzeba przeznaczyć na działanie wirtualnego środowiska wykonawczego. aby zadanie B wyprzedziło zadanie B w nanosekundach.
/proc/sys/kernel/sysrq Plik do odczytu i zapisu, który kontroluje funkcje, które mogą być wywoływane za pomocą sysrq.
/proc/sys/net/* Katalog zawierający różne parametry stosu sieciowego.
/proc/sysrq-trigger Plik tylko do zapisu, który może być używany do inicjowania funkcji sysrq.
/proc/sys/vm/dirty_background_ratio Plik do odczytu i zapisu zawierający jako procent łącznej dostępnej pamięci (bezpłatnych i możliwych do odzyskania) stron, liczba stron, wątki jądra w tle zaczynają zapisywać zanieczyszczone dane.
/proc/sys/vm/dirty_expire_centisecs Plik do odczytu i zapisu, który określa, kiedy zanieczyszczone dane są wystarczająco stare do zapisu przez wątki jądra systemu operacyjnego.
/proc/sys/vm/drop_caches plik do odczytu i zapisu, który może być używany do wymuszenia usunięcia jądra systemu operacyjnego. pamięci podręcznej.
/proc/sys/vm/extra_free_kbytes plik do odczytu i zapisu, który może służyć do przechowywania dodatkowej pamięci pomiędzy jest to próg, na podstawie którego rozpoczyna się odzyskiwanie tła (kswapd). który obejmuje bezpośrednie odzyskiwanie (przez przydzielanie procesów). Ten plik: jest opcjonalny. jego zawartość i uprawnienia są weryfikowane w VTS tylko wtedy, plik istnieje.
/proc/sys/vm/max_map_count Plik do odczytu i zapisu zawierający maksymalną liczbę obszarów mapy pamięci proces weryfikacji i uzyskiwania zgody na przetwarzanie danych.
/proc/sys/vm/mmap_min_addr Plik do odczytu i zapisu określający minimalny adres mmap d.
/proc/sys/vm/mmap_rnd_bits Plik do odczytu i zapisu, który określa stopień losowości w mmap adresów.
/proc/sys/vm/mmap_rnd_compat_bits Plik do odczytu i zapisu, który określa stopień losowości w mmap adresów.
/proc/sys/vm/overcommit_memory Plik do odczytu i zapisu, który określa rozliczanie pamięci wirtualnej jądra i trybu uzyskiwania zgody.
/proc/sys/vm/page-cluster Plik do odczytu i zapisu, który steruje liczbą stron, do których kolejne strony są odczytywane z zamiany za pomocą jednej próby.
/proc/uid_cputime/remove_uid_range Plik tylko do zapisu, który po zapisaniu usuwa identyfikatory UID z /proc/uid_cputime/show_uid_stat
/proc/uid_cputime/show_uid_stat Plik tylko do odczytu z czasem spędzonym przez proces UID na koncie użytkownika oraz w środowisku jądra systemu operacyjnego.
/proc/uid_io/stats Plik tylko do odczytu zawierający listę statystyk wejścia-wyjścia dla każdego identyfikatora UID w system
/proc/uid_procstat/set Plik tylko do zapisu używany do konfigurowania identyfikatora UID jako pierwszego planu lub w tle.
/proc/uid_time_in_state Plik tylko do odczytu zawierający czas wykonania procesów każdego identyfikatora UID każdej dostępnej częstotliwości. Ten plik jest opcjonalny. jej zawartości oraz uprawnienia są weryfikowane w VTS tylko wtedy, gdy plik istnieje.
/proc/uptime Plik tylko do odczytu, który pokazuje, jak długo działa system.
/proc/version Plik tylko do odczytu zawierający ciąg tekstowy opisujący wersję jądra.
/proc/vmallocinfo Plik tylko do odczytu zawierający zakresy vmalloc.
/proc/vmstat Plik tylko do odczytu zawierający statystyki pamięci wirtualnej z jądra.
/proc/zoneinfo Plik tylko do odczytu zawierający informacje o strefach pamięci.

deweloperska

Interfejs Opis
/dev/ashmem Anonimowy plik z pamięcią współdzieloną.
/dev/binder Plik urządzenia powiązanego.
/dev/hwbinder Plik wiązania sprzętowego.
/dev/tun Plik uniwersalny TUN/TAP urządzenia.
/dev/xt_qtaguid Plik urządzenia netfilter QTAGUID.

Sysfs

Interfejs Opis
/sys/class/net/*/mtu Plik do odczytu i zapisu zawierający maksymalną jednostkę przesyłania dla każdej za pomocą prostego interfejsu online.
/sys/class/rtc/*/hctosys Plik tylko do odczytu wskazujący, czy określone RTC dostarcza czas systemowy podczas uruchamiania i wznawiania.
/sys/devices/system/cpu/ Katalog zawierający informacje o konfiguracji procesora i częstotliwości.
/sys/kernel/wakeup_reasons Katalog plików tylko do odczytu, które zawierają czas ostatniego zawieszenia i wznowienie .
/sys/power/state Plik do odczytu i zapisu, który steruje stanami uśpienia systemu.
/sys/power/wake_lock Plik do odczytu i zapisu, który zawiera aktywne blokady uśpienia.
/sys/power/wake_unlock Plik do odczytu i zapisu, który zawiera nieaktywne blokady uśpienia.
/sys/power/wakeup_count Plik do odczytu i zapisu, który może być używany do wprowadzenia systemu w stan uśpienia z uwzględnieniem równoczesnych zdarzeń wybudzania.

Selinuxfs

Platforma podłącza interfejs selinuxfs w miejscu /sys/fs/selinux.

Ścieżka Opis
/sys/fs/selinux/checkreqprot Plik do odczytu/zapisu zawierający flagę binarną określającą sposób działania selinux zabezpieczenia są sprawdzane w wywołaniach mmap i mprotect.
/sys/fs/selinux/null Urządzenie do odczytu/zapisu o wartości null do użycia przez Selinux.
/sys/fs/selinux/policy Plik tylko do odczytu zawierający zasadę Selinux w postaci binarnej.