Как установить linux на мобильный. Устанавливаем Linux-дистрибутив на телефон и планшет под управлением Android. Переселение души: linux на android планшете

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

Linux или не Linux?

Как известно, андроид основан на ядре Linux и включает в себя набор стандартных библиотек и утилит командной строки, свойственных обычному Linux-дистрибутиву. Однако запуск классического Linux-софта здесь сильно затруднен из-за множества причин, в числе которых несовместимость ABI, отсутствие менеджера пакетов, собственная система безопасности и отсутствие многих компонентов стандартной Linux-системы.

Так, несмотря на наличие в Android стандартной библиотеки libc и других, их реализация в большинстве случаев несовместима с библиотеками от проекта GNU и сильно урезана по функционалу. По этой причине Linux-софт нужно как минимум пересобирать специально под Android и ARM-процессор, а во многих случаях еще и патчить, добавляя функционал, отсутствующий в библиотеках.

BotBrew: список поддерживаемых устройств

BotBrew был протестирован на следующих устройствах: Barnes & Noble NOOK Color, LG P970 Optimus Black, Huawei Ascend M860, HTC Desire, HTC Evo 4G, HTC Evo 3D, HTC Inspire 4G, HTC Droid Eris, HTC Hero, Samsung Galaxy Nexus, Samsung Galaxy S2 (GT-I9100), Samsung Galaxy Y (GT-S5360), Motorola Atrix 4G, Motorola Droid/Milestone, Sony Ericsson Xperia X8, Asus EeePad Transformer TF101.

Система безопасности Android, обрезающая приложения в привилегиях по полной программе и не позволяющая им выходить за рамки собственного каталога, также серьезно препятствует работе стандартного Linux-софта. Поэтому часто требуется получать права root, которые эти ограничения снимают. Отсутствие менеджера пакетов, который бы позволял устанавливать обычный Linux-софт, а не только Java-приложения, вынуждает разработчиков писать приложения, нужные только для того, чтобы устанавливать другие приложения. Так появляются все эти кастомные инсталляторы.

Ну и довершает картину то, что в Android просто нет многих стандартных компонентов Linux, включая, например, даже такие неотъемлемые, как графический стек X Window или библиотека GTK+. Кое-какие попытки все это сюда принести, конечно, предпринимаются, но дальше полурабочих альфа-версий дело не двигается.

Тем не менее возможность перенести в Android функционал полноценной Linux-системы слишком уж заманчивая идея, чтобы энтузиасты не попробовали решить возникающие в процессе проблемы и дать нам полноценное универсальное решение. Самый очевидный и простой путь - это запустить «виртуализированную» версию полноценного Linux-дистрибутива, о чем мы уже подробно писали. Способ этот интересный, но страдает от проблемы разделения системы на две области, каждая из которых работает независимо от другой.

Гораздо более интересным выглядит проект BotBrew - в его рамках разрабатывается вполне обычный для Linux-систем менеджер пакетов и репозиторий, с помощью которого можно устанавливать Linux-софт в отдельно взятый каталог внутри Android. Также в свое время было придумано множество различных скриптов, которые позволяют легко и без лишних проблем собирать пригодный для работы внутри Android Linux-софт на большом брате. Этим двум проектам и будет посвящена оставшаяся часть статьи.

BotBrew

Проект BotBrew призван решить многие проблемы с установкой Linux-софта, которые только могут возникнуть у пользователя, и подготовить систему Android к принятию инородных для нее приложений. По сути, система состоит из четырех компонентов:
  • репозиторий с прекомпилированными для Android приложениями, используя который можно установить многие Linux-приложения с помощью одной команды;
  • менеджер пакетов, в качестве которого используется легковесный Opkg или dpkg вместе с apt-get в экспериментальной версии BotBrew Bazil;
  • менеджер процессов runit, необходимый для того, чтобы правильно запускать и поддерживать работу демонов, если таковые будут установлены;
  • собственная система сборки, которая содержит в себе все инструменты, необходимые для кросс-компиляции приложений с помощью любого настольного Linux-дистрибутива.
Для работы это чудо программистской мысли требует всего ничего: права root и немного свободного пространства во внутренней памяти смартфона или на карте памяти. Причем первый вариант предпочтительнее, так как в случае с SD файлы будут свалены на виртуальный диск, работа с которым поддерживается далеко не всеми ядрами.


Начальная инициализация

