Ровно неделю назад в сети появилась информация о новой операционной системе, которую разрабатывает корпорация Google. Эта ОС, в отличие от прошлых проектов компании, не основана на Linux. Fuchsia разрабатывают с нуля, взяв в качестве основы лишь (L)ittle (K)ernel и Magenta.

Изначально специалисты предположили, что новинка предназначена исключительно для «Интернета вещей». Но оказалось, что Fuchsia подходит и для установки на полноценные рабочие станции. Так что это все-таки за проект и зачем он нужен? Ситуацию немного прояснил Гэри Симс (Gary Sims), скомпилировавший и изучивший особенности этой операционной системы.

Собираем Fuchsia


Симс скомпилировал ОС (инструкция по сборке — здесь) на компьютере с 64-х битной версией Ubuntu. Кроме того, тоже можно сделать и в среде OS X или ПК с практически любым дистрибутивом Linux.

Как уже говорилось выше, Fuchsia состоит из двух частей. Это (L)ittle (K)ernel, небольшая и быстрая ОС, созданная для IoT девайсов. Размер ядра этой ОС всего 15-20 КБ, исходники можно изучить здесь (распространяется по лицензии MIT). Вторая часть — это Magenta, которая используется в современных устройствах с мощной (по сравнению с IoT системами) конфигурацией. Таким образом, Fuchsia является гибридной системой, которая может работать и на IoT устройствах, и на современных ПК или телефонах. ОС поддерживает Dart, JSON, SSL, Google GO, LLVM и Rust.

Для сборки Fuchsia нужен ряд программных инструментов и библиотек, включая простую командную оболочку “mxsh”. После того как все это получено, можно собирать LK/Magenta. Если все готово, можно загружать и Magenta.

Запускаем Fuchsia OS


Наиболее простой способ запустить Fuchsia OS — использовать qemu, это свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ. Она включает в себя эмуляцию процессоров Intel x86 и устройств ввода-вывода. Исходники Fuchsia содержат собственную копию qemu, которая собирается в процессе общей сборки ОС.



При загрузке Fuchsia мы получаем большое количество отладочных сообщений, которые появляются по ходу загрузки ОС. Первое сообщение приветствует пользователя сообщением «welcome to lk/MP”, после чего инициализируется ряд подсистем, необходимых для запуска ОС. После этого идет определение процессора, сетевых устройств и прочих элементов системы. Если все прошло гладко, пользователь получает доступ к командной оболочке mxsh.

Оболочка содержит ряд встроенных команд, включая cd, cp, echo, ls, и rm. Если вы решите набрать слово, которое не является командой, оболочка попробует найти и запустить одноименную программу из директории /boot/bin/. В этой директории много различных исполняемых файлов, большинство которых предназначены для проверки работоспособности Fuchsia. Есть и файлы программ вроде fortune и cowsay.



Fuchsia поддерживает язык программирования Dart, созданный корпорацией Google. Изначально он позиционировался как замена Javascript. Сейчас Google использует этот язык для своих собственных проектов, включая Adwords. Работать с Dart можно либо компилируя исходники в Javascript, либо работая с собственной системой Dart VM. Второй способ используется в Fuchsia.

Для того чтобы опробовать скомпилированную ОС, можно запустить Dart-скрипт из /boot/apps. Он называется hello_fuchsia.dart. Если все работает правильно, в консоли появится надпись “Hello, Fuchsia!”



Для чего все это?


Одно то, что Fuchsia может выводить текстовую фразу, означает, что это сложная ОС, способная обеспечить работу интерпретатора и выполнение скрипта. Как видим, компиляторов С, Java и т.д. здесь нет, но Dart есть и работает. Поскольку корпорация вложила много средств и усилий в разработку этого языка программирования, можно ожидать, что Fuchsia и Dart будут широко использоваться на различных системах в будущем. Это может быть IoT устройство, бытовой гаджет, шлем виртуальной реальности и т.п.

В Fuchsia для создания пользовательского интерфейса использован Flutter. Обнаружен и Escher, поддерживающий ряд визуальных эффектов. Это может означать, что инженеры Google планируют использовать Material Design в своей новой системе.



