Tizen — взгляд изнутри

Tizen Xeyes Попал ко мне в руки на некоторое время образец телефона с Tizen OS. Я решил воспользоваться возможностью посмотреть, какой же Linux скрывается внутри. Большинство обзоров Tizen OS описывают интерфейс взаимодействия со стороны пользователя, в данной статье я проведу небольшой обзор телефона и операционной системы со стороны системного администратора. Будут рассмотрены наиболее интересные предустановленные консольные приложения, работа с графическим интерфейсом и возможность обновления из репозитория.

Для того чтобы подключиться к консоли устройства нам потребуется утилита Smart Development Bridge (SDB) из состава Tizen SDK. С сайта разработчика ее можно скачать отдельно. В виде бинарного файла Smart Development Bridge доступен под те же платформы, что и Tizen SDK: Windows 7(32 и 64 бит), Ubuntu(32 и 64 бит), Mac OS X (64 бит). Указание Ubuntu в данном случае несколько условно, у меня утилита без проблем заработала под Fedora 19 (x64). Smart Development Bridge способен работать с несколькими устройствами и предоставляет базовый набор команд для работы с устройством, в том числе удаленный доступ к командной оболочке устройства. Он то нас и интересует в первую очередь. Все дальнейшие манипуляции будут производиться из консоли.

В Tizen изначально предусмотрено два основных пользователя под которыми возможна работа: developer и root, по-умолчанию используется developer. Чтобы получить максимум возможностей при взаимодействии с операционной системой, нам потребуется повысить уровень привилегий, для этого потребуется включить режим суперпользоваля. Введем необходимые для подключения команды:
$sdb root on
Switched to 'root' account mode
$sdb shell
sh-4.1#


Итак, мы получили root-доступ к системе. Для начала проделаем простые тесты позволяющие получить информацию о платформе. Попробуем узнать предоставленный нам шелл, версию системы и ядра.
sh-4.1# echo $SHELL
/bin/sh
sh-4.1# sh --version
sh --version
GNU bash, version 4.1.5(1)-release (armv7l-unknown-linux-gnueabi)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

sh-4.1$ cat /etc/system-release 
Tizen release 2.2.0 (Tizen)
sh-4.1# uname -a   
Linux TRATS2 3.0.15-00002-g277d62a #1-Tizen SMP PREEMPT Tue Jul 16 13:12:44 KST 2013 armv7l GNU/Linux


Вполне обычный линукс — Tizen 2.2.0 с ядром 3.0.15, в качестве командной оболочки используется Bash 4.1.5. Запросим информацию о характеристиках платформы таких как процессор и память.

sh-4.1# cat /proc/cpuinfo
Processor	: ARMv7 Processor rev 0 (v7l)
processor	: 0
BogoMIPS	: 1590.88
processor	: 1
BogoMIPS	: 1590.88
processor	: 2
BogoMIPS	: 1590.88
processor	: 3
BogoMIPS	: 1590.88

Features	: swp half thumb fastmult vfp edsp neon vfpv3 tls 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x3
CPU part	: 0xc09
CPU revision	: 0

Chip revision	: 0011
Hardware	: TRATS2
Revision	: 000c
Serial		: 4df764b878e3cf00

sh-4.1# cat /proc/meminfo | grep Mem
MemTotal:         797944 kB
MemFree:          385720 kB

sh-4.1# fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/mmcblk0'! 
The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/mmcblk0: 15.8 GB, 15758000128 bytes
1 heads, 16 sectors/track, 1923584 cylinders, total 30777344 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1               1    30777343    15388671+  ee  GPT

Вполне ожидаемые параметры — четырехядерный armv7 c частотой 1.6 ГГц c гигабайтом оперативной памяти из которых доступно системе около 800Мб. Накопитель на 16 Gb. Характеристики полностью соответствуют Samsung Galaxy S III (GT-i9300), который в качестве деволепер-образца предоставляется разработчикам Tizen.

Попробуем получить информацию о доступных исполняемых файлах, нажав дважды TAB. В ответ на это шелл предлагает вывести около тысячи наименований. Точное число не привожу, так как при нескольких запусках число вариантов варьировалось от 952 до 1003. В любом случае, такое количество довольно велико для операционной системы телефона. Весь список перечислять очень долго, поэтому отмечу наиболее интересные на мой взгляд: X11,enlightenment, scp, ssh, sshd, rpm, zypper, xclock, xeyes, xmessage. Из этого можно сделать вывод, что на телефоне установлена операционная система по набору приложений не уступающая настольной – есть иксы, оболочка, пакетные менеджеры. В качестве среды рабочего стола используется Enlightenment. Некоторые приложения при запуске из консоли отображаются на экране телефона, закрывая меню. Если запустить xeyes увидим на экране телефона глаза следящие за касаниями к экрану. Пример результата запуска xeyes показан на фото в начале статьи. Аналогичным образом на дисплей можно вывести oclock, xclock, xlogo, xmessage.

