Как стать автором
Обновить

Новую ОС Fuchsia от Google скомпилировали и изучили

Время на прочтение4 мин
Количество просмотров54K


Ровно неделю назад в сети появилась информация о новой операционной системе, которую разрабатывает корпорация 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 на локальном уровне и о котором стало случайно известно сторонним разработчикам.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 28: ↑22 и ↓6+16
Комментарии23

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн