• 5430
  • 41
  • 5
Нравится блог?
Подписывайтесь!

Является ли Андроид Линуксом? или все же нет

ПРЕДЕСЛОВИЕ

Актуальность етого поста для КЗ в том что андроид нынче в кз распространен сей пост является ликбезом!Которым я решил поделится с КЗ !предназначен для линукс и не линукс пользователям для того что бы осветить на сколько все таки андроид линукс!

Начнем?

Понятия anroid linux lsb

Является ли Андроид Линуксом? Если да, то в какой мере, а если нет, то почему? Найти ответ на этот одновременно простой и сложный вопрос — одна из целей этой статьи.

Прежде чем делать хоть какие-то выводы, давайте подготовим основу для споров и обсуждения: дадим определения терминов, опишем критерии оценки и опишем текущую ситуацию.

Во первых, что такое Android? Android – это операционная система главным образом для мобильных устройств.

Далее, что такое Linux? Одни сразу скажут, что это ядро Linux (Linux Kernel) и представят надпись, наподобие этой: “Linux 2.6.31-14-server”. Другие сразу вспомнят про названия дистрибутивов: Ubuntu, Gentoo, CentOS и т.д., т.е. то, что называют операционной системой.

Секрет в том, что просто слово Linux понимается в зависимости от контекста, в котором оно задано. Более конкретные понятия — это Linux Kernel (ядро Linux) и Linux OS (операционная система Linux) и по сути они описывают разные вещи.

Что такое Linux Kernel? Это компонент операционной системы, который выполняет такие важные функции, как управление памятью, процессами, обеспечение взаимодействия между процессами, доступ к устройствам. Все это происходит на низком уровне, и про уровни еще будет сказано дальше.

Зададим первый вопрос: является ли Android ядром Linux? Ответом должно быть что-то, наподобие «Нельзя сравнивать теплое с мягким» или «Как можно сравнивать ядро и операционную систему, это вещи разного порядка».

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

Что же такое операционная система вообще и Linux OS в частности?

Операционная система — это программное обеспечение, состоящая из программ и данных, которое управляет аппаратными ресурсами и предоставляет основные службы для эффективного исполнения различного прикладного программного обеспечения. Операционная система состоит из ядра (kernel) и совокупности приложений и библиотек (userland), которые используются для взаимодействия с ядром.

Самое время упомянуть уровни и абстракции.

Современное программирование — власть абстракций

История началась, как минимум в 1968 году, когда было опубликовано письмо Эдсгера Дейкстры (1930-2002) о структурном программировании. С тех пор, структура и архитектура являются краеугольным камнем в проектировании информационных систем. Современные системы выглядят, как слоеный пирог. Каждый уровень пирога определяет уровень абстракции (инкапсуляции), который пытается накрыть собой все предшествующие уровни и выступает связкой между нижележащими и вышележащими уровнями, возможно, внося дополнительный функционал.

Построение архитектуры имеет несколько целей. Во первых, упрощается поддержка системы за счет уменьшения взаимосвязей между компонентами. Во вторых, оставив тонкую прослойку для взаимодействия компонент, компоненты можно разрабатывать независимо и разными разработчиками, что очень важно в современном ПО, т.к. сейчас системой, требующей для разработки 10000 человеко-часов никого не удивишь. В третьих, это также защита инвестиций. Наибольшую ценность всегда представляет самый верхний слой, решающий бизнес-задачи. И его пытаются сделать таким, что бы минимизировать переделки при переносе с одного столба слоев на другой. Замечу, что слои не ограничиваются только слоями операционной системы, внутри прикладной программы также существуют слои, которые пытаются скрыть нижележащие слои.

Таким образом, абстракции вовсю царствуют в современных компьютерных (да и не только в компьютерных) системах.

Userland в Linux OS

Мысли о том, что пора навести порядок с userland в Linux зародились уже достаточно давно и в 2001 году вылились в первую версию Linux Standard Base. На текущий момент существует набор спецификаций ISO/IEC 23360-*, а также версия LSB 4.0, вышедшая 11 ноября 2008 г.