Неясного о Fuchsia остается еще много. Главный вопрос все же остается прежним — в каких системах планируется использовать эту ОС? Ожидать, что она создана в качестве альтернативы Android OS не стоит, ведь для того, чтобы программный продукт, в особенности, операционная система стал успешным, нужно активное сообщество разработчиков, каталог приложений и т.п. Google вложил сотни миллионов долларов в Android и вряд ли собирается что-то поменять.

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

Одно можно сказать с уверенностью — Fuchsia уже здесь и работает. Графического интерфейса пока нет, возможно, его и не будет. Количество команд и поддерживаемых библиотек пока что очень ограничено. Разработчики Fuchsia пообещали вскоре выложить полную документацию по проекту, рассказав обо всех своих планах во время анонса. Пока же о планах компании можно лишь догадываться.

Может быть, мы все являемся свидетелями зарождения одной из самых распространенных в будущем операционных систем (можно провести аналогию с появлением Linux). Но нельзя исключать и возможность того, что Fuchsia — это чисто академический проект, эксперимент, который было решено провести в Google на локальном уровне и о котором стало случайно известно сторонним разработчикам.
Поделиться с друзьями
-->

Комментарии (22)


  1. lingvo
    22.08.2016 14:12
    +1

    В этой Fuchsia есть элементы для исполнения программ в жестком реальном времени? Scheduler, менеджер процессов?
    Возможно также, что это операционка, предназначенная для установки в IoT девайсы, работающие с серьезной привязкой к сloud. Такое сейчас многие фирмы разрабатывают.


  1. Self_Perfection
    22.08.2016 14:31
    +15

    ОС поддерживает Dart, JSON, SSL, Google GO, LLVM и Rust.

    Не понимаю смысл фразы. Перечислены сущности разных типов и не ясно, что подразумевается под "поддерживает".


    1. TyVik
      22.08.2016 15:02
      +7

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


      1. PavelGatilov
        23.08.2016 13:42
        +4

        Особенно поддерживает JSON.


  1. edd_k
    22.08.2016 14:40
    +5

    >> Так что это все-таки за проект и зачем он нужен? Ситуацию немного *прояснил* Гэри Симс
    [бла-бла-хеллоу-ворлд]
    >> Неясного о Fuchsia остается еще много. Главный вопрос все же остается *прежним*

    Так кто и что прояснил то? И почему это было вырезано из статьи (если было вообще)? ))


    1. Segmentq
      22.08.2016 15:11
      +5

      >> Одно то, что Fuchsia может выводить текстовую фразу, означает, что это сложная ОС…

      На самом деле это ничего не означает и даже не говорит о том, что это ОС.

      Я даже и не знаю как на это все реагировать. Такое ощущение, что эта статья, призвана поддерживать шум вокруг этой поделки, в которой на самом деле пока ничего нет.


  1. ddaa
    22.08.2016 15:15

    Когда на свет появился Chrome, тоже возникал вопрос «Зачем?», если были такие мощные браузеры как Opera и FireFox. Время покажет.


    1. lingvo
      22.08.2016 15:29

      Ну одно дело, когда на рынок выводится прямой конкурент уже существующих продуктов. Тогда понятна и функциональность и цели.
      А тут — прямых конкурентов пока не наблюдается — это не конкурент ни Андроиду/iOS, ни Виндовс с Линуксом.


  1. Indemsys
    22.08.2016 16:03
    -2

    Похоже на простую надстройку над линуксом.
    Явно не RTOS для малых SoC без MMU на ядрах типа Cortex-M4.
    Ось не для вещей в интернете, а скорее для узлов в IoT.


  1. DFrostt
    22.08.2016 16:32
    +1

    Они недавно добавили в исходники поддержку отрисовки UI через vulcan ( и вроде как OGL и другие костыли использовать не будут). Так что графический интерфейс не за горами.


  1. murzix
    22.08.2016 16:32
    +2

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

    Теперь вот некая ось нашлась, про неё также все забудут. Разве что гугл научит её показывать баннеры или следить за пользователем чтобы ещё «более лучше» показывать рекламу.


    1. Anarions
      23.08.2016 14:31

      Хром у гугла получился, хотя были ФФ и Опера, гуглодокс — хотя были офис и опен\либре офис, так что не только баннеры показывает гугл.


      1. murzix
        23.08.2016 15:14

        Как вы думаете, зачем хром собирает и отправляет статистику в гугл?
        И почему если создать текст про подгузники в гуглдоке, то в адсенсе начинают вылезать баннеры с подгузниками?

        Наверное, так просто совпало =)


        1. Anarions
          23.08.2016 16:34

          Ну, с целой ОС подобных возможностей у гугла будет ещё больше (что мы видим на примере андроида). Я лишь о том что навряд-ли ось двинет кони, а не о том что она не будет использована гуглом для извлечения выгоды.


  1. amarao
    22.08.2016 17:27
    +2

    Да ладно! они что ли сами cowsay с нуля писали? Не верю.


  1. ToSHiC
    22.08.2016 23:27
    +2

    «Как уже говорилось выше, Fuchsia состоит из двух частей. Это (L)ittle (K)ernel, небольшая и быстрая ОС, созданная для IoT девайсов. Размер ядра этой ОС всего 15-20 КБ, исходники можно изучить здесь (распространяется по лицензии MIT). Втора часть — это Magenta, которая используется в современных устройствах с мощной (по сравнению с IoT системами) конфигурацией. Таким образом, Fuchsia является гибридной системой, которая может работать и на IoT устройствах, и на современных ПК или телефонах.»

    Вот тут совсем странное написано. Magenta внутри использует существенно переписанное ядро LK, о чём они и пишут тут: https://fuchsia.googlesource.com/magenta/+/HEAD/docs/mg_and_lk.md.

    Но тут такая штука, оригинальное LK может запускаться на ARM Cortex-M без MMU, а в Magenta таких целей для сборки нету. Зато есть поддержка USB, зачатки кода для Bluetooth, а ещё поддерживаются PCIe девайсы (опять же, пока только задел под них) и интеловские видеокарты, а так же видюха с RPi. Но в видео пока только фреймбуффер, чтобы консоль отображать хоть как-то.

    Я предполагаю, что через какое-то время, когда смогут научиться по-настоящему работать с графикой, можно будет портировать виртуальную машину Java и Android API.


  1. simki28781
    23.08.2016 12:16
    +2

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


  1. afilei
    23.08.2016 12:16
    +1

    Теперь, в пику буржуям, надо создать ОС «Seledochka»!


  1. pengyou
    23.08.2016 14:04
    -1

    Год-два назад не было Фуксии, но была ОС A2 (бывш. Bluebottle). А ещё раньше была Кронос ОС. А ещё раньшe Oberon System. Были и другие ОС, тот же Фантом. Видимо, тот факт, что они все написаны не Гуглом и не на Rust+Dart+Go многих смутил и заставил думать всякое про велосипеды и «рынку не нужна ещё одна ОС».

    Или взять историю с ОС ROSA, которую задумывали отнюдь не как перерисованый гуй для загибающейся Мандривы. И всё это забыто под выкрики о велосипедах и ненужности.

    А вот теперь Гугл берёт и сам формирует рынок альтернативных ОС. Который, конечно же, Гугл и возглавит вместе со своим клёвым велосипедом. А остальные пусть глотают пыль из под копыт.

    Habralang, HabarOS, где же вы?


    1. Segmentq
      24.08.2016 09:02

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


      1. pengyou
        26.08.2016 16:07

        Велосипед это понятие времязависимое. Сегодня — велосипед в глазах хабраумника, завтра — bleeding edge и мечта хипстеров, а послезавтра — локомотив индустрии и проверенное временем решение. А не сработает — гугл повторит ещё раз, гугл шарит.
        Хорошо, что «экспортная» догма (правило для папуасов) про велосипеды действует, и многие останавливаются на первом этапе. Велосипед же, некруто, пацаны не одобрят.


  1. joedm
    24.08.2016 23:39

    Хм. Разве в DartVM есть интерпретатор?