Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Взлом как образ мысли Взлом как образ мысли
Интервью с человеком, который, как оказалось, является не только талантливым пентестером в одной из крупных ИБ-компании, но и хакером-ветераном, который уверенными шагами вышел на свет и прикоснулся к истории российской хак-сцены....
Полный гид по накрутке онлайн-голосований Полный гид по накрутке онлайн-голосований
Конкурсы с голосованием привлекают большое количество посетителей, а трафик, как известно, — это деньги. Особый интерес вызывают конкурсы, где за победу предлагаются лакомые призы....

Android: мобильный Linux от Google

Bookmark and Share

В конце 2007 года произошло весьма знаменательное для мира мобильных компьютеров событие. Всемирно известный поисковый гигант Google анонсировал новую операционную систему для смартфонов — Android. Основанная на ядре Linux и снабженная переработанной средой Java, новая система сразу стала гвоздем сезона. Прошел уже почти год, а потребители до сих пор с нетерпением ждут первое устройство, работающее под управлением новой программной платформы.

Идея превращения исконно настольного Linux в подстилку для запуска приложений на смартфонах давно созревала в недрах большинства производителей сотовых телефонов. Ведь даже за далекий от совершенства Symbian просили денег, и при том немалых (за 2007 год одна Nokia выплатила компании Symbian 250 миллионов долларов в виде лицензионных отчислений), а полностью свободный и отшлифованный как бриллиант Linux так и продолжал «тлеть» на стойках серверов. И ведь вопрос не в том, как перенести ядро Linux в карманный компьютер, а в том, как на его основе создать по-настоящему работоспособную среду с графическим интерфейсом, понимающую сенсорные экраны, корректно взаимодействующую с начинкой телефона и знающую обо всех его премудростях. Причем сделать это так, чтобы новая платформа смогла составить конкуренцию уже укрепившимся на рынке игрокам.

Эксперименты начались давно, и некоторые производители уже успели запустить целые линейки устройств «с пингвином в брюхе». Особенно на этом поприще отличилась Motorola, выпустившая первый в мире серийный Linux-смартфон еще в 2003 году и до сих пор контролирующая 90% данного рынка. Другие всемирноизвестные бренды тоже отваживались на эксперименты с открытой ОС, но дальше одной-двух моделей дело не шло. Мобильный Linux так и не смог пересечь границ Китая, в котором «пингвинофоны» были достаточно распространены благодаря множеству небольших компаний, выпускающих недорогие «трубки». Из-за стремления каждого производителя протолкнуть свой вариант платформы «Linux для смартфонов» оказался разбитым на множество несовместимых версий, что только отталкивало независимых разработчиков ПО, а хорошее производительное устройство превращалось в простую «звонилку» со стандартным набором несложных программ.

Анархия не могла продолжаться бесконечно, и на свет появился фонд LiMo, собравший вокруг себя всех именитых игроков телефонной индустрии и учрежденный для создания полностью открытой платформы на базе ядра Linux и других свободных компонентов. Разработки упорно продолжались и уже начинали приносить плоды в виде первых версий прошивок, как вдруг неожиданно для всех Google анонсирует Android.

Но вызванный ажиотаж был вполне предсказуем. Когда настолько крупная и успешная компания как Google вступает на новый и, главное, совершенно несвойственный ей рынок, фурора просто не избежать. Примерно так же было воспринято в свое время сообщение Microsoft о начале разработки собственного «инновационного» языка C#. Тогда вся Сеть, все IT-форумы быстро обросли множеством сообщений о языке программирования, который изменит мир или, напротив, приведет к кончине IT. Не стал исключением и Android. Развернувшаяся вокруг него шумиха, может, и не превзошла ожидания Google, но была поистине массовой. Интернет в один день был заполонен сообщениями на всех хоть как-то связанных с IT ресурсах о новой, почти волшебной платформе для смартфонов. Впоследствии, конечно, страсти поутихли, но ожидания первого аппарата с новой ОС на борту становятся все более волнующими и животрепещущими.

Кто на свете всех умнее

