If-Koubou

Android е базиран на Linux, но какво означава това?

Android е базиран на Linux, но какво означава това? (Как да)

Android може да се основава на Linux, но не се базира на типа на Linux системата, която може да сте използвали на вашия компютър. Не можете да пускате приложения за Android на типични Linux дистрибуции и не можете да стартирате програмите на Линукс, които познавате в Android.

Linux съставлява основната част от Android, но Google не е добавил типичния софтуер и библиотеки, които бихте намерили в Linux дистрибуция като Ubuntu. Това прави всичко различно.

"Linux" срещу Linux ядрото

Голямата разлика тук се свежда до това, което имаме предвид под Linux. Хората използват термина "Linux", за да означават много различни неща. На най-основното си, Linux означава ядрото на Linux. Ядрото е основната част на всяка операционна система.

Ние също се отнасяме до Linux дистрибуции като просто "Linux". Въпреки това, Linux дистрибуции не са само Linux ядрото. Те съдържат много други софтуерни продукти, като помощни програми за GNU shell, графичен сървър на Xorg, работен плот GNOME, уеб браузър на Firefox и т.н. Ето защо някои хора смятат, че терминът GNU / Linux трябва да се използва за "Linux дистрибуции" като Ubuntu, Mint, Debian, Fedora, Arch, openSUSE и др.

Android използва ядрото на Linux под капака. Тъй като Linux е с отворен код, разработчиците на Android на Google могат да променят ядрото на Linux, за да отговарят на техните нужди. Linux дава на разработчиците на Android предварително инсталирано, вече поддържано ядро ​​на операционната система, за да започне, за да не се налага да пишат свое собствено ядро. Това е начинът, по който се изграждат много различни устройства - например PlayStation 4 използва FreeBSD ядрото с отворен код, докато Xbox One използва ядрото на Windows NT, което се намира в съвременните версии на Windows.

Ще видите дори версията на ядрото на Линукс, изпълнявана на устройството ви, под "Всичко за телефона" или "Всичко за таблета" в настройките на Android.

Разликите

Има някакъв дебат дали Android се квалифицира като "дистрибуция на Linux". Той използва ядрото на Linux и друг софтуер, но не включва голяма част от софтуера, който Linux обикновено включва.

Когато зареждате устройство с Android, ядрото на Линукс се зарежда точно както би било при Linux дистрибуция. Обаче голяма част от другия софтуер е различен. Android не включва библиотеката GNU C (glibc), използвана за стандартни Linux дистрибуции, нито включва всички библиотеки GNU, които бихте намерили в типичната Linux дистрибуция. Той също така не включва X сървър като Xorg, така че не можете да стартирате стандартни графични приложения на Linux.

Вместо да изпълнява типични приложения на Linux, Android използва виртуалната машина Dalvik, за да изпълнява по същество приложения, написани на Java. Тези приложения са насочени към устройства с Android, а интерфейсите за програмиране на приложенията (API) Android предлагат, вместо да се насочват към Linux като цяло.

Защо не можете да стартирате софтуера за настолен Linux на

Тъй като Android не включва графичен X сървър или всички стандартни библиотеки на GNU, не можете просто да работите с Linux приложения на Android. Трябва да стартирате приложения, написани специално за Android.

Android има черупка като тази, която ще намерите на Linux. Няма начин да получите достъп до него, но можете да инсталирате приложение като Emulator за терминални устройства за Android, за да получите достъп до тази терминологична среда.

По подразбиране няма много какво да направите тук. Терминалът все още ще работи в ограничена среда, така че не можете да получите пълна коренна кошница, без да зареждате устройството си с Android. Много стандартни команди, които може да са ви необходими, не са налични - затова хората, които коренят устройството си, обикновено инсталират приложението BusyBox, което инсталира много помощни програми за командния ред. Тези помощни програми се използват от приложенията, за да правят нещата с техния root достъп.

Защо не можете да стартирате софтуер на Android на Desktop Linux

Linux не включва виртуалната машина Dalvik, така че не може да стартира приложения за Android. Виртуалната машина Dalvik и целият друг софтуер на Android не могат просто да бъдат пуснати на настолна Linux машина - ще трябва да свършите повече работа, за да накарате приложенията за Android да се изведат на прозорец на стандартен работен плот например чрез Xorg. Теоретично, с достатъчно работа, разработчиците могат да накарат Далвик да работи на настолен Linux, така че потребителите на Linux за настолни компютри да могат да използват приложения на Android на своите настолни компютри. Сегашният спящ продукт на Ubuntu за Android се опита да направи нещо подобно, интегрирайки Ubuntu и Android на телефона и позволявайки тези приложения за Android да се показват на работния плот на Ubuntu.

BlueStacks и други емулатори на приложения за Android се опитват да направят това за Windows и Mac. Те изпълняват Android на виртуален хардуер във виртуална машина, което им позволява да пускат приложения на Android - с наказание за ефективност - на вашия работен плот. Тези решения обаче не са се оказали много популярни.

Google Chrome OS също се базира на Linux. Подобно на Android, Chrome OS не предлага стандартна X прозоречна система, така че стандартните приложения на Linux не могат да се изпълняват в Chrome OS. За разлика от Android, Chrome OS е по-близо до стандартните десктоп Linux дистрибуции, така че можете да използвате режима за разработчици, за да инсталирате липсващия Linux настолен софтуер.

Image Credit: ranti на Flickr, анатомия и физиология на Android