На данный момент классическая версия BotBrew, использующая собственный репозиторий, позволяет устанавливать такой софт, как dcron, GCC, Git, SSH-сервер dropbear, консольный браузер Lynx, сканер безопасности Nmap, инструмент бэкапа rsync, редактор Vim, веб-сервер lighttpd, скриптовые языки Python и Ruby, а также несколько десятков других пакетов. Устанавливается это все, кстати говоря, в выделенный каталог во внутренней памяти смартфона/планшета и никак не захламляет основную систему. Другими словами, избавиться от BotBrew и всего, что ты установил, можно будет, просто удалив один каталог.

Ставим софт

Итак, как же использовать BotBrew для установки Linux-софта? Для начала нам понадобится пакет с самой программой. Он есть в Google Play (отмечу, что нужен BotBrew root, а не экспериментальный Bazil) и весит меньше мегабайта. После установки запускаем и нажимаем кнопку «Proceed» внизу экрана, чтобы софтина выкачала все необходимые для ее работы компоненты, такие как консольный менеджер пакетов, и другие утилиты (в терминах Debian Linux - bootstrap). Весят они всего несколько мегабайт, поэтому ждать придется недолго. По окончании установки BotBrew выведет на экран окно с официальной интернет-страницей проекта, которое можно смело закрывать.

Теперь на экране ты должен увидеть список пакетов, доступных к установке. Их довольно много, но графических приложений по описанным выше причинам ты среди них не найдешь. Зато есть разномастные серверы, компиляторы и интерпретаторы, так что всем, кто хочет серьезно «поиграться» со смартфоном, будет где развернуться. Для установки пакета достаточно тапнуть по его имени и на следующем экране, содержащем информацию о приложении, нажать кнопку «Install».

Танцы с бубнами

Если во время bootstrap’а BotBrew возникли проблемы, ты можешь попробовать установить его вручную с помощью следующей команды:

Wget http://repo.botbrew.com/anise/bootstrap/install.sh -O - | su
Если и это не помогло, можно попробовать удалить все установки («Remove BotBrew» в настройках) и затем попробовать запустить эту команду.

После этого пакет появится на вкладке «Installed», однако никакой кнопки «Run» или чего-то подобного ты не увидишь. Приложение придется самостоятельно запускать из консоли, что, впрочем, логично. Само приложение устанавливается внутрь каталоговой структуры /data/botbrew, в котором «эмулируется» реальное окружение Linux-дистрибутива с каталогами /etc, /usr и другими. А чтобы не мучить пользователей необходимостью набирать полный путь до команды, разработчики BotBrew предусмотрели одноименную команду-враппер. Чтобы с ее помощью запустить, например, установленный консольный браузер Lynx, следует набрать такую команду:

$ botbrew lynx http://xakep.ru
Как вариант - каталог /data/botbrew/bin можно добавить в переменную окружения PATH, но это придется делать после каждого запуска терминала:

$ export PATH="$PATH:/data/botbrew/bin"
С демонами и разными сетевыми сервисами, кстати, дела обстоят намного лучше. После старта демоны сразу будут запущены, а управлять их включением можно через графический интерфейс, доступный по нажатию на кнопку «Play» в нижней части интерфейса BotBrew. Некоторые приложения могут потребовать создания дополнительных пользователей и изменения их параметров, это можно сделать так же, как в обычной Linux-системе:

  1. Создание пользователя:
    $ botbrew adduser vasya
  2. Открытие пользователю доступа в интернет:
    $ botbrew addgroup vasya inet
  3. Переключение BotBrew на другого пользователя:
    $ botbrew su vasya
Обрати внимание, что все эти изменения будут касаться только виртуального окружения BotBrew и никак не отразятся на основной системе. Консоль можно использовать также для установки приложений в обход графического интерфейса. Для этого следует использовать консольный менеджер пакетов Opkg, синтаксис команд которого полностью совместим в apt-get:

$ botbrew opkg install dropbear
Обратная операция:

$ botbrew opkg remove dropbear
Чтобы оставаться «на острие прогресса», репозиторий BotBrew нужно время от времени обновлять, нажав на соответствующую кнопку в графическом интерфейсе (ее ни с чем не спутаешь). Новые версии пакетов будут отображаться на вкладке «Upgradable». Достаточно тапнуть по его имени и нажать «Upgrade».

BotBrew Basil

В маркете можно найти также приложение под названием BotBrew Basil, помеченное как экспериментальное. По сути, это все тот же BotBrew, но с одним весьма важным отличием. Вместо собственных репозиториев и менеджера пакетов Opkg он использует ARM-репозитории Debian Linux и менеджер пакетов apt-get. Это значит, что количество софта, которое можно установить с помощью «бразильской версии» приложения, намного больше. В десятки раз больше.

