Wymagania dotyczące interfejsu

Na tej stronie opisano podzbiór interfejsów jądra Linuksa, na których opiera się prawidłowe działanie systemu Android. Obecność i poprawność tych interfejsów testowana jest w ramach Vendor Test Suite (VTS) . Ten podzbiór będzie z czasem rósł i będzie zawierał większą część interfejsów jądra Androida.

Wywołania systemowe

Oczekuje się, że wszystkie wywołania systemowe będą zapewniać te same sygnatury i semantykę, co w jądrze Linuksa wyższego szczebla w tej samej wersji.

prctl

Oprócz wcześniejszych operacji prctl dla obsługiwanych wersji jądra, Android opiera się na dodatkowych operacjach prctl , których implementację można znaleźć we wspólnym jądrze Androida.

PR_SET_TIMERSLACK_PID
PR_SET_VMA

Systemy plików

Jądro Linuksa eksportuje interfejsy za pośrednictwem kilku systemów plików. Android oczekuje, że te interfejsy będą przekazywać te same informacje, w tym samym formacie i zapewniać tę samą semantykę, co w jądrze Linuksa. W przypadku interfejsów, które nie istnieją wcześniej, odpowiednie zachowanie jest podyktowane odpowiednią gałęzią wspólnego jądra Androida.

procf