Google пускает Android в свободное плавание просто потому, что не собирается рассматривать его как прямой способ заработка. Мобильная ОС — мостик, необходимый для осуществления замыслов интернет-гиганта: существенное пополнение базы пользователей собственных сервисов и, как следствие, увеличивающиеся доходы от рекламы.

Руководство компании отлично понимает современный мир программной начинки смартфонов, в котором царят разрозненность платформ, неудобство разработки ПО, преобладание проприетарных платформ и далекие от идеала средства работы во Всемирной паутине. Ведь несмотря на то что любой современный телефон (не говоря уже о смартфонах) способен предоставить его владельцу достаточно удобный и простой способ выхода и в интернет (настройка GPRS или EDGE тривиальна и зачастую сводится к обмену двумя-тремя SMS-сообщениями с оператором мобильной связи), лишь 13% американцев пользуются этой возможностью хотя бы раз в месяц (информация Yankee Group на 2007 год). Виной тому удручающее неудобство доступных средств просмотра веб-страниц, превращающих навигацию по Сети в сущее мучение. И получается, что трехмиллиардная армия обладателей мобильных устройств оказывается потерянной для интернет-компаний и, в первую очередь, для самой Google, которая уже давно предлагает различные сервисы мобильным пользователям.

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

Рождение андроида и его начинка

Начало грандиозному проекту было положено еще в 2002 году, когда основатели Google Лари Пейдж и Сергей Брин прослушали в Стэнфордском университете лекцию Энди Рубина, посвященную разработке ПО для планшета T-Mobile Sidekick. Заинтересовавшись его наработками, Google в 2005 году без особой шумихи купила созданный им стартап Android, а его самого сделала директором по мобильным платформам. Следующие два года о проекте ничего не было слышно, однако многие пронырливые журналисты предрекали скорый выпуск пресловутого GPhone (телефона от Google). И только 5 ноября 2007 года, после официального анонса Android, стало ясно, над чем же на самом деле работала Google. Сюрпризом стал не только сам Android, но и созданный специально для его продвижения альянс OHA (Open Handset Alliance), в который вошли HTC, LG, Motorola, Samsung, Intel, Nvidia, Texas Instruments, eBay и другие, менее известные, компании (всего на момент создания их было 34). Именно членам альянса OHA пока открыт доступ к исходным текстам Android, всем остальным придется либо лично обращаться к руководству Google, либо довольствоваться эмулятором, входящим в состав SDK, выпущенного 12 ноября. Публичный же релиз Android состоится только после начала продаж первого устройства на его основе. Пока же серийно производимых девайсов на базе Android не существует (они должны появится в ближайшие месяцы).

Сразу стоит сказать, что архитектурно Android в некоторых местах напоминает другую, не получившую распространения, мобильную ОС Inferno. В основе платформы лежит модифицированное и подогнанное под начинку смартфонов ядро Linux. Выше располагаются уровень библиотек и небольшой набор стандартных UNIX-команд. На самой вершине находится виртуальная машина Dalvik, в которой выполняется все прикладное ПО, включая графический интерфейс.

В состав библиотек второго уровня входят:

  1. стандартная библиотека языка Си, выдернутая из какого-то варианта BSD и, по словам Google, оптимизированная для работы во встраиваемом оборудовании. Что это значит на деле и чем она отличается от обычной libc, не совсем понятно;
  2. набор библиотек для работы с мультимедиа, основанный на OpenCORE (разработка PacketVideo, входящего в альянс OHA). На начальном этапе заявлена поддержка форматов MPEG-4, H.264, MP3, AAC, AMR, JPEG, PNG, GIF;
  3. менеджер поверхностей Surface Manager, управляющий доступом к подсистеме отображения 2D- и 3D-графических слоев;
  4. веб-движок LibWebCore, основанный на WebKit, который также встроен в iPhone;
  5. 2D-движок SGL;
  6. 3D-библиотека, реализующая OpenGL ES 1.0 API. Заявлена поддержка аппаратного ускорения;
  7. растеризатор шрифтов FreeType;
  8. база данных SQLite.

