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. |