Кроме использования дебиановских репозиториев, Basil отличается также слегка измененным интерфейсом. Например, сразу после запуска он предлагает выбрать каталог установки. По умолчанию используется /data/botbrew-basil, что, на мой взгляд, вполне логично, однако ты можешь выбрать любой другой, в том числе на ext2-разделе карты памяти (FAT не подойдет).

Второе важное отличие - это возможность выбрать способ использования приложения, которая появляется сразу после нажатия «Proceed». Вариантов здесь четыре:

  1. Use BotBrew on the command line - по сути, аналог установки в стиле обычного BotBrew.
  2. Use the dpkg/APT system - установка вместе с apt-get и репозиториями Debian. Рекомендуемый вариант установки.
  3. Run Python programs - аналог первого варианта с автоматической установкой Python.
  4. Install a minimal Debian - минималистичная установка Debian.
Поясню второй и четвертый пункты. Первый BotBrew и первый пункт в этом списке делают не что иное, как установку минималистичной Linux-системы (состоящую всего из нескольких команд и библиотек), внутри которой как раз и происходит запуск Linux-софта. Однако apt-get, в отличие от минималистичного Opkg, требует более-менее полноценной установки Linux. Поэтому, выбрав второй пункт, ты получишь у себя на смартфоне этакий микро-Linux. А если мы можем установить микроверсию, почему бы не установить более-менее полноценный дистрибутив. Для этого и существует четвертый пункт.

После bootstrap’а BotBrew Basil на экране появится все тот же интерфейс управления установкой приложений, знакомый нам по классической версии приложения, а в системе появится команда botbrew2, с помощью которой можно запускать софт. Каких-то существенных отличий в управлении здесь нет, кроме разве что команды apt-get вместо opkg и возможности подключения дополнительных репозиториев (в том числе репозитория первого BotBrew) прямо через интерфейс установки приложений.

Берем дело в свои руки

Прекомпилированные приложения и репозитории с готовыми пакетами - это прекрасно, но что, если необходимого приложения нет среди доступных для установки? Ведь даже тот же BotBrew Basil, позволяющий подключать репозитории Debian с огромным количеством софта, в силу своего экспериментального характера заработает далеко не на каждом смартфоне.

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

Тем не менее мы можем воспользоваться наработками других людей, чтобы автоматизировать процесс сборки софта. Одно из наиболее развитых и интересных решений из этой области - набор скриптов SCRIPTSET , разработанный пользователем smitna с XDA Developers. Он позволяет буквально в пару команд собрать множество самых разных приложений, в числе которых htop, ImageMagick, iptables, ELinks, Screen, mc, node.js, Samba, strace, QEMU, Parted, SANE (его можно использовать для прямой печати на принтере с телефона!) и множество других. Скрипт сам выкачает кросс-компилятор, все необходимые зависимости и приложения, наложит патчи, где это необходимо, и сгенерирует готовый для распаковки на телефон архив.

SCRIPTSET работает только в Linux, но, если у тебя Windows, ты можешь установить Ubuntu в виртуальной машине. Далее следует открыть терминал и установить необходимые для сборки кросс-компилятора инструменты:

$ sudo apt-get install build-essential cmake autoconf2.13 scons
После этого можно получить сам SCRIPTSET и распаковать его:

$ cd ~ $ wget http://goo.gl/zvnom -O scriptset-2.6.zip $ unzip scriptset-2.6.zip
В результате распаковки мы получим… еще один архив: scriptset-2.6.tar.bz2. Но и это еще не все, архив запакован без традиционного для tar корневого каталога, поэтому его необходимо создать самостоятельно. И уже в него производить распаковку:

$ mkdir scriptset $ cd scriptset $ tar -xjf ../scriptset-2.6.tar.bz2

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

$ chmod 755 *.sh

# vi ~/scriptset/configuration.conf // Каталог установки приложений на смартфоне TARGET_SYSROOT="/data/sysroot" // Целевой процессор TARGET_MARCH="armv7-a" TARGET_MTUNE="cortex-a9" TARGET_MFPU="neon" TARGET_MFLOAT="softfp"

Этого будет достаточно для корректной сборки любого приложения; целевым процессором будет стандартный ARMv7 с дополнительным набором инструкций NEON. Такой установлен в любом смартфоне, выпущенном за последние три-четыре года. Каталог /data/sysroot будет использован для установки приложений на смартфоне, однако, как это ни странно, его придется также создать и на настольной машине:

