Android основан на Linux, но что это значит?
Android может быть основан на Linux, но он не основан на типе системы Linux, которую вы, возможно, использовали на своем ПК. Вы не можете запускать приложения Android в типичных дистрибутивах Linux и не можете запускать программы Linux, с которыми вы знакомы, на Android.
Linux составляет основную часть Android, но Google не добавил все типичное программное обеспечение и библиотеки, которые можно найти в дистрибутиве Linux, таком как Ubuntu. Это имеет все значение.
«Linux» против ядра Linux
Большая разница здесь сводится к тому, что мы подразумеваем под Linux. Люди используют термин «Linux» для обозначения множества разных вещей. По своей сути, Linux означает ядро Linux. Ядро является основной частью любой операционной системы.
Мы также называем дистрибутивы Linux просто «Linux». Однако дистрибутивы Linux - это не просто ядро Linux. Они содержат много других программ, таких как утилиты оболочки GNU, графический сервер Xorg, рабочий стол GNOME, веб-браузер Firefox и так далее. Вот почему некоторые люди считают, что термин GNU / Linux следует использовать для «дистрибутивов Linux», таких как Ubuntu, Mint, Debian, Fedora, Arch, openSUSE и другие..
Android использует ядро Linux под капотом. Поскольку Linux имеет открытый исходный код, разработчики Google для Android могут модифицировать ядро Linux под свои нужды. Linux дает разработчикам Android готовое, уже поддерживаемое ядро операционной системы, чтобы им не пришлось писать свое собственное ядро. Именно так создаются различные устройства - например, PlayStation 4 использует ядро FreeBSD с открытым исходным кодом, в то время как Xbox One использует ядро Windows NT, встречающееся в современных версиях Windows..
Вы даже увидите версию ядра Linux, работающую на вашем устройстве, в разделе «О телефоне» или «О планшете» в настройках Android..
Различия
Есть некоторые споры о том, может ли Android квалифицироваться как «дистрибутив Linux». Он использует ядро Linux и другое программное обеспечение, но он не включает в себя большую часть программного обеспечения, которое дистрибутивы Linux обычно включают.
Когда вы загружаете устройство Android, ядро Linux загружается так же, как и в дистрибутиве Linux. Тем не менее, большая часть другого программного обеспечения отличается. Android не включает библиотеку GNU C (glibc), используемую в стандартных дистрибутивах Linux, а также не все библиотеки GNU, которые вы найдете в типичном дистрибутиве Linux. Он также не включает X-сервер, такой как Xorg, поэтому вы не можете запускать стандартные графические приложения Linux.
Вместо того, чтобы запускать типичные приложения Linux, Android использует виртуальную машину Dalvik для запуска приложений, написанных на Java. Эти приложения предназначены для устройств Android и интерфейсов прикладного программирования (API), которые предоставляет Android, а не для Linux в целом..
Почему вы не можете запустить Desktop Linux Software на Android
Поскольку в Android нет графического X-сервера или всех стандартных библиотек GNU, вы не можете просто запускать приложения Linux на Android. Вы должны запустить приложения, написанные специально для Android.
У Android действительно есть оболочка, подобная той, что вы найдете в Linux. Там нет никакого способа получить к нему доступ из коробки, но вы можете установить приложение, такое как Android Terminal Emulator, чтобы получить доступ к этой среде терминала.
По умолчанию здесь мало что можно сделать. Терминал по-прежнему будет работать в ограниченной среде, поэтому вы не можете получить полноценную корневую оболочку без рутирования вашего Android-устройства. Многие стандартные команды, которые могут вам понадобиться, недоступны, поэтому люди, которые управляют своим устройством, обычно устанавливают приложение BusyBox, которое устанавливает много утилит командной строки. Эти утилиты используются приложениями для работы с правами root.
Почему вы не можете запустить программное обеспечение Android на настольном Linux
В Linux нет виртуальной машины Dalvik, поэтому она не может запускать приложения для Android. Виртуальную машину Dalvik и все остальное программное обеспечение Android нельзя просто перенести на настольный Linux-компьютер - вам придется проделать большую работу, чтобы приложения Android выводились в окно на стандартном рабочем столе, например, через Xorg. Теоретически, имея достаточно работы, разработчики могут заставить Dalvik работать на настольном Linux, чтобы пользователи настольного Linux могли запускать приложения Android на своих рабочих столах. Теперь бездействующий продукт Ubuntu для Android попытался сделать что-то подобное, интегрировав Ubuntu и Android в телефон и позволив этим приложениям Android работать на рабочем столе Ubuntu..
BlueStacks и другие эмуляторы приложений Android пытаются сделать это для Windows и Mac. Они запускают Android на виртуальном оборудовании на виртуальной машине, что позволяет им запускать приложения Android - со снижением производительности - на вашем рабочем столе. Эти решения не оказались очень популярными, хотя.
Google Chrome OS также основана на Linux. Как и Android, Chrome OS не предоставляет стандартную систему X Window, поэтому стандартные приложения Linux не могут работать в Chrome OS. В отличие от Android, Chrome OS ближе к стандартным дистрибутивам Linux для настольных компьютеров, поэтому вы можете использовать режим разработчика для установки отсутствующего программного обеспечения для настольных компьютеров Linux..
Image Credit: ранти на Flickr, анатомии и физиологии Android