Набор UNIX-команд, располагающихся в каталогах /system/bin и /system/sbin, в основном включает стандартные команды POSIX, упакованные в один исполняемый файл toolbox и вызываемые из него через жесткие ссылки (по всей видимости, это просто переименованный и урезанный busybox — www.busybox.net).

Инициализация ОС проходит по стандартной, но несколько видоизмененной для Linux схеме, через запуск команды init и старт инициализационного скрипта /etc/init.rc. Cкрипт, в свою очередь, проводит предварительную подготовку системы к работе и запускает команду /system/bin/runtime, которая приводит в действие графическую оболочку и подготавливает к исполнению заранее определенный набор прикладного ПО, складированного в каталоге /system/app. Прикладное графическое ПО исполняет виртуальная машина Dalvik, которая хоть и является виртуальной машиной Java, существенно от нее отличается. Dalvik относится к классу регистро-ориентированных машин, идеально подходящих для работы на процессорах RISC-архитектуры, к которым относятся и процессоры ARM, применяемые в мобильном секторе. Разработчики Android намеренно отказались от стандартной в данной сфере Java ME из-за ее ограниченности и нежелания платить лицензионные отчисления компании Sun. Вместо этого они создали полноценную Java-среду с оптимизированной виртуальной машиной (представители Google заявляют, что Dalvik позволила им снизить затраты памяти на исполнение байткода и оптимизировать среду для одновременного запуска нескольких экземпляров виртуальной машины) и средой исполнения, позаимствованной из Apache Harmony — опять же по лицензионным соображениям. Созданные с помощью стандартного Java-компилятора class-файлы просто преобразуются в байткод Dalvik (*.dex) транслятором dx, входящим в состав SDK.

Изнутри работающий Android выглядит как набор виртуальных машин Dalvik, в каждой из которых исполняется прикладная задача. Управление памятью и менеджмент процессов выполняет Linux-ядро ветки 2.6. В качестве файловой системы выбрана YAFFS, максимально минимизирующая число перезаписей данных (флеш-память, как известно, со временем «изнашивается»). Android лишен X-сервера, графическая оболочка использует FrameBuffer Device (/dev/graphics/fb0) для доступа к видеопамяти.

Без наличия подробных спецификаций ОС трудно говорить о ее надежности и безопасности. Но при правильной реализации среды исполнения (на что можно рассчитывать, зная Google), в которой отдельные виртуальные машины максимально изолированы друг от друга, а соприкосновение исполняемых программ происходит только через посылку сообщений, Android окажется весьма стойким. В то же время драйверы всегда являлись слабым местом монолитных ядер, так что Linux может подвести.

Что касается чисто визуального оформления, то здесь Android никаких сюрпризов не преподносит. С первого взгляда бросается в глаза подозрительное сходство с Apple iPhone. Видимо, «гугловцы» просто начали с наиболее удачного интерфейса, потому что в базовом комплекте присутствует и другой вариант UI. А шведская компания TAT (The Astonishing Tribe, член OHA), специализирующаяся на создании пользовательских интерфейсов, разработала еще несколько вариантов оформления. Сама Google не против кардинальных изменений интерфейса, если того захочет производитель устройства, и даже настаивает на этом, но просит компании не дробить ОС, внося изменения только в том случае, если они не затрагивают ABI (то есть сохраняют совместимость ПО с модифицированной версией Android).

Реальные прототипы устройств с работающим Android внутри публика смогла увидеть только на мероприятии World Mobile Congress в феврале этого года, когда свои наработки, так или иначе связанные с данной ОС, показали компании ARM, Freescale Semiconductor, NEC Electronics, Qualcomm, Texas Instruments и E28. К сожалению, тем, кто хочет заполучить Android, скорее всего придется ждать до начала Рождества, когда смартфон HTC Dream поступит в продажу. Кроме HTC, о своем намерении выпустить «андроидофоны» уже высказались такие компании, как T-Mobile, LG, Motorola и Samsung, но их серийное производство начнется опять же не раньше конца 2008 года. Кроме того, Koolu не так давно объявила о своих планах на выпуск свободного смартфона Neo FreeRunner с предустановленным Android вместо стандартного для данной модели Openmoko.