$ sudo mkdir -p /data/sysroot $ sudo chown user:users /data/sysroot $ sudo chmod 777 /data/sysroot
Как объясняет автор скриптов, такое действие необходимо потому, что пути для ключевых каталогов в некоторые приложения вшиваются на этапе сборки. Поэтому, если бы мы собрали приложение, используя в качестве корневого текущий и любой другой каталог, оно бы просто не заработало на смартфоне из-за различия в путях. Я уверен, что корректнее было бы решить эту проблему с помощью chroot, но проще и быстрее создать нужный каталог, а по окончании работ - удалить его.

Далее мы должны указать список приложений, которые планируем собирать. Для этого открываем файл package_selection.conf и меняем no на yes в нужных опциях. Например, чтобы собрать bash, ImageMagick и Screen, нужно поменять три следующих строки:

# vi ~/scriptset/package_selection.conf BASH=yes IMAGEMAGICK=yes SCREEN=yes
Имей в виду, что настройки, находящиеся между строками # ALWAYS NEEDED, менять нельзя. Эти приложения и библиотеки нужны всегда, и без них другие приложения просто не собираются. Теперь можно скомпилировать приложения. Для этого достаточно запустить скрипт build.sh без аргументов:

$ ./build.sh
Если все необходимые пакеты были установлены и компилятор в ходе сборки не выдал никаких ошибок, в результате сборки в текущем каталоге появятся два архива: cs-sysroot.tar.bz2 и android-mysysroot.tar.bz2. Первый - это окружение, необходимое для запуска приложений, созданное кросс-компилятором, а второе - сам набор приложений. Оба этих архива необходимо скинуть на карту памяти смартфона, а затем, запустив на нем эмулятор терминала или подключившись по ADB, выполнить две команды:

$ tar xjf /sdcard/cs-sysroot.tar.bz2 $ tar xjf /sdcard/android-mysysroot.tar.bz2
В результате во внутренней памяти смартфона появится каталог /data/sysroot, в котором и будут размещены приложения. Запускать их следует из того же терминала, указывая полный путь. Например:

$ /data/sysroot/usr/bin/bash
Ну или после запуска терминала добавить /data/sysroot/usr/bin в PATH:

$ export PATH="$PATH:/data/sysroot/usr/bin"

Выводы

Несмотря на довольно серьезные различия между Android и типичным Linux-дистрибутивом, установить консольные Linux-приложения на смартфон не так уж и сложно. К сожалению, о графических приложениях речи пока не идет, но проекты портирования библиотеки Qt и графического сервера Wayland в Android уже есть, и в скором времени, надеюсь, мы получим рабочее решение.