Цель LSB — разработать и продвигать набор стандартов, который увеличит совместимость различных дистрибутивов Linux и даст возможность запускать приложения на любой совместимой системе. LSB, например, специфицирует такие вещи, как стандартные библиотеки, команды и утилиты, дерево файловой системы (file system hierarchy), уровни выполнения (runlevels) и т.д.

В этом месте можно уверенно сказать, что Android не удовлетворяет LSB, причем по самым ключевым параметрам. Например, в качестве стандартной библиотеки clib используется реализация Bionic

Основной целью использования Bionic в Android являются:
Лицензионные ограничения, из-за которых требуется отделить прикладные программы от GPL. Bionic использует лицензию BSD.
Меньший размер для оптимизации использования памяти. Bionic требует около 200 кб, что в два раза меньше, чем e glibc.
Оптимизация по скорости выполнения: меньший размер кода, более короткие пути исполнения, очень быстрая и компактная реализация pthread.
В Bionic встроена поддержка Andoid-специфичных служб, таких как системные свойства (Properties) и протоколирование. Bionic не поддерживает некоторые функции POSIX, например исключения C++ и двухбайтовые символы, т.к. они в Android на этом уровне не нужны, а обеспечиваются уровнем выше.

Архитектура Android и классического Linux.

Как известно, в Android сделана ставка на использование языка Java и виртуальной машины, а все прикладные программы должны разрабатываться с учетом этой особенности. Предпосылками для этого являются: Java стала распространенным, проверенным, популярным, простым в использовании языком с очень развитой экосистемой (начиная от средств разработки и библиотек, и кончая развитыми средствами сборки типа maven), достаточно быстрые процессоры и большие объемы оперативной памяти.

Соответственно, над Linux Kernel, clib и другими библиотеками, виртуальной машиной выстраивается еще один уровень абстракции, который играет ключевую роль при разработке для Android: Application Framework. Он является именно той прослойкой, которая отделяет прикладные программы от нижнего уровня операционной системы и берет обеспечение всех необходимых функций на себя. Иными словами, программист, разрабатывающий на Android не видит и не чувствует, что происходит на низком уровне. Если в один прекрасный момент в Android OS поменяют Linux Kernel и clib на что-то другое, никто ничего и не заметит. NDK — средство запуска процессорного кода, существующий в Android, создан для конкретных целей: самодостаточного кода, требующего максимальной производительности. Простой пример — перемножение матриц.

В Linux OS прикладные приложения также отделены от низкого уровня системы набором библиотек, а использование Linux-специфичных функций полностью на совести разработчика. Именно поэтому, например, MTA Postfix существует не только под Linux, но и, например, для FreeBSD.

Стратегия разработки ПО заключается в том, чтобы критичный, системозависимый код загнать в угол и не выпускать оттуда.

Итого, можно сделать вывод, что Linux OS и Android имеют заметные различия в userland и в концепции построения и работы приложений, именно поэтому в самом Google явно говорят, что «Android is not Linux».

В заключение

При разработке ПО становится нормой рассуждать не в терминах операционных систем, а в терминах платформ и фреймворков. Java, Qt, JavaEE, Django, Symfony и т.п., которые обеспечивают необходимый уровень абстракции.

Я осознаю, что некоторым статья может не понравиться, в первую очередь, по религиозным соображениям.

Поэтому, просьба к тем, кому статья показалась интересной и объективной, поставить плюс в карму.

ps:Linux-based вернее назвать Андроид так как без ядра линукса он ни что ))

статья копиаст единсттвенноё моё только ps

Актуальность етого поста для КЗ в том что он о linux based те android е

а андроид нынче в кз распространен сей пост является ликбезом

что бы поделится с КЗ линукс и не линукспользователям на сколько все таки андроид линукс и так начнем

 

ерлан Аханов erlich
Я Студент КаЗну
20 февраля 2011, 20:29
1217

Загрузка...
Loading...

Комментарии

