Двое отважных разработчиков Ивэн Грин и Крис Стивенс решились на смелый шаг. Они написали с нуля совершенно новую операционную систему Minoca OS и опубликовали её исходный код под свободной лицензией GNU GPL v3.

Это 625 000 строк отлично документированного кода, преимущественно на языке программирования Си, частично на C++ и Ассемблере. Ядро ОС для x86 имеет размер около 750 КБ. С драйверами, сетевым стеком и видеобуфером свежезагруженная система использует 5?7 МБ оперативной памяти.

Большинство сегодняшних популярных операционных систем родились в конце 80-х или начале 90-х гг, в лучшем случае. В те годы ОС работали на совершенно другом оборудовании, чем сегодня. Поэтому подход к разработке ядра несколько отличался. По мнению создателей Minoca OS, сейчас этот подход устарел, так что можно добиться существенного повышения эффективности операционной системы, если переписать её с чистого листа.

В настоящее время к устройствам со встроенными ОС выдвигаются совершенно иные требования по управлению питанием, безопасности, обслуживанию и виртуализации. Древние UNIX-подобные системы модернизировались для соответствования новым требованиям, но в результате их код раздулся и потерял былую красоту и логичность. Начав с нуля, Minoca OS стремится избавиться от отягчающего наследия.

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


Предположительные области использования Minoca OS

Разработчики говорят, что стремились сделать экономичную, модульную и легко поддерживаемую операционную систему. Она совместима со стандартным набором интерфейсов POSIX. Это значит, что на ней можно запускать многие прикладные приложения, которые работают под Linux.

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



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



В Minoca OS реализованы продвинутые функции отладки. Она осуществляется через прошивку, ядро или приложения. Более того, интегрированный отладчик Minoca Debugger отслеживает выполнение программ и использование памяти в реальном времени. Он подробно показывает, на что конкретно расходуются ресурсы.


Отладчик Minoca OS





Minoca OS запускается на архитектурах x86, ARMv6, ARMv7 с поддержкой виртуальной памяти и несколькими мегабайтами ОЗУ. Операционная система отлично масштабируется, поэтому хорошо работает и на персональных компьютерах с большим количеством процессорных ядер и гигабайтами оперативной памяти.

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

В чём отличие от различных дистрибутивов Linux и зачем потребовалось создавать совершенно новую ОС, чем она отличается от этих дистрибутивов? Разработчики отвечают и на этот вопрос. По словам Ивэна Грина, со стороны приложения или пользователя они постарались сделать операционную систему как можно более похожей на популярные серверные дистрибутивы Linux. Цель состоит в том, чтобы портировать как можно больше приложений на Minoca OS. А вот самые серьёзная концептуальная разница кроется на уровне ядра, где разработчики постарались применить некоторые альтернативные решения в части дизайна и философии архитектуры. Это действительно важные решения, но они не видны пользователю напрямую, а проявляются в сниженном энергопотреблении, лучшей отзывчивости (то есть более высоком быстродействии), большем количестве свободной памяти, незаметных обновлениях ядра и т.д. Несмотря на лучшую отзывчивость по сравнению с Linux, систему Minoca OS нельзя назвать ОС реального времени.

Ссылки:

Поделиться с друзьями
-->

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


  1. GarryC
    01.11.2016 16:59

    Ядро ОС размером около мегабайта занимает всего несколько мегабайт оперативной памяти.>
    Круто сказано.


    1. Black_Shadow
      01.11.2016 18:03
      +14

      Не вижу противоречия.


      1. NikitosZs
        01.11.2016 21:35

        А я не вижу никаких цифр.


    1. mwambanatanga
      02.11.2016 03:33
      +1

      >> Ядро ОС размером около мегабайта занимает всего несколько мегабайт оперативной памяти.>

      > Круто сказано.

      bzImage. bz. BZ!


    1. Legich5
      02.11.2016 08:44
      +1

      Согласен — не понятно, что в этом удивительного. Аналогичное потребление имеют OpenWrt и ему подобные варианты Linux.


  1. dmitry_ch
    01.11.2016 18:18
    +2

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

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

    В общем, взлетит ли, и долго ли пролетает — время покажет, но вроде как не верится. Если только какой-нибудь заинтересованный и богатый спонсор не найдется, вроде Intel.


    1. NoOn3
      01.11.2016 18:51
      +5

      GPLv3 главное отличие от других, спонсорам может не понравиться.


      1. NoOn3
        01.11.2016 21:20
        +3

        Хотя я похоже не совсем прав, циатата из LICENSE: «Minoca offers alternative licensing choices for sale.
        Contact info@minocacorp.com if you or your company are interested in licensing
        this software under alternate terms.»


  1. worldmind
    01.11.2016 18:45
    +7

    Ждём дебиан с этим ядром


  1. Labunsky
    01.11.2016 18:52

    Энергопотребление не замеряли?


    1. baldr
      01.11.2016 21:25
      +14

      357


      1. citius
        02.11.2016 00:39

        Великолепно!


      1. shchepin
        02.11.2016 01:16
        +2

        Скорее, 42 :)


        1. MasMaX
          02.11.2016 13:44

          На три часа хватит?


          1. sumanai
            02.11.2016 16:34

            Электросети хватит, если на него не ставить андроид.


  1. Clanscenic
    02.11.2016 01:14

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


    1. wing_pin
      02.11.2016 12:00
      +2

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


  1. Holix
    02.11.2016 01:14

    Z: в начале пути к файлам немного отпугивает, хотя разделитель — нормальный /. А в целом, независимость драйверов от версии ядра выглядит киллер-фичей.


    1. mata
      02.11.2016 02:44
      +1

      мб это сборка на винде?


      1. tmin10
        02.11.2016 10:00
        +1

        Интерфейс командной строки windows на это тоже намекает.


  1. iSage
    02.11.2016 01:48
    +2

    >свободная
    нет. https://github.com/minoca/os/blob/master/CONTRIBUTING.md#contributor-agreement


    1. GamePad64
      02.11.2016 12:46
      +1

      Ну как сказать, CLA есть у многих компаний как раз по причине того, что на свободном ПО у них строится бизнес. Причём, его могут требовать по разным причинам: от сохранения за собой возможности продажи под ограничительной лицензией (как в этом случае), до возможности публикации в AppStore (на чём попался VLC в своё время).


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


  1. Saffron
    02.11.2016 03:44
    +7

    > В чём отличие от различных дистрибутивов Linux и зачем потребовалось создавать совершенно новую ОС, чем она отличается от этих дистрибутивов? Разработчики отвечают и на этот вопрос.

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

    Нашли силы написать 650k строк кода, но не осилили ответить на простой вопрос «зачем».


    1. Konachan700
      02.11.2016 10:13
      +1

      Зачем? Скорее всего, за этим стоит некая научная работа или нечто вроде коллективного дипломного проекта. То есть первая цель была не сделать саму ОС, а понять в деталях, как сделать ОС. Наврядле такой большой проект кто-то будет делать просто ради фана, слишком много человекочасов надо…


    1. noou
      02.11.2016 10:47

      Чтобы было.


    1. saipr
      02.11.2016 11:23

      Тут Минкомсвязь зарегистрировала "23 российских операционных системы" (очуметь можно). Интересно среди них нет клона и Minoca OS?

      Да, вопрос остается открытым — зачем Minoca OS и что такое «23 российских операционных системы» и кто ими пользуется?


      1. a5b
        03.11.2016 18:46

        Весь список по классу ОС из реестра (не все из этого — ОС) https://reestr.minsvyaz.ru/reestr/?sort_by=date&sort=asc&class%5B%5D=54112&name=&owner_status=&owner_name=&set_filter=Y
        RAIDIX, Альт Линукс СПТ / КДесктоп / 7.0 Кентавр / Школьный / Сервер / Образование. «Сканер-ВС», Astra Linux Special Edition, РОСА ХРОМ DX / КОБАЛЬТ DX, Sailfish Mobile OS RUS, Calculate Linux Desktop / Directory Server, Kraftway Terminal Linux, Циркон 36СТ / 36 КТ, Ульяновск.BSD (FreeBSD), Базальт Рабочая станция, ICLinux, WTware, ОС микроконтроллера "Магистра х.х.", WANFleX


        1. saipr
          03.11.2016 18:55

          Спасибо, но это же дурдом!!!


        1. saipr
          03.11.2016 22:26

          Удивительно то, что в этом реестре не нашлось места для Гослинукс — операционной системе ФССП России (Федеральная Служба Судебных Приставов).
          И раздается она реально бесплатно и имеет сертификат ФСТЭК России.


          1. a5b
            04.11.2016 04:28

            Этот Гослинукс судя по сайту полтора года не обновлялось и является переупаковкой https://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.6 2-хлетней давности. Можно сравнить 1 и 2: kernel 2.6.32-358 / 2.6.32-642. Сертификат есть, а вот с реальной защитой без обновлений вопросы...


            1. saipr
              04.11.2016 10:34

              Должен согласиться:
              «программёры из Сколково, Ростеха, разных там НИИ» создают «что-то на Линухе», тиражируя ошибки оригинальных дистрибутивов


              1. a5b
                05.11.2016 01:00

                К чему ваши ссылки? Первая про minoca, вторая — почти спам коммерческих решений от lissi (вместо того чтобы баг открыть, постят одно и то же на разных ресурсах).
                Проблема в том, что по CentOS 6 ежемесячно проходит более десятка уведомлений тут: https://lists.centos.org/pipermail/centos-announce/, напр. https://lists.centos.org/pipermail/centos-announce/2016-April/date.html


            1. Konachan700
              08.11.2016 17:22
              +1

              а как сочетаются вещи «обновление» и «сертификат ФСТЭК России»? Насколько я понимаю, никак, ибо сей сертификат дают на одну конкретную версию ПО.


              1. a5b
                08.11.2016 21:05

                Обновления и сертификаты (не только в РФ, но и по Common Criteria) сочетаются или тяжело, или дорого. Были проекты — http://fstec.ru/component/attachments/download/671 "МЕТОДИЧЕСКИЙ ДОКУМЕНТ РЕКОМЕНДАЦИИ ПО ОБНОВЛЕНИЮ СЕРТИФИЦИРОВАННЫХ СРЕДСТВ ЗАЩИТЫ ИНФОРМАЦИИ" 2014.
                Для Common Criteria бывает такое: https://www.commoncriteriaportal.org/files/epfiles/st_vid10677-st.pdf#page=48 "5.2.1.1 Timely Security Updates (ALC_TSU_EXT.1) Developer action elements: ALC_TSU_EXT.1.1D The developer shall provide a description in the TSS of how timely security updates are made to the TOE.… ALC_TSU_EXT.1.2C The description shall express the time window as the length of time, in days, between public disclosure of a vulnerability and the public availability of security updates to the TOE. "


  1. win32asm
    02.11.2016 10:44

    А ещё есть адово минималистичная http://www.includeos.org/


  1. poznawatel
    02.11.2016 10:44

    Была б ОС реального времени — была б интересной…


  1. alecv
    02.11.2016 11:01

    Как в ней жить без systemd? /* irony mode off */


    1. aqrln
      02.11.2016 14:00
      -2

      /* irony on */
      Кстати да. Хоть здесь можно будет укрыться от Поттеринга.
      /* irony off */


  1. AVX
    02.11.2016 13:24
    +2

    К сожалению, все преимущества этой ОС применительно к десктопному сценарию будут совершенно незаметны по сравнению с тем ужасом, что творится в мощных графических оболочках: КДЕ, Гном и другие. Их конечно пилят, довольно интенсивно, и 90% багов можно никогда и не увидеть, но и оставшихся багов хватает на всё — и на тормоза, и на сегфолты и на спонтанные перезапуски с ругательствами, и на возможные потери данных при этом.


    1. aqrln
      02.11.2016 14:02

      Графический стек в опенсорсных юниксах — это, конечно, ужас, но всё же сомневаюсь, что он является хоть сколько-либо приоритетным сценарием использования для разработчиков данной ОС, так как судя по написанным ими тулзам, сами они на винде сидят. Профит для встраеваемых систем очевиден, а вот реально интересно было бы узнать, насколько она подходит на роль серверной ОС: насколько производителен сетевой стек, есть ли что-то для эффективного асинхронного неблокируещего IO вроде epoll в Linux или kqueue в BSD-системах и т.д.


  1. Awasaky
    02.11.2016 14:06
    +2

    Как выразился один мой знакомый историк про модель танка в игре: «Программистам было скучно».
    И суть не в том, что на самом деле танк делался не программистом.
    Суть тут в том, что люди которые делают ПО и вообще работают с компьютерами настолько увлечены самим процессом, что сначала делают, потом придумывают применение.
    Или просто делают, а применение находят другие, если найдут.
    Прямо как здесь.
    Так что налицо: «Программистам было скучно»


  1. farewell
    02.11.2016 14:53
    +1

    Для Orange Pi давайте быстрее!


    1. Rumlin
      03.11.2016 08:32

      Кстати да. Было бы интересной нишей.


  1. Robotex
    02.11.2016 15:21

    Несмотря на лучшую отзывчивость по сравнению с Linux, систему Minoca OS нельзя назвать ОС реального времени.

    Также как и Linux нельзя назвать ОС реального времени. И вообще никакую ОС, кроме тех, которые действительно являются ОС реального времени. Что за глупое предложение вообще? При чем тут RTOS, если про них вообще нет речи в статье?

    RTOS определяет не отзывчивость, а физическое ограничение времени выполнения команд.


  1. OYTIS
    02.11.2016 18:24

    Нет POSIX-совместимости, a на микроконтроллеры не влезет. Для кого все это? Еще и GPLv3.


    1. sumanai
      02.11.2016 19:17
      +1

      > Нет POSIX-совместимости
      > Разработчики говорят, что стремились сделать экономичную, модульную и легко поддерживаемую операционную систему. Она совместима со стандартным набором интерфейсов POSIX.
      Кому верить- автору поста или вам?


      1. OYTIS
        02.11.2016 19:23
        +1

        Из README.md на гитхабе:

        It features a POSIX-like interface towards application software

        «POSIX-like» как бы намекает, что с совместимостью не задалось.


        1. sumanai
          02.11.2016 19:31

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


        1. mbwa
          02.11.2016 20:33
          +2

          POSIX сертификация это формально-бюрократическая процедура. А если система де-факто соответствует стандартам POSIX, но сертификата не имеет, то она POSIX-like.


          1. OYTIS
            02.11.2016 21:58

            Если есть сертификат, то так и пишут, POSIX-certified. Те, кто просто совместимы пишут POSIX-compatible или compliant.
            Может у них где-то спрятаны какие-то другие хедеры, но вот ЭТО на мой скромный вкус и на POSIX-like не тянет.


            1. mbwa
              03.11.2016 19:16
              +1

              Если есть сертификат, то так и пишут, POSIX-certified. Те, кто просто совместимы пишут POSIX-compatible или compliant.

              Спасибо за уточнение.
              Может у них где-то спрятаны какие-то другие хедеры, но вот ЭТО на мой скромный вкус и на POSIX-like не тянет.

              Посмотрел внимательнее. Формулировка у них очень размытая:
              It features a POSIX-like interface towards application software and a growing suite of popular packages already built and ready to go.

              Вообще не очень понятно какой уровень соответствия POSIX у них есть и что конкретно они имеют ввиду.


              1. OYTIS
                03.11.2016 19:30

                Кажется, они неможко пытаются писать позиксовские shell-утилиты. ls и cd пока не осилили, но я в них верю.
                Не очень понятно, почему вдруг редакция решила про это написать. Про куда более серьезный проект Zephyr OS пока что есть только маленькая заметка в корпоративном блоге Intel.


  1. guai
    02.11.2016 19:57

    А BSOD там уже запилили?


  1. Vir2o
    02.11.2016 20:55
    +2

    Структура и стиль исходников настолько похожи на Windows, что я даже и не знаю, что сказать.


  1. thedima
    03.11.2016 00:39
    +1

    По каментам в коде видно, что это всё-же дипломный проект.