Впервые опубликовано в журнале «Хакер» от 08/2013.

  • Смартфоны ,
  • Краудсорсинг
  • "Мечтают ли электроовцы о линуксе на телефоне?"


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


    Я не могу поставить "банерорезку" на системном уровне или поднять dnscrypt. Зарулить часть трафика по wifi, а часть по мобильной сети. Достать тот самый нужный мне файл, доступный только из-под рута. А при открытии загрузчика слетает гарантия, перестает работать бесконтактная оплата и все те "улучшатели" для камеры от производителя. Не могу прописать install по ssh и через пару секунд получить приложение со всеми нужными патчами.


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


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


    UPDATED: Почти наверняка будет использован i.MX8M и FullHD экран. Ура!
    UPDATED2: За 5 дней были собраны недостающие 500k из $1.5M. $300k из них - корпоративные заказы. До конца компании остается еще 2 недели. Хороший ответ тем, кто говорил "не нужно".



    ДЛЯ НЛО (можно убрать): статья в первую очередь о проблемах и непростых решения, которые иногда приходится принимать разработчикам свободных устройств в современном рынке закрытого железа. + немного информации о данном конкретном проекте, которой нет в открытом доступе. Все упоминания о сборе средств (и ссылку на него) я убрал. К качестве референса - , которая прекрасно живет на geektimes (там ссылка на краудфандинговую компанию есть, кстати).

    Что это?

    Librem 5 - смартфон на linux, который будет построен на максимально открытом железе и софте, с уважением к безопасности и приватности. Он пока не существует, но есть уже более-менее проработанный за 1.5 года план, и менее чем через месяц начнется активная разработка.

    Кто?

    Команда Purism успешно выпустила серию ноутбуков с максимально свободным железом (насколько это сейчас возможно), open source BIOS"ом и своим дистрибутивом linux, который они развивают. Сейчас компания переключила свое внимание на смартфоны.

    Железо

    Что делает любой адекватный человек открывая статью о новом девайсе? Конечно, пролистывает весь маркетинговый булшит до описания характеристик железки. Дальше будет список с оф. сайта. Почему он такой куцый, я объясню ниже.


    Характеристики

    • 5″ touchscreen
    • i.MX6/i.MX8 CPU
    • Vivante GPU (Etnaviv free software accelerated driver)
    • Separate mobile baseband
    • 3GB LPDDR3
    • 32GB eMMC
    • MicroSD slot
    • Camera (front and back)
    • Flash
    • Headphone and Microphone Jack (3.5mm)
    • Microphone
    • Speaker
    • Power Button
    • Volume Controls
    • SIM Slot
    • WiFi 802.11
    • Bluetooth 4
    • Debugging interface (internal)
    • USB Host
    • USB Type-C
    • Battery
    • Sensors:
      • Accelerometer
      • Gyroscope
      • Compass
      • Ambient Light
      • Proximity
    • Hardware kill switches for:
      • Camera
      • Microphone
      • Baseband
      • WiFi/Bluetooth

    Отдельный чип мобильной связи

    Начнем с неожиданного пункта. Но он повлиял на многие принимаемые далее решения.

    Мобильные сети небезопасны. И проблема вовсе не в реализации ПО или неправильной настройки оборудования (хотя и такое сплошь и рядом) - проблема куда глубже и связана с самой архитектурой сети. Десятки различных векторов атаки: начиная от широко известных («проходного двора» SS7, перехвата 2G, ошибок в шифровании 3G/4G) - до специфических хардварных атак на конкретное оборудование.

    Ситуация осложняется тем, что большинство мобильных чипов используют бинарную прошивку (firmware) без исходников. А когда это добро еще и физически находится в SoC , работающем с камерой и микрофоном… Кошмар параноика.

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

    Кстати, перестаньте использовать SMS для аутентификации и авторизации. Я серьезно. Это небезопасно.

    CPU & GPU

    Итак, в процессоре не должно быть беспроводной связи. Что еще? Полностью открытые драйвера с хорошей поддержкой OS. Если верить разработчикам Librem 5, из того, что сейчас представлено на рынке, им подошла целая одна (!) линейка SoC - i.MX6 от NXP. Просто муки выбора. Современная реальность открытого железа.

    Что же нам достанется из этой линейки процессоров? 2 ядра 32-битного Cortex-A9 1.0 GHz, Vivante GC880 GPU, DDR3 и USB 2.0. Этакий середнячок 5х-летней давности. Не густо, конечно, но для обычного использования должно хватить.
    Но мы ведь хотим, чтобы мир пересобирался на нашем gentoo за пару часов, а не за неделю, и сервер, который мы обязательно запустим на этом смартфоне, может и не 10k RPS выжимал, но хотя бы пару десятков пользователей мог обслужить? ;)

    К счастью, в начале года NXP презентовала новую линейку процессоров i.MX8 , которые могут даже носить гордое звание середнячков этого года. 4 ядра 64-битного Cortex-A53, Vivante GC7000Lite GPU с поддержкой Vulkan, 4kp60, h.265 и VP9, DDR4, USB 3.0-C - с этим уже вполне можно жить, а не существовать. Крипту не помайнишь, конечно, но нам же не для этого? GPU должно потянуть 3D средней тяжести - было бы только что запускать:)

    Почему же в характеристиках i.MX6/i.MX8? К сожалению, i.MX8 еще нет. Ходят слухи, что там уже все готово для производства, и до конца года новая линейка выйдет. Часть кастомеров летом получила опытные образцы. И разработчики Librem 5 даже готовы подождать 2-3 лишних месяца, если что. Но пока в качестве страховки i.MX6.

    Экран

    5 дюймов, минимум HD. В планах поставить FullHD, если будет такая возможность. Как оказалось, трудно заранее на 100% договориться на такую небольшую партию. Когда компания по сбору средств завершится, будет выбран лучший вариант и заключен контракт с поставщиком. От себя добавлю, что для 5 дюймов даже HD не так уж и плохо.

    Память

    3GB LPDDR3 в варианте с i.MX6, и, возможно, больший объем LPDDR4 для i.MX8-M. 32 GB eMMC и слот для MicroSD.

    Wireless

    Отдельным чипом Wifi/Bluetooth, физический выключатель - те же самые причины, что и для мобильных сетей.

    Камера, навигация, акселерометр, etc.

    Все стандартно. Есть две камеры - и хорошо. Стоит обратить внимание только на то, что камеры и микрофон тоже будут иметь физические выключатели. Любители использовать изоленту негодуют.

    Батарея

    Съемная, больше никакой информации.

    Корпус

    Металлический, легкий доступ ко всем внутренностям и отладочным портам.

    NFC и беспроводная зарядка

    Наверняка нет. По крайней мере не для первой версии. Объем работы и так очень большой.

    Сканер отпечатка, распознавание по лицу, сетчатке глаза и исполнению «Смооооууук он зэ вооооотэ»

    Принципиально нет. Биометрия - такая штука, которую можно использовать и без вашего желания, и сложно поменять после компрометации. В отличие от паролей, которые только у вас в голове. «Начало» - пока только фантастика (я надеюсь).
    Врочем, распознавание по исполнению никому не известного трека из заголовка можно будет реализовать самим - все-таки у вас будет полный контроль над телефоном.

    Софт

    OS

    Linux, по умолчанию будет самопальный PureOS (основан на Debian), который используется в ноутбуках компании. Обещают возможность использовать любой дистрибутив, который поддерживает ARM. С напильником, конечно. Выглядит вполне реалистично, учитывая, что загрузчик открыт и все драйвера будут доступны.

    Будет ли песочница для приложений? Для PureOS уже есть ядро с GrSecurity, так что наверняка такой механизм будет реализован. Ну и SELinux c AppArmor опять же. В общем, все, что есть для linux, можно будет использовать под конкретный уровень вашей паранои.

    Интерфейс и стандартные приложения

    Разработчики уже договорились о поддержке со стороны Gnome и KDE комьюнити. Что будет по умолчанию - пока не решено. В планах портировать «джентльменский набор» приложений с оптимизацией под тачскрины. Когда эта работа будет завершена - придет время для более сложных вещей.

    Matrix

    По умолчанию в качестве децентрализованного безопасного способа коммуникации будет использоваться Оригинал: Android is Based on Linux, But What Does That Mean?
    Автор: Chris Hoffman
    Дата публикации: 12 мая 2014 г.
    Перевод: Н.Ромоданов
    Дата перевода: июнь 2014 г.

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

    Linux составляет ядро Android, но Google не добавил все типичное программное обеспечение и библиотеки, которые вы можете найти в дистрибутиве Linux, таком как Ubuntu. В этом все различия.

    Сравниваем «Linux» и ядро Linux

    Большая разница здесь сводится к тому, что мы подразумеваем под Linux. Люди используют термин «Linux» для обозначения многих различных вещей. По своей сути, Linux означает ядро Linux. Ядро является основной частью любой операционной системы.

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

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

    Вы даже увидите версию ядра Linux, которая работает на вашем устройстве, в пункте меню About phone (О телефоне) или About tablet (О планшете) в меню Android’s Settings (Настройки Android).

    Различия

    Существует некоторая дискуссия по поводу того, можно ли квалифицировать Android как «дистрибутив Linux». В нем используется ядро Linux и другое программное обеспечение, но в него не входит большая часть программного обеспечения, которое обычно входит в Linux дистрибутивы.

    Когда вы загружаете устройство с Android, ядро Linux загружается так же, как это было бы в дистрибутиве. Тем не менее, большая часть остального программного обеспечения различается. В Android не входит библиотека GNU C Library (glibc), используемая в стандартных дистрибутивах Linux, а также не входят все те библиотеки GNU, которые вы обнаружите в типичном дистрибутиве Linux. В нем также сервера X, например, Xorg, так что вы не сможете запустить стандартные графические приложения Linux.

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


    Почему не удастся запустить в Android приложение, предназначенное для настольного компьютера с Linux

    Поскольку в состав Android не входит графический X-сервер или все стандартные библиотеки GNU, вы не сможете просто запускать приложения Linux на Android. Вы должны запускать приложения, написанные специально для Android.

    В Android есть командная оболочка, похожая на ту, что вы найдете на Linux. Но «прямо из коробки» нет способа получить к ней доступ, но вы можете установить приложение, например, Android Terminal Emulator, для того, чтобы получить доступ к этой терминальной среде.

    Здесь, по умолчанию, вы не сможете сделать слишком многого. Терминал будет работать в ограниченной среде, поэтому вы не сможете получить полный доступ к корню системы без того, чтобы не выполнить рутование вашего устройства Android (прим.пер.: получить права доступа суперпользователя root). Многие стандартные команды, которые вам, возможно, потребуются, не доступны - вот почему те, кто выполнил рутование своих устройств в целом, устанавливают приложение BusyBox, устанавливающее много утилит командной строки. Эти утилиты используются приложениями, которым нужно что-либо делать с правами суперпользователя.


    Почему не удастся запустить программное обеспечение для Android на настольном компьютере с Linux

    В состав Linux не входит виртуальная машина Dalvik, поэтому Linux не может запускать приложения Android. Виртуальная машина Dalvik и все другое программное обеспечение Android, нельзя просто поместить в настольный компьютер с Linux — например, вам придется сделать больше работы для того, чтобы приложения для Android выдавали результат в в окно на обычном рабочем столе через Xorg. Теоретически, если выполнить всю работу, разработчики могли бы сделать, чтобы Dalvik работал на настольном с Linux и пользователи настольных компьютеров с Linux могли запускать приложения Android на своих рабочих столах. Была сделана попытка создать приложение (теперь уже не работающее) для Ubuntu, которое пытались сделать что-то вроде этого, интегрируя Ubuntu и Android на телефоне и позволяющее сделать так, чтобы эти программы можно было запустить на рабочем столе Ubuntu.

    Для ОС Windows и Mac была попытка сделать это с помощью эмулятора BlueStacks и других приложений Android. Они запускают Android в виртуальной среде на виртуальной машине, что позволяет им запускать приложения Android на рабочем столе с большой потерей производительности. Но эти решения оказались не очень популярными.


    ОС Chrome, созданная Google, также базируется на Linux. Как и Android, ОС Chrome не предоставляет стандартную оконную систему X, поэтому стандартные приложения Linux не могут работать на ОС Chrome. В отличие от Android, ОС Chrome ближе к стандартным дистрибутивам Linux для настольных компьютеров, поэтому вы можете использовать режим разработчика для того, чтобы установить недостающее программное обеспечение, предназначенное для настольного Linux.

    Здравствуйте, дорогие читатели лучшего мобильного портала сайт! В этой статье, я расскажу вам о запуске полноценных операционных систем на Android. Сегодня, речь пойдёт о двух операционных системах - Windows XP и Linux. Итак, приступим к делу.

    LINUX

    Начнем с более легкой инструкции - запуск Linux на Android. Для начала предупрежу, что для данного способа нужны ROOT права. Также, если вы используете смартфон на базе Android 5.0 Lollipop, Android 6.0 Marshmallow или более поздней версии, то вам нужно кастомное ядро. В этой статье используется Nexus 5 с установленным ядром «ElementalX». Итак, приступим.

    Инструкция:
    1. Для начала, нужно скачать и установить программу BusyBox, которая является обеспечением большинства стандартных инструментов Unix.

    2. Далее, скачиваем и устанавливаем программу Linux Deploy, это главный компонент и без него у нас ничего не получится, так как он скачивает дистрибутив из официального зеркала, создает образ диска на microSD карте, монтирует его и устанавливает дистрибутив операционной системы.
    3. Открыв приложение Linux Deploy, переходим в конфигурационную панель. Здесь, выбираем какой дистрибутив вы хотите использовать. В данной стать будет использоваться выбранный по умолчанию дистрибутив Debian в среде LXDE.

    4. Выбрав дистрибутив, нажимаем на кнопку установить. Установка длится около 30 минут.
    5. По окончанию установки, приложение запустит среду Linux и сама настроит рабочее окружение, которое включает в себя базовую систему, сервер SSH, сервер VNC и графическую среду которую мы выбрали ранее. Также, можно через программу можно настроить сервера SSH и VNC.
    6. Вы можете подключиться как и через SSH, так и через VNC, я использую сервер VNC, но вы можете использовать какой хотите.
    7. Если вы подключились через сервер SSH, введите порт «22», а пароль по по умолчанию «changeme».
    8. Если вы, как и я, хотите подключиться через сервер VNC, скачайте программу VNC, запустите ее и в поле впишите адрес «localhost:5900», пароль по умолчание, такой же как и у сервера SSH - «changeme».

    9. Радуйтесь запущенным дистрибутивом Linux!

    Windows XP

    Теперь, о более сложном - запуск Windows XP на Android. Вы скажете как? Ответ прост - Bochs. Именно с этим приложением мы будем эмулировать Windows XP. Bochs - это программа, которая эмулирует операционные системы на базе x86, оно было создано для эмуляции таких операционных систем как, Windows DOS, Windows 3.1, Windows 95, Windows 98. Но сегодня мы попробуем более сложную задачу. Важно отметить, что работа Windows XP будет очень-очень медленна, а также, не будет соединения с интернетом, так что, если у вас есть терпение и вас не интересуют проблемы, которые могут возникнуть, то вперед! Итак, начнем.

    Что нужно:
    1. ISO файл Windows XP
    2. Qemu Manager для ПК
    3.
    4. Bochs SDL
    5. Blank Disk Image

    Инструкция:
    1. Откройте Qemu Manager для ПК и создайте новую виртуальную машину. Назовите ее как хотите, в данном случае ее название будет «XP».

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

    3. Следующим шагом, нужно перейти в вкладку драйверов и выберите «жесткий диск 0». Далее выберите путь к ранее скачанном «Blank Disk Image».

    5. Наконец, выполнив все пункты, выберите зеленую кнопку в левом верхнем углу, чтобы запустить виртуальную машину. С этого момента, просто установите Windows XP на виртуальную машину как на простой ПК.

    6. После того, как установка завершится, разархивируйте.zip файл Bochs SDL. Переместите «Blank Disk Image» в папку SDL. Переименуйте файл «Blank Disk Image» в «c».

    8. Скачайте и установите приложение Bochs на Android. Далее, откройте его. Приложение само должно определить наличие Windows XP и запустить ее. Помните, это работает очень-очень медленно!

    Чтобы загрузиться на рабочий стол операционной системы Windows XP, нужно подождать как минимум, 10 минут.

    9. Радуйтесь запущенной Windows XP!

    На этом все. Всем спасибо за внимание!

    Подробная инструкция по превращению любого устройства, работающего под управлением Android, в полноценный компьютер на базе Linux.

    Запуск Linux на Android возможен! И для этого не нужно устройство с root-правами: всё необходимое ПО доступно в официальном магазине Google Play. Всего за 10–15 минут вы сможете получить операционную систему, отличающуюся от Android расширенной функциональностью.

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

    Перед установкой закройте все ненужные приложения и очистите оперативную память Android-девайса.

    1. Из магазина Google Play установите GNURoot Debian и XServer XSDL .

    2. Перед началом установки Linux убедитесь, что ваш девайс подключён к стабильной сети Wi-Fi. Запустите GNURoot. Начнётся загрузка необходимых пакетов среды.

    Установка занимает от 30 секунд до нескольких минут в зависимости от скорости вашего интернет-подключения. Не обращайте внимания на бегущие строки до появления следующей надписи:

    root@localhost:/#

    Знакомых с понятием «root-права» эта строка пусть не пугает: приложение не причинит никакого вреда устройству, поскольку работает в «песочнице».

    3. Введите следующую команду:

    apt-get update

    Дождитесь окончания загрузки пакетов. Об этом скажет строчка Reading package lists…Done.

    4. Теперь введите ещё одну строчку:

    apt-get upgrade

    На вопрос «Do you want to continue?» введите английскую букву Y и нажмите Enter. Начнётся установка пакетов.

    В этот раз процедура установки займёт немного больше времени. Терпеливо ожидайте окончания инсталляции до появления заветной строки:

    root@localhost:/#

    Среда Debian Linux установлена, и теперь можно перейти к разворачиванию графической оболочки.

    5. Установка всех пакетов дистрибутива Linux выполняется следующей командой:

    apt-get install lxde

    Есть и вариант установки ядра системы с использованием строки:

    apt-get install lxde-core

    Подтвердите установку, повторно введя Y и нажав на клавишу Enter. Начнётся процедура загрузки пакетов.

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

    6. Для завершения установки операционной системы необходимо загрузить три дополнительные утилиты:

    • XTerm - для доступа к терминалу из графической оболочки Linux;
    • Synaptic Package Manager - для управления пакетами apt и загрузки приложений;
    • Pulseaudio - для установки драйверов звука.

    Все три утилиты устанавливаются с помощью одной команды терминала GNURoot:

    apt-get install xterm synaptic pulseaudio

    На устройство будет загружено около 260 МБ данных.

    7. Теперь сверните приложение GNURoot и откройте ранее установленное XServer XSDL. Согласитесь с загрузкой дополнительных шрифтов. После окончания установки несколько раз тапните по экрану (приложение предложит выбрать разрешение и размер шрифтов - тут всё зависит от ваших предпочтений), пока не увидите заставку с синим фоном и белым текстом.

    Повторно запустите GNURoot и поочерёдно введите следующие две команды:

    export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4712
    startlxde &

    Последовательность дальнейшего перезапуска системы (когда вы захотите открыть Linux повторно) выглядит так: запускаете XServer XSDL и ждёте появления синего экрана, открываете GNURoot и вводите две указанные выше команды, возвращаетесь к XServer XSDL.

    Если терминал ругается на недопустимую команду, вернитесь к пункту 5 данной инструкции и попробуйте установку «голого» ядра. Проверьте состояние памяти Android-устройства.

    8. Теперь откройте XServer XSDL, подождите несколько секунд - и перед вами готовая к работе Linux.

    Для установки приложений в нижнем левом углу откройте меню Start и выберите Run. Введите Synaptic и нажмите Enter.

    В открывшемся окне воспользуйтесь поиском и установите нужные приложения. Это может быть браузер Firefox, редактор изображений GIMP, офисный пакет Libre и прочие совместимые с Linux программы.

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



    Есть вопросы?

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам: