Π Π°Π±ΠΎΡΠΈ Π»ΠΈ Android Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Linux?
Π‘ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎ ΡΠ²Π΅ΡΠ°, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Ρ Android – ΠΎΡ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΈ Π΄ΠΎ ΡΠΌΠ°ΡΡ ΡΠ΅Π»Π΅Π²ΠΈΠ·ΠΎΡΠΈ, ΡΠ°Π±Π»Π΅ΡΠΈ ΠΈ Π΄ΠΎΡΠΈ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ – Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΠΌΠ΅: Π΄Π°Π»ΠΈ Android ΡΠ΅ Π·Π°Ρ ΡΠ°Π½Π²Π° ΠΎΡ Linux? ΠΡΠ³ΠΎΠ²ΠΎΡΡΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Android Π½Π΅ Π΅ ΡΠΈΠΏΠΈΡΠ½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Π½Π° Linux ΠΊΠ°ΡΠΎ Ubuntu ΠΈΠ»ΠΈ Fedora, Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π° Π±Π΅Π·ΡΠΏΠΎΡΠ½ΠΎ Π΅ Π²ΠΊΠΎΡΠ΅Π½Π΅Π½Π° Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux. ΠΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ Π²ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎ-Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ ΠΏΠΎΠ³Π»Π΅Π΄ ΠΊΠ°ΠΊΡΠΎ Π²ΡΡΡ Ρ ΡΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Linux, ΡΠ°ΠΊΠ° ΠΈ Π²ΡΡΡ Ρ ΡΠΎΠ²Π° Π² ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π΅ ΠΏΡΠ΅Π²ΡΡΠ½Π°Π» Android.
ΠΡΠ½ΠΎΠ²Π° Π½Π° Android: Π―Π΄ΡΠΎΡΠΎ Π½Π° Linux
Π ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° ΡΠΈ Android ΡΠ΅ Π·Π°Ρ ΡΠ°Π½Π²Π° ΠΎΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux– ΡΠΎΡΡΡΠ΅Ρ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ° ΠΈ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π’ΠΎΠ²Π° ΡΠ΄ΡΠΎ ΡΠ»ΡΠΆΠΈ ΠΊΠ°ΡΠΎ ΡΡΡΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Android, ΠΊΠ°ΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°:
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅
- ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΡ Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ°
- ΠΡΠ΅ΠΆΠΎΠ²Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ
- ΠΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΊΠ°ΡΠΎ SELinux
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° Google Π΅ Π°Π΄Π°ΠΏΡΠΈΡΠ°Π»Π° ΡΠ΄ΡΠΎΡΠΎ ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Android ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- Wakelocks – Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°ΡΠ΅ΡΠΈΡΡΠ°
- Binder IPC – Π·Π° ΠΌΠ΅ΠΆΠ΄ΡΠΏΡΠΎΡΠ΅ΡΠ½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ
- Ashmem – ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ
- Logger ΠΈ Low Memory Killer – Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°
Π’Π΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΏΡΠ°Π²ΡΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Android ΡΠΈΠ»Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π·Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΡΠ΅Π΄ΠΈ, Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΡΠ΄ΡΠΎ Π½Π° Linux, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π² ΡΡΡΠ²ΡΡΠΈ ΠΈΠ»ΠΈ Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ.
ΠΡΠ²ΡΠ΄ ΡΠ΄ΡΠΎΡΠΎ: Android Π½Π΅ Π΅ GNU/Linux
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΠΌΠ° ΠΎΠ±ΡΠ° Π±Π°Π·Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ, Android Π½Π΅ Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° GNU/Linux. Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°ΡΠ° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° Linux Π·Π° Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ:
- GNU Bash shell
- ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ (grep, awk, sed ΠΈ Π΄Ρ.)
- ΠΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ (Π½Π°ΠΏΡ. APT, YUM)
- Π‘ΡΡΠ²ΡΡΠΈ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° X11 ΠΈΠ»ΠΈ Wayland
- Systemd ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅
Android Π³ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΡΡΠ΅ΠΊ:
- Bionic libc – ΠΠ»Π΅ΠΊΠΎΡΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° C, ΠΏΡΠΈΠ³ΠΎΠ΄Π΅Π½Π° Π·Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
- ART (Android Runtime) – ΠΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Android, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π΄ΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄
- SurfaceFlinger – Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° X11
- Init (ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° Π·Π° Android) – Π£ΠΏΡΠ°Π²Π»ΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅
Π’Π°ΠΊΠ° ΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΠΏΠΎΠ΄ ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΡΠ°, Π²ΡΠΈΡΠΊΠΎ Π½Π°Π΄ Π½Π΅Π³ΠΎ Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΎ Π·Π° Android.
ΠΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°: ΠΠ°ΠΊ Π΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ Android
ΠΡΠΎ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Android:
Π°) Π―Π΄ΡΠΎ Π½Π° Linux
ΠΠ±ΡΠ»ΡΠΆΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Ρ
ΡΠ°Π½Π²Π°Π½Π΅ΡΠΎ, ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
Π±) Π₯Π°ΡΠ΄ΡΠ΅ΡΠ΅Π½ Π°Π±ΡΡΡΠ°ΠΊΡΠ΅Π½ ΡΠ»ΠΎΠΉ (HAL)
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ° ΠΈ API ΠΎΡ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ.
Π²) Π‘ΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Android (ART)
ΠΠΊΠ»ΡΡΠ²Π° OpenGL ES, WebKit ΠΈ ART (ΠΊΠΎΠΉΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈ Dalvik VM).
Π³) Π Π°ΠΌΠΊΠ° Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠ³ΡΡΡΠ²Π° Java/Kotlin API Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° Π΄Π΅ΠΉΠ½ΠΎΡΡΠΈ ΠΈ Π΄Ρ.
Π΄) ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°Π±ΠΈΡΠ°ΡΠΎΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ sandboxed ΡΡΠ΅Π΄ΠΈ.
Π’Π°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Android Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠΎΠ΄ΡΠ»Π΅Π½ ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌ Π·Π° ΡΠΈΡΠΎΠΊ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Android ΠΏΠΎΠ΄ Linux (ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΡΠΎ)?
ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π½Π΅. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π·Π° Android ΠΈ Linux Π½Π΅ ΡΠ° ΠΏΡΡΠΊΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ:
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π·Π° Android ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Ρ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ.dex (Dalvik Executable) ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² ART.
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π·Π° Linux ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ native ELF Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΡΠΎ glibc.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° ΡΠ»ΠΎΠ΅Π²Π΅ Π·Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ ΠΊΠ°ΡΠΎ Waydroid, Anbox ΠΈΠ»ΠΈ Shashlik ΠΈΠΌΠ°Ρ Π·Π° ΡΠ΅Π» Π΄Π° ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»Π΅ΡΡ ΡΠ°Π·ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠ°, ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Ρ Android Π² Linux ΡΠΈΡΡΠ΅ΠΌΠΈ.
ΠΡΡΠ·ΠΊΠ°ΡΠ° Π½Π° Android Ρ Upstream Linux
Π ΠΌΠΈΠ½Π°Π»ΠΎΡΠΎ Android ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠ»ΠΎΠ½ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux. Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»ΡΡΠ²Π° Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Π² Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠ΅ΠΎΡΠ΄Π°Π²Π½Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²ΠΈ ΠΎΠ±Π°ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΡ Π° ΡΡΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ:
- Android Common Kernel (ACK): ΠΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΠ²Π΅ΠΆΠ΄Π° Android Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΄ΡΠ°ΡΠ° Π½Π° Linux Ρ Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° (LTS).
- Generic Kernel Image (GKI): Π¦Π΅Π»ΡΠ° Π΅ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Android Π΄Π° ΡΡΠ°Π½Π°Ρ ΠΏΠΎ-ΠΌΠΎΠ΄ΡΠ»Π½ΠΈ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- Π£Π²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ½ΠΎΡΠ° Π² Π³ΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊ: Google Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π² ΠΏΠΎ-ΡΡΡΠ½ΠΎ ΡΡΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²ΠΎ Ρ Linux Foundation, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΊΡΡΠΏΠΊΠΈ ΠΈ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ.
Π’Π°Π·ΠΈ Π΅Π²ΠΎΠ»ΡΡΠΈΡ Π½Π°ΠΏΡΠ°Π²ΠΈ Android ΠΏΠΎ-ΠΎΡΠ²ΠΎΡΠ΅Π½, ΡΡΡΠΎΠΉΡΠΈΠ² ΠΈ ΡΡΠΎΠ±ΡΠ°Π·Π΅Π½ Ρ ΠΏΠΎ-ΡΠΈΡΠΎΠΊΠΎΡΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Linux.
ΠΠ°ΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Linux?
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Linux Π² Android Π½Π΅ Π΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π²Π°ΠΆΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°:
- Π‘ΡΠ°Π±ΠΈΠ»Π½ΠΎΡΡ ΠΈ Π·ΡΡΠ»ΠΎΡΡ – Π―Π΄ΡΠΎΡΠΎ Π½Π° Linux Π΅ Π΄ΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΡΠ²ΡΡΠΈ ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Ρ Π°ΡΠ΄ΡΠ΅Ρ – ΠΠ³ΡΠΎΠΌΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ Ρ Π°ΡΠ΄ΡΠ΅Ρ Π² Π³ΠΎΡΠΎΠ² Π²ΠΈΠ΄.
- Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ – ΠΡΠ΅Π»ΠΈΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ°, ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° ΠΈ SELinux.
- ΠΠΈΡΠ΅Π½Π·ΠΈΡΠ°Π½Π΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ – ΠΠΈΡΠ΅Π½Π·ΡΡ GPLv2 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ.
ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ, Linux ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π½Π° Android ΠΈΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½Π°, ΠΈΠ·ΠΏΠΈΡΠ°Π½Π° Π² Π±ΠΈΡΠΊΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π° Π·Π° Π±ΡΡΠ·ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ.
Π ΡΠ°ΠΊΠ°, Linux Π»ΠΈ Π΅ Android?
ΠΡΠ³ΠΎΠ²ΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π³Π»Π΅Π΄Π½Π°ΡΠ° ΡΠΎΡΠΊΠ°:
| ΠΡΠΏΠ΅ΠΊΡ | Android | Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π΅Π½ Linux |
| Π―Π΄ΡΠΎ | Linux (ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½) | Linux (ΠΎΡΠ½ΠΎΠ²Π½Π° Π»ΠΈΠ½ΠΈΡ ΠΈΠ»ΠΈ LTS) |
| ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C | Bionic | glibc |
| Π¨Π΅Π» ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ | Toybox / BusyBox | Bash, coreutils |
| Init System | Android init | Systemd / init |
| Π‘ΡΠ°ΠΊ Π·Π° Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ | SurfaceFlinger | X11 / Wayland |
| ΠΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ | ART (Dalvik Π±Π°ΠΉΡΠΊΠΎΠ΄) | Π ΠΎΠ΄Π½ΠΈ ELF Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ |
| Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ | APK ΡΡΠ΅Π· Play Store | APT, DNF, RPM, Flatpak ΠΈ Π΄Ρ. |
Π’Π°ΠΊΠ° ΡΠ΅, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Android Π½Π΅ Π΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Π½Π° Linux Π² ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠΌΠΈΡΡΠ» Π½Π° Π΄Π΅ΡΠΊΡΠΎΠΏ/ΡΡΡΠ²ΡΡ, ΡΡ Π΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° Linux, ΠΈ ΡΠΎ Ρ Π³ΠΎΡΠ΄ΠΎΡΡ.
Π£ΡΠΏΠ΅Ρ ΡΡ Π½Π° Android ΠΊΠ°ΡΠΎ ΠΌΠΎΠ±ΠΈΠ»Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π±ΠΈ Π±ΠΈΠ» Π²ΡΠ·ΠΌΠΎΠΆΠ΅Π½ Π±Π΅Π· Linux. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠ°ΡΠ° ΡΡΠ΅Π΄Π° ΠΈ ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΠ° ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Android.
Π ΡΠ²ΡΡ, Π² ΠΊΠΎΠΉΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° – ΠΎΡ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΈ Π΄ΠΎ ΡΠ΅Π»Π΅Π²ΠΈΠ·ΠΎΡΠΈ, ΠΎΡ Π½ΠΎΡΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄ΠΎ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ – ΡΠ°Π±ΠΎΡΡΡ Ρ Android, Π²Π»ΠΈΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Linux Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ Π΅ Π±ΠΈΠ»ΠΎ ΠΏΠΎ-ΡΠΈΡΠΎΠΊΠΎ ΠΈ ΠΏΠΎ-Π²Π»ΠΈΡΡΠ΅Π»Π½ΠΎ. Android ΠΌΠΎΠΆΠ΅ ΠΈ Π΄Π° Π½Π΅ Π΅ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Ρ ΠΎΡΠ° ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΈ ΠΏΠΎΠΌΠΈΡΠ»ΡΡ “Linux”, Π½ΠΎ ΡΠΎΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΌΠΎΡΠ½ΠΈΡΠ΅ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ Π½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Linux Π² ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠΈ.
