суббота, 17 мая 2014 г.

Android основан на Linux, но что бы это значило?

Даже если Android основан на Linux, это однозначно не та же самая ОС Linux, которая, возможно, стоит у вас дома. Вы не сможете запустить Android приложения под обычным Linux дистрибутивом, а так же программы, к которым вы так привыкли в Linux под Android.
Linux составляет основополагающую часть Android, но Google использовали далеко не всё ПО или библиотеки, которые мы привыкли видеть в типичной сборке Linux, например Ubuntu. В этом-то и вся разница.

“Linux” vs. ядро Linux

Для начала давайте определимся – что же мы понимаем под словом Linux? Люди используют термин «Linux» подразумевая под ним довольно разные вещи. Чаще всего под словом «Linux» мы понимаем ядро Linux. Ядро – основа любой операционной системы.

Так же часто мы называем просто «Linux» один из Linux-дистрибутивов. Однако, Linux-дистрибутив, это не только ядро. Они так же содержат различный набор программ, таких как командная строка, графические оболочки, браузеры и так далее. Поэтому для обозначения различных «Linux-дистрибутивов», таких как Ubuntu, Mint, Debian, Fedora, Arch, openSUSE,  и других принято использовать термин GNU/Linux.

Использование в Android Linux-ядра не так заметно. Но, так как Linux относится к ПО с открытым исходным кодом, программисты из Google могут модифицировать его под свои нужды. Linux дал создателям Android отличный старт в виде уже готового и отлаженного ядра для операционной системы. Так же поступили, к примеру, создатели PlayStation 4, использовав «свободное» ядро FreeBSD, другой пример Xbox One, работающая на ядре Windows NT, похожем на то, которое используется в последних версиях Windows.

Вы можете даже проверить на какой версии Linux-ядра работает ваш телефон или планшет пройдя во вкладку «Сведения о телефоне» в настройках вашего гаджета.



Различия

Идут споры о том, стоит ли вообще называть Android «Linux-дистрибутивом». Да, в качестве ядра использован Linux, но в то же время отсутствует большая часть ПО, обычного для Linux-дистрибутивов.
На момент загрузки Android-девайс так же загружает ядро-Linux. Тем не менее большинство служебных программ различны. Android не использует GNU C Library (glibc), которая обычно присутствует в Linux, как собственно и остальные GNU библиотеки. Так же вы не найдете X сервер, например Xorg, поэтому у вас не получится запустить что-либо из стандартных графических приложений Linux.
За место этого Android использует Dalvik – виртуальную машину, для запуска приложений написанных на Java. Эти приложения, а так же предоставляемые интерфейсы программирования приложений (API) позволяют Android быть скорее независимой, нежели Linux –ориентированной системой.



Почему нельзя запустить Linux-приложения на Android?

Именно из-за того, что в Android отсутствует X-сервер и стандартные GNU библиотеки, вам не удастся просто взять и запустить Linux-приложения под Android. Так что придется использовать приложения, написанные специально под Android.
Так же в Android нет командной строки, подобной той, к которой мы привыкли в Linux. Точнее у вас нет возможности использовать её, что называется «из коробки». Но вы можете установить приложение Эмулятор Терминала Android и таким образом получить доступ к командной строке.
Но, честно говоря, и это не даст вам полной свободы творчества. Командная строка запустится в заметно ограниченном режиме, то есть вы не получите полный админский доступ к своему Android-девайсу. Многие стандартные команды, которые могут вам пригодиться просто не будут доступны, поэтому люди которым нужен полный контроль над гаджетом обычно устанавливают приложение BusyBox, со множеством различных утилит командной строки. Это приложение поможет вам выполнять многие операции с правами администратора(root).



Почему нельзя запустить Android-приложения на Linux?

Всё просто, в Linux нет Dalvik – виртуальной машины, позволяющей запускать Android –приложения. Но у вас не получится просто взять и закинуть Dalvik, вместе с вашими Android-приложениями и получить от того какую-либо пользу. Здесь придется попотеть, чтобы заставить Android-приложение вывестись на обычный монитор, к примеру, через Xorg. Теоретически, приложив усилия, разработчики смогли бы сделать версию Dalvik для настольных ПК. В замороженном на данный момент проекте – версии Ubuntu для мобильных устройств разработчики как раз пытались сделать нечто подобное – объединить Ubuntu и Android в «мобильном» исполнении, а так же позволить запускать Android-приложения на настольных ПК под управлением Ubuntu.
Так же есть ряд программных продуктов, позволяющих запускать Android-приложения под Mac или Windows, одно из них – BlueStacks. Он работают по принципу эмулятора, позволяя запускать Android-приложения, но урезая производительность. Поэтому нельзя сказать, что эти решения пользуются большой популярностью.



Google’s Chrome OS так же основана на Linux. Так же как и в Android в ней используется оконная система, отличная от той, что используется в Linux, поэтому в ней тоже имеются некоторые проблемы с Linux-совместимостью. Но в отличии от Android, Chrome OS ближе к своему прародителю,  поэтому в режиме разработчика вы сможете доустановить недостающие вам библиотеки и программы.

Оригинал статьи:
http://www.howtogeek.com/189036/android-is-based-on-linux-but-what-does-that-mean/

Комментариев нет:

Отправить комментарий