Говоря о будущем, стоит вспомнить прошлое и подивиться находчивости отдельных личностей, которые, не имея доступа к полноценной версии ОС, смогли запустить ее на серийно выпускающихся устройствах Nokia N810 и Sharp Zaurus. Причем команда, портировавшая ОС на Zaurus, высказала мнение, что Android сможет работать на любой «железке», оснащенной процессором ARMv5TE.

Критика

Не обошлось и без ложки дегтя. Серьезная критика обрушилась в адрес Google после того, как в середине июля Дэвид Маклафлин по ошибке отправил письмо с анонсом новой версии Android SDK не в тот список рассылки. Выяснилось, что письмо предназначалось полуфиналистам конкурса и скачать обновленный SDK можно только с приватного сайта. Позже Маклафлин извинился, но репутация Google была серьезно подпорчена. Независимые разработчики раздосадованы, они не слышат новостей о развитии Android и ждут обновления SDK уже пятый месяц, в то время как Google распространяет новую версию только среди избранных, которым «заткнули» рот соглашением о конфиденциальности.

Распространенная претензия к Android касается виртуальной машины Java, которая заработала репутацию «прожорливого монстра», особо жадного до процессора и оперативной памяти. Не имея доступа к реальным устройствам, многие антагонисты Java поставили на Android клеймо «тормоза», быстро разряжающего аккумулятор. Однако, вопреки всем предсказаниям скептиков, он показал отличные скоростные характеристики и умеренный уровень потребления памяти. Так, на демо-ролике от BBC, в котором с прототипом нового устройства работал сам Энди Рубин, игра Quake легко выдавала 30 кадров в секунду, а сенсорный экран молниеносно реагировал на нажатия (при тактовой частоте процессора в 300 МГц). В январе специалисты уже упоминавшейся A La Mobile заставили Android работать на коммуникаторе HTC Qtek 9090 2004 года выпуска, и вновь ОС показала высокую скорость работы. Еще более интересно то, что на довольно слабом мобильном телефоне от компании E28, оснащенном процессором TI OMAP 730 с тактовой частотой 200 МГц и 64 мегабайтами оперативной памяти, Android работал без каких-либо проблем.

С другой стороны, идея использовать Java критиковалась и за то, что виртуальная машина слишком сильно абстрагирует программу от реального оборудования и, в отличие от того же LiMo, не дает разработчикам полной свободы действий. В этом конечно же есть смысл, но не стоит забывать, что ниже виртуальной машины лежит хоть и урезанный, но самый настоящий Linux runtime, без проблем исполняющий бинарный код. К тому же бросать такие обвинения в адрес свободной ОС сродни критике Linux за неудобство KDE.

Свое недовольство выразили многие независимые разработчики, которые жаловались на нестабильную работу SDK, плохую документацию и многочисленные недоработки платформы. Но Google не хотела упускать рынок и поторопилась с выпуском комплекта разработчика, поэтому остается надеяться, что в будущих версиях недочеты будут исправлены.

Конкуренты

Пока еще рано говорить о том, сможет ли детище Google составить конкуренцию другим игрокам рынка мобильных ОС, но все задатки для этого у нее имеются. Благодаря ядру Linux Android уже сейчас более совершенен, чем SymbianOS. Его интерфейс более интуитивен и понятен, чем Windows Mobile. Язык Java и заранее опубликованный SDK делают Android гораздо более простым и привлекательным для сторонних разработчиков, чем любая другая ОС. Свободный путь распространения сделает телефоны с предустановленным Android более дешевыми и привлекательными для конечных пользователей.

С другой стороны, SymbianOS и Windows Mobile уже давно правят рынком и просто так от них никто не откажется. Symbian завоевала себе сильного друга в лице Nokia, а Windows представляет пользователям привычный интерфейс настольного ПК и очень распространена на территории США. Чтобы потеснить соперников, Android должен обладать чем-то по-настоящему уникальным, таким, чего потребитель не сможет найти в других телефонах. И если в борьбе против Microsoft этим чем-то может стать свободный доступ к исходным кодам, то в отношении SymbianOS нужно нечто другое (Nokia обещала «освободить» SymbianOS уже к концу текущего года).