Interfejs Opis
/proc/dźwięk/ Plik tylko do odczytu zawierający listę aktualnie skonfigurowanych sterowników ALSA.
/proc/cmdline Plik tylko do odczytu zawierający argumenty wiersza poleceń przekazywane do jądra.
/proc/config.gz Plik tylko do odczytu zawierający konfigurację kompilacji jądra.
/proc/informacje o procesorze Plik tylko do odczytu zawierający szczegóły procesora specyficzne dla architektury.
/proc/diskstats Plik tylko do odczytu pokazujący statystyki we/wy urządzeń blokowych.
/proc/systemy plików Plik tylko do odczytu zawierający listę systemów plików aktualnie obsługiwanych przez jądro.
/proc/kmsg Plik tylko do odczytu pokazujący komunikaty jądra w czasie rzeczywistym.
/proc/loadavg Plik tylko do odczytu pokazujący średnie obciążenie procesora i we/wy w czasie.
/proc/meminfo Plik tylko do odczytu pokazujący szczegóły podsystemu pamięci.
/proc/różne Plik tylko do odczytu zawierający listę różnych sterowników zarejestrowanych na różnych urządzeniach głównych.
/proc/moduły Plik tylko do odczytu zawierający informacje o załadowanych modułach jądra.
/proc/mounts Dowiązanie symboliczne do /proc/self/mounts , który jest plikiem tylko do odczytu zawierającym informacje o zamontowanych 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 oznaczonych gniazdach.
/proc/informacje o typie strony Plik tylko do odczytu zawierający informacje o alokatorze 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 przestrzeni wymiany. Ten plik jest opcjonalny; jego zawartość i uprawnienia zostaną zweryfikowane w VTS tylko wtedy, gdy plik będzie obecny .
/proc/sys/abi/swp Plik do odczytu i zapisu, który określa zachowanie przestarzałej instrukcji ARM SWP.
/proc/sys/fs/pipe-max-size Plik do odczytu i zapisu, który raportuje maksymalny rozmiar w bajtach pojedynczego bufora potoku.
/proc/sys/fs/protected_hardlinks Plik do odczytu i zapisu, który kontroluje zachowanie tworzenia twardych łączy.
/proc/sys/fs/protected_symlinks Plik do odczytu i zapisu, który kontroluje zachowanie tworzenia dowiązań symbolicznych.
/proc/sys/fs/suid_dumpable Plik do odczytu i zapisu, który kontroluje tryb zrzutu pamięci dla plików binarnych setuid lub w inny sposób chronionych/skażonych.
/proc/sys/kernel/core_pattern Plik do odczytu i zapisu, który określa wzorzec nazwy pliku zrzutu pamięci.
/proc/sys/kernel/core_pipe_limit Plik do odczytu i zapisu, który definiuje, ile współbieżnych procesów powodujących awarię może być równolegle przesyłanych do aplikacji użytkownika.
/proc/sys/kernel/dmesg_restrict Plik do odczytu i zapisu, który kontroluje, czy nieuprzywilejowani użytkownicy mogą uzyskać dostęp do dmesg.
/proc/sys/jądro/nazwa domeny Plik do odczytu i zapisu zawierający nazwę domeny YP/NIS systemu.
/proc/sys/jądro/nazwa hosta 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 limit czasu używany do określenia, kiedy zadanie przestało odpowiadać i powinno zostać uznane za zawieszone. Ten plik jest opcjonalny; jego zawartość i uprawnienia zostaną zweryfikowane w VTS tylko wtedy, gdy plik będzie obecny .
/proc/sys/kernel/kptr_restrict Plik do odczytu i zapisu, który określa, czy wskaźniki jądra są drukowane w plikach proc i innych interfejsach.
/proc/sys/kernel/modules_disabled Plik do odczytu i zapisu, który kontroluje, czy moduły jądra mogą być ładowane.
/proc/sys/kernel/panic_on_oops Plik do odczytu i zapisu, który kontroluje zachowanie jądra w przypadku ups.
/proc/sys/kernel/perf_event_max_sample_rate Plik do odczytu i zapisu, który kontroluje maksymalną częstotliwość próbkowania zdarzeń związanych z wydajnością.
/proc/sys/kernel/perf_event_paranoid Plik do odczytu i zapisu, który kontroluje wykorzystanie systemu zdarzeń wydajnościowych przez nieuprzywilejowanych użytkowników.
/proc/sys/kernel/pid_max Plik do odczytu i zapisu zawierający wartość zawijania alokacji PID.
/proc/sys/kernel/random/boot_id Plik tylko do odczytu, który zawiera nowy losowy identyfikator przy każdym uruchomieniu.
/proc/sys/kernel/randomize_va_space Plik do odczytu i zapisu, który określa zasady losowania układu adresów w systemie.
/proc/sys/kernel/sched_child_runs_first Plik do odczytu i zapisu, który kontroluje, czy nowo rozwidlone zadania są preferowane w planowaniu w stosunku do zadań nadrzędnych.
/proc/sys/kernel/sched_latency_ns Plik do odczytu i zapisu zawierający maksymalne opóźnienie w nanosekundach, jakie może wystąpić w przypadku zadania przed jego zaplanowaniem.
/proc/sys/kernel/sched_rt_period_us Plik do odczytu i zapisu zawierający długość okresu wykorzystywaną przez ogólnosystemowy limit wykonania RT w mikrosekundach.
/proc/sys/kernel/sched_rt_runtime_us Plik do odczytu i zapisu zawierający ilość czasu, w odniesieniu do sched_rt_period_us, przez jaki system może wykonywać zadania RT.
/proc/sys/kernel/sched_tunable_scaling Plik do odczytu i zapisu, który kontroluje, czy sched_latency_ns powinien być automatycznie dostosowywany przez program planujący na podstawie liczby procesorów.
/proc/sys/kernel/sched_wakeup_granularity_ns Plik do odczytu i zapisu zawierający informację, o ile więcej w nanosekundach musi mieć zadanie wirtualnego środowiska wykonawczego A niż zadanie B, aby zadanie B mogło je wyprzedzić.
/proc/sys/kernel/sysrq Plik do odczytu i zapisu, który kontroluje funkcje, które można wywołać za pomocą klawisza sysrq.
/proc/sys/net/* Katalog zawierający różne parametry stosu sieciowego.
/proc/sysrq-trigger Plik tylko do zapisu, którego można użyć do inicjowania funkcji sysrq.
/proc/sys/vm/dirty_background_ratio Plik do odczytu i zapisu, który zawiera, jako procent całkowitej dostępnej pamięci (wolne strony i strony do odzyskania), liczbę stron, od których wątki spłukujące jądro w tle zaczną zapisywać brudne dane.
/proc/sys/vm/dirty_expire_centisecs Plik do odczytu i zapisu, który określa, kiedy brudne dane są na tyle stare, że kwalifikują się do zapisania przez wątki spłukujące jądro.
/proc/sys/vm/drop_cache Plik do odczytu i zapisu, którego można użyć do zmuszenia jądra do usunięcia czystych pamięci podręcznych.
/proc/sys/vm/extra_free_kbytes Plik do odczytu i zapisu, którego można użyć do zachowania dodatkowej wolnej pamięci pomiędzy progiem, w którym rozpoczyna się odzyskiwanie w tle (kswapd), a progiem, w którym rozpoczyna się bezpośrednie odzyskiwanie (poprzez alokację procesów). Ten plik jest opcjonalny; jego zawartość i uprawnienia zostaną zweryfikowane w VTS tylko wtedy, gdy plik będzie obecny .
/proc/sys/vm/max_map_count Plik do odczytu i zapisu zawierający maksymalną liczbę obszarów mapy pamięci, jaką może posiadać proces.
/proc/sys/vm/mmap_min_addr Plik do odczytu i zapisu, który określa minimalny adres, jaki może być mmap 'd.
/proc/sys/vm/mmap_rnd_bits Plik do odczytu i zapisu, który określa stopień losowości w adresach mmap 'd.
/proc/sys/vm/mmap_rnd_compat_bits Plik do odczytu i zapisu, który określa stopień losowości w adresach mmap 'd.
/proc/sys/vm/overcommit_memory Plik do odczytu i zapisu, który określa tryb rozliczania pamięci wirtualnej jądra.
/proc/sys/vm/page-cluster Plik do odczytu i zapisu, który kontroluje liczbę stron, do której kolejne strony są wczytywane z wymiany przy jednej próbie.
/proc/uid_cputime/remove_uid_range Plik tylko do zapisu, który po zapisaniu usuwa UID z wyświetlania w /proc/uid_cputime/show_uid_stat .
/proc/uid_cputime/show_uid_stat Plik tylko do odczytu zawierający czas spędzony przez procesy UID w przestrzeni użytkownika i jądra.
/proc/uid_io/stats Plik tylko do odczytu zawierający listę statystyk we/wy dla każdego UID w systemie
/proc/uid_procstat/set Plik tylko do zapisu używany do konfigurowania UID jako pierwszego planu lub tła.
/proc/uid_time_in_state Plik tylko do odczytu zawierający czas wykonywania procesów każdego UID przy każdej dostępnej częstotliwości. Ten plik jest opcjonalny; jego zawartość i uprawnienia zostaną zweryfikowane w VTS tylko wtedy, gdy plik będzie obecny .
/proc/czas pracy Plik tylko do odczytu, który pokazuje, jak długo system działa.
/proc/wersja Plik tylko do odczytu zawierający ciąg opisujący wersję jądra.
/proc/vmallocinfo Plik tylko do odczytu zawierający zakresy vmalloc 'd.
/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.

rozw

Interfejs Opis
/dev/ashmem Anonimowy plik urządzenia pamięci współdzielonej.
/dev/binder Plik urządzenia segregującego.
/dev/hwbinder Sprzętowy plik urządzenia wiążącego.
/dev/tun Uniwersalny plik urządzenia TUN/TAP.
/dev/xt_qtaguid Plik urządzenia netfilter QTAGUID.

sysfs

Interfejs Opis
/sys/class/net/*/mtu Plik do odczytu i zapisu zawierający maksymalną jednostkę transmisji dla każdego interfejsu.
/sys/class/rtc/*/hctosys Plik tylko do odczytu pokazujący, czy określony rtc dostarcza czas systemowy podczas uruchamiania i wznawiania.
/sys/urządzenia/system/procesor/ Katalog zawierający informacje o konfiguracji i częstotliwości procesora.
/sys/kernel/wakeup_reasons Katalog plików tylko do odczytu, zawierający czas ostatniego zawieszenia i przyczynę wznowienia.
/sys/zasilanie/stan Plik do odczytu i zapisu, który kontroluje stany uśpienia systemu.
/sys/power/wake_lock Plik do odczytu i zapisu zawierający aktywne blokady uśpienia.
/sys/power/wake_unlock Plik do odczytu i zapisu zawierający nieaktywne blokady uśpienia.
/sys/power/wakeup_count Plik do odczytu i zapisu, którego można użyć do wprowadzenia systemu w stan uśpienia, biorąc pod uwagę jednoczesne pojawienie się zdarzeń wybudzania.

selinuxfs

Framework montuje selinuxfs w /sys/fs/selinux .

Ścieżka Opis
/sys/fs/selinux/checkreqprot Plik do odczytu/zapisu zawierający flagę binarną, która określa sposób sprawdzania zabezpieczeń Selinux przy wywołaniach mmap i mprotect .
/sys/fs/selinux/null Urządzenie zerowe do odczytu/zapisu do użytku przez Selinux.
/sys/fs/selinux/policy Plik tylko do odczytu zawierający politykę selinux w formie binarnej.