tooFAT
0
0
> Linux OS
> Android is not Linux
Наркоман что ли?
t-sh
0
0
держи +4... жалко чтоль :)
erlich
0
0
немного накроман
xapon
0
0
Факт наличия упоминания о пасте не делает этот пост лучше и добрее. К тому же в сообществе "IT-Kazakhstan".
tooFAT
0
0
Полная фимозность текста делает этот пост добрым и хорошим. habrahabr.ru кстати.
xapon
0
0
Читал это неделю назад, ага.
beji
0
0
нормально так разжевал
я это не читала. но могу сказать одно -норм

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

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Инструкция для аллергиков. Как бороться с аллергией в период обострения

Инструкция для аллергиков. Как бороться с аллергией в период обострения

Я аллергик с детства. Имею аллергию на пыльцу березы, липы, полыни (выяснил это благодаря кожным пробам), а также пищевую аллергию на горчицу. Свои проблемы знаю, однако это меня не спасло.
Romeo_17
15 авг. 2017 / 17:21
  • 38685
  • 63
СМИ – ассистент провокаторов? Как гости из соседних стран сеют раздор в Казахстане

СМИ – ассистент провокаторов? Как гости из соседних стран сеют раздор в Казахстане

Инцидент с пьяным киргизским гостем на борту Air Astana, наверное, остался бы только во внутренних сводках авиакомпании, если бы г-н Доган, не поднял громкий крик о государственном языке.
openqazaqstan
17 авг. 2017 / 14:43
  • 10540
  • 173
Алматы предложили сделать центром секс-туризма

Алматы предложили сделать центром секс-туризма

Известный политолог России Андрей Карпов предложил сделать Алматы центром секс-туризма. Но для этого сперва нужно легализовать проституцию в стране.
tala03
13 авг. 2017 / 14:48
Казахский национализм раньше выглядел несовременно. Теперь он другой

Казахский национализм раньше выглядел несовременно. Теперь он другой

Националисты стали совсем другими. По-английски хорошо говорят, русскую классику цитируют. Очень современные, образованные, адекватные. А после Крыма в националисты уже чуть ли не любой казах готов был записаться.
Aidan_Karibzhanov
16 авг. 2017 / 16:52
Имеющий уши да услышит. Латиница касается только казахского языка

Имеющий уши да услышит. Латиница касается только казахского языка

Президент Назарбаев наконец-то разъяснил для всех, кто ещё не понял, очевидный вопрос, который всем в Казахстане очевиден. Елбасы повторил: на латиницу мы переводим казахский язык, и это не означает отказ от русского языка.
openqazaqstan
18 авг. 2017 / 16:23
  • 2488
  • 44
«Доехать до Алтын Орды» – как мошенники обманывают алматинцев

«Доехать до Алтын Орды» – как мошенники обманывают алматинцев

Из множества грустных откровений постепенно сложился перечень самых распространённых уловок охотников за нашими деньгами. В нём ожидаемо лидировали профессиональные попрошайки.
caravan_kz
16 авг. 2017 / 15:05
  • 2018
  • 2
В Кокшетау строят два парка для молодёжи. Будут учтены интересы и любителей спорта

В Кокшетау строят два парка для молодёжи. Будут учтены интересы и любителей спорта

Общая площадь парка составляет 25 гектаров. На территории предусмотрено устройство прогулочных дорожек, площадок для установки аттракционов и павильонов различного назначения, цветников.
zhasakmola
17 авг. 2017 / 17:13
  • 1881
  • 1
Недоразумение с грантами в ВУЗы: «медалисты» до сих пор имеют преимущество

Недоразумение с грантами в ВУЗы: «медалисты» до сих пор имеют преимущество

Многие способные выпускники без Алтын Белги готовились к тестированию, чтобы в честной борьбе попытать счастья на гранты без ущемления со стороны якобы "золотых" выпускников.
DanaJarlygapova
14 авг. 2017 / 14:35
Новый конкурс на грантовое финансирование – разочарование для казахстанских ученых

Новый конкурс на грантовое финансирование – разочарование для казахстанских ученых

Обсуждение новых условий началось ещё давно, но стоит ли ожидать качественного улучшения результатов научно-исследовательской деятельности, если система управления наукой не была модернизирована?
ermekuss
17 авг. 2017 / 12:23
  • 1712
  • 1