Фуксия — небольшой вечнозеленый кустарник семейства кипрейных с красивыми цветками. А еще это новый проект Google

Большинство операционных систем и программных платформ, разработанных корпорацией Google, основаны на ядре Linux. В число таких продуктов компании входят Chrome OS, Android, Chromecast. Фактически, Linux является центром экосистемы программного обеспечения «корпорации добра».

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

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

В репозитории сейчас много исходников. Судя по всему, Fuchsia поддерживает Dart, JSON, SSL, Google GO, LLVM, Rust. Есть и специальная версия Fortune — простую программу, которая показывает псевдослучайное сообщение, впервые появившуюся в Version 7 Unix.

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



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

А может быть, это только эксперимент компании, и мы никогда не увидим готовый к использованию коммерческий продукт. Правда, разработка ядра и операционной системы — это сложная задача, на выполнение которой требуется время и ресурсы. Так что если и эксперимент, то очень масштабный.

Опробовать новую ОС в деле можно самостоятельно. Вскоре Fuchsia будет доступна на Raspberry Pi 3.
Поделиться с друзьями
-->

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


  1. lanseg
    14.08.2016 19:15
    -3

    Чтобы исключить бодания с ораклом и его джавой?
    И ос реального времени будет всяко быстрее андроида.


    1. daggert
      14.08.2016 19:23
      +8

      >И ос реального времени будет всяко быстрее андроида.
      Ну вы еще скажите что памяти меньше будет потреблять. От смены платформы — мозг у разработчиков не сменится. Будут так-же го*нокодить и подключать по 850 библиотек в один проект.


      1. Meider1
        14.08.2016 19:40
        -3

        Ну это можно так решить: разработчик пишет приложение, + исходник отправляет гуглю. А дальше коммисия либо аппрувят или посылают дальше учиться.


        1. Disasm
          14.08.2016 19:42
          +8

          С такими методами надо будет за аппрув платить и ждать неделями, комиссия же не резиновая.


          1. vlreshet
            14.08.2016 21:23
            +3

            Apple это не мешает. У них сейчас примерно так и есть — «за аппрув платить и ждать неделями».


            1. Greendq
              14.08.2016 22:40
              +1

              Но исходники пока не просят. :))


              1. rzhikharevich
                16.08.2016 17:54

                Зато UX оценивают (по крайней мере хочется надеяться :/).


            1. mopsicus
              15.08.2016 10:36
              +1

              Да ладно вам, сейчас апрув 2-3 дня максимум…


              1. vlreshet
                15.08.2016 15:47

                Может это зависит от типа приложения. Мы сабмитили бизнес-приложение — так больше месяца затянулся процесс.


            1. powerscin
              15.08.2016 11:57
              +1

              Вообще-то пару дней.


              1. kex1k
                15.08.2016 13:15
                +1

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


        1. Oberon812
          14.08.2016 19:49

          Смею напомнить, что у гугломаркета и так местами весьма специфические представления о «Разрешить. Иван Иванович» и «Не разрешить. Иван Иванович», а Вы хотите им на рецензию еще и код дать?


        1. daggert
          14.08.2016 20:00

          От чуть более строгой модерации будут плакать все разработчики и платформа будет аутсайдером. Тем более если на нее нет наработок (привет Windows Phone и Blackberry). Для захвата доли рынка отличной от 1% надо давать возможность простого конвертирования приложений, а это уже отменяет возможность премодерации кода.


        1. saboteur_kiev
          14.08.2016 21:18

          Этого не будет.
          Во-первых не весь софт опенсорс.
          Во-вторых никто не будет просматривать исходники — это дорого.


          1. kolipass
            15.08.2016 08:40

            А не надо его человеком просматривать: роботов обучить искать плохие подходы не проблема.


        1. linakun
          15.08.2016 11:54

          Это будет очень, очень не правильно, если «комиссия» людей будет каждое приложение рассматривать.


      1. mrigi
        14.08.2016 20:34
        -1

        Вы считаете надо в каждом проекте изобретать заново 850 велосипедов?


        1. profesor08
          14.08.2016 22:38
          +3

          Порой лучше написать одну-две функции, чем тянуть целый пакет. Конечно это дело вкуса, но простые вещи должны оставаться простыми.


          1. Deosis
            15.08.2016 11:57

            В идеале при подключении сторонней библиотеки, компилятор в манифесте пишет что-то вроде этого:
            В сборке использовано 40% библиотеки А, 25% библиотеки Б и 10% библиотеки В. Естественно в пакете хранится только используемая часть.
            При установке проходит проверка на уровень использования библиотек всеми уже установленными.
            Если он превысит 100%, то закачивается и устанавливается библиотека целиком, а ранее установленные части дропаются.
            Можно вообще обойтись без скачивания, если будет алгоритм, который из кусков соберет целую библиотеку.


            1. 0leGG
              15.08.2016 17:08
              +1

              Это вы в нескольких строках описали как примерно работает ProGuard, который сейчас почти всегда используется при сборке Android-приложений


          1. mrigi
            17.08.2016 11:57

            Эти пару функций надо покрывать тестами и документацией для других участников проекта. В каком месте тут простота? Иногда да, можно написать, если так объективно выйдет лучше. Но я просто не понимаю что это за фобия на «пакеты».


        1. igorch96
          15.08.2016 11:54

          Приходится, из-за патентов…


        1. mariner
          16.08.2016 19:45

          вы на ноде пишете?


          1. mrigi
            17.08.2016 12:05

            Да, в том числе и на ноде. Но специализируюсь больше на C#.


    1. NeoCode
      14.08.2016 19:23
      +3

      Так чтобы исключить бодания с ораклом и джавой, нужно было бы разрабатывать язык программирования а не ОС.
      Скорее всего просто ставят эксперименты. Компания богатая, может себе позволить.


    1. sav13
      14.08.2016 20:13
      +11

      Причем здесь ядро системы и Java?
      Можно на любое ядро Яву навесить. Можно и под LINUX ядром без явы жить.


    1. vangelfeld
      15.08.2016 00:40

      вообще-то суд уже признал претензии Oracle безосновательными.


    1. kahi4
      15.08.2016 01:06
      +4

      1. Реального или не реального времени система не связаны с производительностью. Если программе, чтобы отрисовать себя, необходимо произвести 1000 операций, это не изменить.
      2. Не зря пользовательские системы не реального времени. Никого не порадует в качестве основной системы что мягкого, что жесткого реального времени (не успела программа отрисовать пол экрана — плевать, убиваем процесс, будем надеяться, в следующий раз отрисует, ага).
      3. ОС реального времени выглядят как… #include «task.h» // loading TASK subsystem from freeRTOS, мало кому понравится пересобирать систему, когда понадобится поставить стороннее приложение.


    1. Bedal
      15.08.2016 08:51
      +6

      ОС реального времени вообще не обязана быть быстрой. Она всего лишь обязана давать отклик за заданное время. Это сушественно разные вещи. И, если Вы скажете, что система с гарантированным откликом в 15 минут — не система реального времени, то Вы вообще не разбираетесь в реальном времени. Тем более, что заводить речь об ОС РВ в контексте этой статьи вообще странно.


  1. Meider1
    14.08.2016 19:34
    +5

    Сейчас тренд на IoT, ну и делают видать легкую ос, хотя хуавей тоже уже слабал подобную.


  1. albik
    14.08.2016 20:15
    -1

    И ни слова о том, что Magenta — реализация Darwin поверх ядра Linux, имеющая бинарную совместимость с iOS. На эту тему была статья от 2012-ого тут же — https://habrahabr.ru/post/145643/. Если они сюда прикрутят стек Android и замену проприетарным либам iOS, то Apple не позавидуешь.


    1. joann
      14.08.2016 20:29

      Смысл? приложения и AppStore все равно не запустить


      1. isden
        14.08.2016 20:38
        +2

        А может быть тут есть какая-то связь со Swift? Т.е. разработчик пишет на одном языке апп, и потом публикует его во все сторы.


        1. joann
          14.08.2016 21:14

          Да но для этого не нужно Darwin переносит, Swift открытый, сделай чтоб он работал у тебя и все. Но UI и многие компоненты все равно будут работать тока под iOS…


        1. asmrnv777
          15.08.2016 11:54

          С учетом различий паттернов UX/UI, нормально не получится.


    1. NeoCode
      14.08.2016 20:51
      +2

      А вы уверены что это та самая Magenta а не другая?


      1. a5b
        15.08.2016 04:01
        +1

        Исходники той Magenta, что реализовывала Darwin 11 — https://github.com/christinaa/kernel_diff
        В 2013 году автор объявил(а) о прекращении разработок http://crna.cc/cat/open-source


        Magenta was my attempt at implementing a mach compatibility layer on top of the Linux kernel (this is NOT related to my work involving XNU). Unfortunately, I no longer develop this project, but old sources (as of the date of their publication) of major components of Magenta are still made available on my GitHub.

        libSystem_and_linker — core system library responsible for libc routines, syscall handling and also doubling as the linker (dyld).
        Kernel DIFF — a rather large diff file the needs to be applied to the Linux kernel to add the extensions for features like mach tasks, ports, IPC and BSD features like psycnh.

        Fuchsia + Magenta — конечно же совсем другой проект, в котором от ядра Linux взяты лишь некоторые имена директорий (kernel/arch, kernel/lib, kernel/kernel) и "объектный стиль":
        https://fuchsia.googlesource.com/magenta/+/master


    1. beeruser
      14.08.2016 22:18
      +4

      >> И ни слова о том, что Magenta — реализация Darwin поверх ядра Linux
      Потому что это не так.

      https://fuchsia.googlesource.com/magenta/+/HEAD/docs/mg_and_lk.md

      LK is a Kernel designed for small systems typically used in embedded applications. It is good alternative to commercial offerings like FreeRTOS or ThreadX. Such systems often have a very limited amount of ram, a fixed set of peripherals and a bounded set of tasks.

      Magenta inner constructs are based on LK but the layers above are new. For example, Magenta has the concept of a process but LK does not. However, a Magenta process is made of by LK-level constructs such as threads and memory.

      Вообще Pink и Purple были коднеймами Taligent и iPhone соответственно
      https://en.wikipedia.org/wiki/Taligent
      http://www.wired.com/2012/08/forstall-talks-ingenuity-ui/


  1. SopaXT
    14.08.2016 20:44
    +4

    Мне кажется, что это — их ответ майкрософтовской Win10 IoT.


  1. mbait
    15.08.2016 06:38
    +1

    Бегло посмотрел качество кода (случайные файлы), создалось впечатление, что написан wannabe-kernel-developers, то есть людьми с опытом разработки в целом, но не опытом программирования, например, Linux. Возможно, просто неудачные файлы посмотрел. А вот за такое нас ещё в школьном кружке ругали.

    Забавное наблюдение: в коде активно используются аттрибуты типа «weak» и «noreturn», но при этом освобождение ресурсов выполнено классической goto-лесенкой вместе аттрибута «cleanup», который давно поддерживается gcc и clang.


    1. qwerty135
      15.08.2016 10:36

      Вооще-то там замечены Тревис Гейселбрехт и прочие такие… как бы сказать что у них общие представления, ну язык не повернётся.


      1. mbait
        15.08.2016 17:38
        +1

        Я оценивал код, а не авторов. Что касается авторства… создалось впечатление, что файлы понадёрганы из разных мест и написаны разными людьми. Во-первых, везде стоит первой строчкой


        Copyright 2016 The Fuchsia Authors

        Во-вторых, копирайт Тревиса датируется разными годами между 2008 и 2016, у некоторых файлов копирайт Гугла с разбросом дат 2013-2016. У Тревиса в резюме не отмечено, чтобы он когда-либо сотрудничал с Гуглом, как и нет упоминания данного проекта вообще.


        1. qwerty135
          16.08.2016 11:43

          Я так понимаю, они взяли за основу ядро NewOS, которое Тревис написал после краха Be.Inc. Наверно потому и копирайты старые, а всё что переделывается по новому, озаглавливается как вы сказали «Copyright 2016 The Fuchsia Authors».
          Вобщем насчёт качества кода не знаю… но если появится ещё одна ОС, и не просто появится, а пойдёт в люди, это будет хорошо.


          1. a5b
            16.08.2016 16:00

            Код Magenta и NewOS не совпадает (у NewOS еще более старые копирайты в нескольких файлах что я сравнил): https://fuchsia.googlesource.com/magenta/+/master/kernel/kernel/ https://github.com/travisg/newos/tree/master/kernel


    1. ToSHiC
      15.08.2016 15:27

      А «такое» — это то, что указатели с 0 сравниваются, или что item не проверяется? Если второе — то это несколько бессмысленно, т.к. это интрузивный список.


      1. mbait
        15.08.2016 17:20
        -2

        Там должно быть


        return item->prev != 0 || item->next != 0;

        Eсли, конечно, true и false не переопределены =)


        1. ToSHiC
          15.08.2016 18:16
          +3

          Ну это уже coding style, как мне кажется.


          1. Pakos
            17.08.2016 09:28
            -1

            Писать 3 лишние строки (а почему тогда ещё 4 не добавить со скобками?) не выглядит хорошим coding style.


    1. gmvbif
      17.08.2016 14:09

      А что плохого в 40 строке?


    1. jex
      17.08.2016 14:09

      Посмотрите AOSP (android). Там такой ужас происходит… Считать репозитории гугла эталоном точно не стоит — это обычная комерческая компания, которой побыстрее нужно выйти на рынок.


  1. huhen
    15.08.2016 11:54
    -1

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


  1. alemiks
    15.08.2016 16:57
    +3

    Google разрабатывает новую соцсеть Google+, но никто не знает, зачем


  1. pengyou
    15.08.2016 19:55

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