sh-4.1$ xmessage  -geometry 240x120 -center HELLO HABRAHABR!

Tizen xmessage Hello Habrahabr!

Не все приложения работоспособны «из коробки», для того чтобы ими можно воспользоваться потребуется их сконфигурировать.Так, например, скрипты запуска демона sshd в системе отсутствуют, а сам демон «в лоб» не запускается, выводя сообщение «Missing privilege separation directory: /var/run/sshd». Проблема решается просто — необходмо создать эту директорию и дать необходимые права на нее:
mkdir /var/run/sshd
chmod 0755 /var/run/sshd

После проделанных манипуляций демон можно запустить:
start-stop-daemon --start --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- -p 22

Подключение к ssh-серверу под root происходит без пароля, поэтому не будем оставлять включенным сервер.
start-stop-daemon --stop --pidfile /var/run/sshd.pid

Перейдем к системе управления пакетами. В системе установлен менеджер пакетов Red Hat версии 4.9.1.
sh-4.1# rpm --version
RPM version 4.9.1

Проверим возможность обновления предустановленных пакетов. Zypper — консольный менеджер пакетов, используется в дистрибутиве GNU/Linux openSUSE. Если есть менеджер пакетов, то должены быть и репозитории в которых он берет пакеты. Пробуем обновить список пакетов командой zypper refresh, но тут ждет разочарование – репозиторий не найден.
sh-4.1# zypper refresh
Retrieving repository 'Tizen-main' metadata [\]
Specified path '/srv/snapshots//tizen-2.2/common/tizen-2.2_20130717.6/repos/tizen-main/armv7l/packages/' is not a directory: file:/srv/snapshots//tizen-2.2/common/tizen-2.2_20130717.6/repos/tizen-main/armv7l/packages/

Retrieving repository 'Tizen-main' metadata [error]
Repository 'Tizen-main' is invalid.
[|] Valid metadata not found at specified URL(s)
Please check if the URIs defined for this repository are pointing to a valid repository.
Skipping repository 'Tizen-main' because of the above error.
Could not refresh the repositories because of errors.

Судя по тексту сообщения об ошибке, репозиторий Tizen-Main расположен по несуществующему пути. Поищем на официальном сайте репозитории. Как мы уже выяснили в телефоне у нас TIZEN 2.2, на http://download.tizen.org есть несколько подходящих репозиториев. Отключим старый репозиторий и подключим парочку новых. Вместе репозиторием tizen-2.2, заодно подключим чуть более свежий tizen-2.2_20130719.3. Невостребованные репозитории всегда можно будет отключить.
zypper mr -d 1
zypper ar http://download.tizen.org/releases/2.2/tizen-2.2/repos/tizen-base/armv7l/packages/  Base
zypper ar http://download.tizen.org/releases/2.2/tizen-2.2/repos/tizen-main/armv7l/packages/  Main
zypper ar http://download.tizen.org/releases/2.2/tizen-2.2_20130719.3/repos/tizen-base/armv7l/packages/  Base20130719
zypper ar http://download.tizen.org/releases/2.2/tizen-2.2_20130719.3/repos/tizen-main/armv7l/packages/  Main20130719
zypper refresh

Система готова к установке пакетов и обновлению.