Но даже если Android сможет отвоевать солидный кусок рынка, ему придется соревноваться со своим же «собратом», продвигаемым фондом LiMo. И здесь могут возникнуть серьезные трудности. LiMo Foundation насчитывает около 60 солидных игроков мобильного рынка, разрабатываемая им Linux-платформа пользуется большим доверием, она дает независимым разработчикам возможность создавать приложения практически на любом языке, и на нее достаточно легко портировать существующее ПО.

Говоря о еще более далекой перспективе, стоит вспомнить заявление Microsoft о возможном применении операционной системы Midori в мобильном секторе. А это уже не шутки. Midori берет свое начало в проекте исследовательской ОС Syngularity, написанной на модификации языка C# и рассчитанной на применение в сервере, где безопасность и стабильность имеют первостепенное значение. Это современная и весьма технологичная ОС, так что Google придется сильно постараться, чтобы оказать достойную конкуренцию ребятам из Microsoft Research.


Полную версию статьи читай в сентябрьском номере IT Спец!



Теги: Android , Google , Linux , Linux Mobile , мобильный телефон , операционная система





СЛЕДУЮЩИЕ СТАТЬИ
Умная стратегия обновления позволит сохранить исправность системы
10 наиболее важных Open Source проектов 2011
Oracle оставляет базы данных уязвимыми
IPv6: время действовать
Раз заплатка, два заплатка: зачем нужны бинарные патчи, и как ими пользоваться
Прав достаточно: 8 приемов для обхода групповых политик в домене
Windows 7 PORTABLE: делаем загрузочную флешку с "семеркой" на борту
Суперкомпьютер из видеокарты: задействуем возможности GPU для ускорения софта
SELinux: бронежилет для корпоративного пингвина
Генеральный директор Red Hat: "Я не имею ни малейшего понятия, что дальше"
ПРЕДЫДУЩИЕ СТАТЬИ
Охота за призраками бутылочного горлышка: сеанс термоядерной отладки для админов
История медлеенннооого компьютера
Как мы сделали Linux из Windows: новые способы запуска никсовых приложений под виндой
Обнаружение компрометации ядер Linux и xBSD, или Руткиты тоже оставляют следы
Поднимаем BitTorrent трекер
Десять линий обороны: ТОП-10 ошибок администрирования Windows Server 2003/2008
Нам не страшен синий BSOD: новые способы борьбы с голубым экраном смерти
Контроллер домена на SAMBA за семь шагов
Копирование: простая сложность №3
Непотопляемый сервер: настраиваем кластер на основе Windows 2003 Server
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

Для оставления комментария вы можете зарегистрироваться по упрощенной процедуре.

Обсуждение этой статьи на forum.xakep.ru
Для отправки сообщения введите код, указанный на картинке
Сообщение

UserГость
10.10.2008 16:58:03
Ответить Ссылка
уже жду ) буду серваком рулить с трубы - вот весело будет )
UserГость
11.10.2008 3:12:40
Ответить Ссылка
я серваком рулил с htc touch поставив ssh клиента... не весело... в таком деле нужна клава
UserГость
11.10.2008 7:52:28
Ответить Ссылка
Неплохо, но называть Linux отшлифованным я бы лично постеснялся ;)
UserГость
11.10.2008 14:25:21
Ответить Ссылка
странно, инфа какаята усторевшая
если я не ошибаюсь, HTC в сентябре выпустила
T-mobile G1

PS интересней было бы почитать как андройда поставить на существующие девайсы.
Userzhuk
11.10.2008 22:48:53
Ответить Ссылка
Было бы интересно посмотреть на ОС. И поставить на нокию 3210 :)
UserГость
13.10.2008 10:54:03
Ответить Ссылка
HTC Dream еще не отгружается из магазинов оператор T-Mobile. Факт в том, что заставить работать его на WM-based коммуникаторах можно только после получения XIP для них... что нереально...

DataLink




Keywords: zPOSTz zOSz, zINFOz, zYANDEXz z45536z
Для Авторов: edit Lock delete Lock



    Rambler's Top100