Tizen достаточно гибкая система в которой скрывается большой потенциал. В заключение отмечу, что в подключенных репозиториях нашлись средства разработки: cmake, ccache, gcc и другие. Этот факт открывает новые возможности для разработки под Tizen.
Поделиться публикацией
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 74
  • +7
    Первый раз, когда я услышал о Тизене что-то, что мне стало интересно. Вопрос один теперь мучает меня только: почему ядро такое старое?
    • 0
      Хороший вопрос.
      Полагаю, это пока устройство для разработчиков.
      Есть и другие варианты.
      Например, у эмулятора ядро 3.4.0+.
      • 0
        Старый девелоп девайс. На новом 3.4.0
        • +2
          Нет, девайс M0, распоследняя доступная релизная прошивка 2.2, и там версия 3.0.15-00002-g277d62a.
    • 0
      Отлично! В качестве бонуса хотелось бы увидеть сравнение с аналогичными возможностями эмулятора, входящего в состав Tizen SDK.
      • +1
        Сейчас посмотрел — по возможностям примерно тоже самое. На флешке с SDK сборка ОС в эмуляторе немного посвежее, чем в телефоне. И у него есть одно важное отличие от телефона — он x86, а не arm.
      • 0
        Получается, Tizen основан на openSUSE или они только Zypper оттуда взяли?
        • 0
          Он в Tizen из MeeGo перекочевал, судя по всему.
        • 0
          Вполне обычный линукс — Tizen 2.2.0 с ядром 3.0.15, в качестве командной оболочки используется Bash 4.1.5.
          Это, вообще-то, необычно — для встроенного линукса чаще используют busybox, да и у Убунты /bin/sh -> dash. А тут — баш в полный рост.
          • 0
            Кстати, в N900 и на андроидном планшете bash вполне полноценно работал
            • 0
              Раз уж на то пошло, на N900 по-умолчанию BusyBox.

              И, если придираться к словам, то автор сказал «обычный линукс», а не «обычный мобильный линукс».
              Вообще, думаю, что с bash ситуация тоже из MeeGo перекочевала.
            • 0
              До этого мобильные ОС не исследовал, поэтому сравнивал с настольным линуксом под которым статья писалась. Для меня федора — обычный линукс.
            • +1
              Вот и думаю, что выбрать — tizen, jolla, или таки мобильную убунту
              • 0
                Пока что Tizen — единственная из перечисленных платформ (при всём к ним уважении), которая поддерживается как OEM, так и операторами связи.
                • 0
                  А в чём заключается эта поддержка? Пресловутая экосистемность? Возможность купить залоченный аппарат подешевле?
                  • 0
                    Разработка сервисов, ПО, железок.
                    Финансовые вливания, в конце концов.
                    • +2
                      А у jolla могут сделать заднюю панельку в виде выдвижной клавы, вот :-)
                      Ну, что к новому году выживет, то и возьму
                      • 0
                        Ну, пока не сделали.
                        Но будет любопытно посмотреть что получится.
                    • 0
                      В том, что разработка Tizen (инвестиции, маркетинг, человеческие и другие ресурсы) ведётся консорциумом Tizen Association, в который входят как OEM-производители, так и операторы связи.
                      Даже если условный DOCOMO захочет выпустить своё залоченное устройство на Tizen, никто не заставляет вас его покупать. Но в любом случае в этой ситуации DOCOMO льёт воду на мельницу Tizen.
                    • 0
                      Справедливости ради, нужно сказать, что у Jolla есть контракт с финским DNA.
                      Но это гораздо более локально, чем ситуация с Tizen.
                      • 0
                        • 0
                          Угу.
                          Но с поддержкой Tizen не сравнимо. Некоторые заявления и компании удалось собрать тут.

                          Вообще, я жду появления и Sailfish на рынке. Довольно интересно то, что ребята делают.
                      • 0
                        Так а Sailfish разве операторами не будет поддерживаться?
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • 0
                          Конечно слышали.

                          Я вижу список операторов.
                          Где OEM?
                          Кто будет разрабатывать устройства и компоненты?
                          Кто обеспечит экосистему?
                          История с кикстартером тоже очень показательна.

                          Безусловно, ситуация может измениться.
                          Но на данный момент в плане поддержки из систем новой волны (назовём их так) у Tizen лучшая поддержка.
                          • НЛО прилетело и опубликовало эту надпись здесь
                            • 0
                              Написано, чем будут. Но не написано кто. Общих слов можно написать очень много, но пока кто-то конкретно не заинтересуется — эта платформа никому не нужна. И история с кикстартером это подтверждает.

                              В Tizen уже давно занимаются и доступен весь список.

                              Поверьте, чем больше платформ, тем лучше для меня же, как для пользователя. Не подумайте, что я пристрастен.

                              Но объективно у Tizen наилучшая поддержка.
                              • НЛО прилетело и опубликовало эту надпись здесь
                                • 0
                                  А надо было сколько? 32 млн. долларов как минимум. Даже минимум не достигнут, даже половины не собрали, понимаете?
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • 0
                                      Ей Богу, вы законченный оптимист.
                                      Треть от минимума!
                                      И я сомневаюсь, что это реально был пиар, т.к. результат очень сомнительный.
                                      Если раньше были шансы, то сейчас маловероятно, что кто-то из вендоров сделает на них серьёзную ставку.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • 0
                                          … и она же первая кампания такого рода…
                                          Всё относительно, Николай.
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                            • 0
                                              «Я вам не скажу за всю Одессу...»
                                              Всё может быть.
                                              Я лишь хотел отметить, что когда что-то происходит в первый раз, очень важно, но при этом очень трудно провести линию нулевого потенциала. И спекуляций на эту тему, как правило, бывает очень много.
                                        • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        Стоит еще сказать, что на борту стоит Python интерпретатор 2.7.1, что открывает кое-какие возможности ;)
                        • НЛО прилетело и опубликовало эту надпись здесь
                          • –2
                            По-моему, эта информация устарела несколько лет назад.
                            Андройд со своей прожорливостью породил сумасшедшую гонку ресурсов.
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                Предлагаете закрыть всё, кроме нативного кода?
                                Следуя вашей логике, управляемый (managed) код тоже запретим/упраздним?
                                • НЛО прилетело и опубликовало эту надпись здесь
                                  • +6
                                    Сегодняшний смартфон — это мой десктоп 7-летней давности.
                                    Я уже молчу про разрешение экрана.
                                • +2
                                  Да нет, я хорошо понимаю ситуацию.
                                  И всеми руками «за» эффективные приложения.
                                  Хотя за нативную разработку у нас в основном агитирует Amarantine.

                                  Но я хочу обратить внимание на то, что нынешние мобильные устройства очень неплохо сравнимы по производительности с ноутбуками двух-трехлетней давности, которые отлично справлялись с интерпретируемыми приложениями.

                                  Кстати, приложения на том же питоне были популярны еще на устройствах Symbian S60, которые значительно уступали в производительности доступным сейчас монстрам.

                                  Но прошу понять меня правильно.
                                  Я не говорю, что гонка за гигагерцами и ядрами, в ущерб качеству кода, — это хорошо.
                                  Нет, но учитывать доступную производительность тоже нужно.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                          • НЛО прилетело и опубликовало эту надпись здесь
                            • 0
                              Уже можно. Пока только с Tizen Store у Qt есть сложности.
                              • НЛО прилетело и опубликовало эту надпись здесь
                                • 0
                                  Так QML это хорошая новость или интерпретируемые языки на мобильных платформах это зло? Противоречиво получается
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • 0
                                      Ну не в бинарь, а в нативные плюсовые классы. Питон он тоже в pyc перегоняется при желании.
                                      А кроме того в QML может быть JS любой сложности, который уж точно в бинарь не компилируется
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                      • 0
                                        На случай если я не прав про компиляцию — где лежат результаты этой компиляции между запусками? Никогда их не видел
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                          • 0
                                            Вот тут ты точно не прав — QML-файл парсится в рантайме, в процессе компиляции он не обрабатывается. Можно без перекомпиляции приложения подменить qml
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                              • 0
                                                Я в статьях не видел ничего про то, что qml-файлы компилируются вместе в плюсовым кодом и кладутся в бинарь

                                                Этап компиляции, приведенный в статье, происходит в рантайме при загрузке QML-файла, но такая загрузка происходит каждый раз при запуске приложения
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                        • 0
                                          Если моя память меня не подводит, QML-файл компилируется в байт-код, который содержит инструкции, как создать нужный объект. А JavaScript-код выполняется как обычно.
                              • 0
                                А устройства на полки магазинов когда поступать будут?

                                P. S. В Маунтин-вью, наверное, уже точат ножи. Tizen-то в первую очередь начнет отжирать долю именно у Android, а не у iOS или Windows Phone.
                                • +4
                                  Я влюбился в ОС при виде окошка xmessage
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • 0
                                      Wayland стоит в планах.
                                      Не всё сразу.
                                      • 0
                                        они бы и использовали, будь он не сырым
                                    • 0
                                      Довелось подизайнить интерфейс для Тизена. Правда, еще тогда для какой-то ранней беты. Спецификаций не было никаких, все приходилось интуитивно ловить из редких скриншотов. Но в целом, концепция интерфейса мне понравилась. Не столь стройная, как iOS, но все наладится, я думаю. Зато потенциал у системы куда более широкий в плане UI/UX заморочек. Скажем так, я бы подумал о гибкости и масштабу возможностей как у Android, но при этом держал бы в уме изящество решений от iOS плюс простоту и отзывчивость WP8. Весьма перспективная система, я думаю. Хотя бы с точки зрения дизайн-девелопинга.
                                      • 0
                                        вот только наверное ее не поставить на другие телефоны
                                      • 0
                                        У меня вопрос… А ведь если на Tizen поставить JVM, то, теоретически, на нём можно запускать андроид-приложения? Причём с той же производительностью, что и на самом Андроиде? Если это так, то эту фичу очень не помешает встроить в Tizen. Это могло бы существенно упростить жизнь тем, кто хочет пересесть с Андроида.
                                      • 0
                                        Это все хорошо, но телефоны то где?

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.