Двое отважных разработчиков Ивэн Грин и Крис Стивенс решились на смелый шаг. Они написали с нуля совершенно новую операционную систему 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 нельзя назвать ОС реального времени.
Ссылки:
- Исходный код на Github
- Образы для Raspberry Pi 2, Raspberry Pi, BeagleBone Black, Asus C201, PandaBoard, x86 PC, x86 PC (UEFI), Galileo
- Пакет Minoca OS Starter Pack, который можно запустить в эмуляторе Qemu (в комплект входят загрузочный образ x86 Minoca OS, Minoca Debugger, эмулятор Qemu, Win32 Disk Imager и все бинарники x86)
- Совместимые пакеты и инструкции по сборке, в том числе Python, Ruby, Git, Lua и Node.
- Документация
Комментарии (55)
dmitry_ch
01.11.2016 18:18+2Уже не первую систему видим, где ушли от наследия, но постарались сделать совместимой со старым, даже облегчить портирование приложение с других ОС. Вопрос в силах разработчиков (и росте комьюнити) — осилят или нет портирование того, что минимально нужно.
Под IoT пишут сегодня все, кому не лень. Но полноценную ОС на IoT устройство ставить не совсем чтобы обязательно, можно и только нужное ПО запихнуть, с совсем маленьким ядром.
В общем, взлетит ли, и долго ли пролетает — время покажет, но вроде как не верится. Если только какой-нибудь заинтересованный и богатый спонсор не найдется, вроде Intel.NoOn3
01.11.2016 18:51+5GPLv3 главное отличие от других, спонсорам может не понравиться.
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.»
Clanscenic
02.11.2016 01:14Однозначно снимаю шляпу перед разработчиками.
Но разве не разумнее направить свой потенциал в сторону разработки уже существующих мелких проектов? Которые хоть как то, но не сбавляют оборотов, да и имеют уже хоть какую то софтверную базу, коммьюнити и задачи? Да да, я о колибри, например. Или требуется создать ажиотаж?wing_pin
02.11.2016 12:00+2Колибри интересна лишь в качестве эксперимента и игрушки выходного дня, практическое применение же крайне ограничено из-за использования ассемблера как основного языка разработки. Зачем вы хотите создать бессмысленный ажиотаж вокруг колибри?
iSage
02.11.2016 01:48+2>свободная
нет. https://github.com/minoca/os/blob/master/CONTRIBUTING.md#contributor-agreementGamePad64
02.11.2016 12:46+1Ну как сказать, CLA есть у многих компаний как раз по причине того, что на свободном ПО у них строится бизнес. Причём, его могут требовать по разным причинам: от сохранения за собой возможности продажи под ограничительной лицензией (как в этом случае), до возможности публикации в AppStore (на чём попался VLC в своё время).
Вам же никто не мешает сделать форк этой программы под GPLv3 и развивать его отдельно без CLA. Так что, да, свободная.
Saffron
02.11.2016 03:44+7> В чём отличие от различных дистрибутивов Linux и зачем потребовалось создавать совершенно новую ОС, чем она отличается от этих дистрибутивов? Разработчики отвечают и на этот вопрос.
Я вот не поленился сходить по ссылке и почитать ответ. Можно сказать, что ответа нет. «мы сделали новое и по-другому». Какие именно архитектурные решения применялись, какие проблемы старых систем они смогли побороть новой архитектурой, какие программные инновации отвечают развитию современного железа — ничего этого не описано.
Нашли силы написать 650k строк кода, но не осилили ответить на простой вопрос «зачем».Konachan700
02.11.2016 10:13+1Зачем? Скорее всего, за этим стоит некая научная работа или нечто вроде коллективного дипломного проекта. То есть первая цель была не сделать саму ОС, а понять в деталях, как сделать ОС. Наврядле такой большой проект кто-то будет делать просто ради фана, слишком много человекочасов надо…
saipr
02.11.2016 11:23Тут Минкомсвязь зарегистрировала "23 российских операционных системы" (очуметь можно). Интересно среди них нет клона и Minoca OS?
Да, вопрос остается открытым — зачем Minoca OS и что такое «23 российских операционных системы» и кто ими пользуется?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, ОС микроконтроллера "Магистра х.х.", WANFleXsaipr
03.11.2016 22:26Удивительно то, что в этом реестре не нашлось места для Гослинукс — операционной системе ФССП России (Федеральная Служба Судебных Приставов).
И раздается она реально бесплатно и имеет сертификат ФСТЭК России.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. Сертификат есть, а вот с реальной защитой без обновлений вопросы...
saipr
04.11.2016 10:34Должен согласиться:
«программёры из Сколково, Ростеха, разных там НИИ» создают «что-то на Линухе», тиражируя ошибки оригинальных дистрибутивов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
Konachan700
08.11.2016 17:22+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. "
AVX
02.11.2016 13:24+2К сожалению, все преимущества этой ОС применительно к десктопному сценарию будут совершенно незаметны по сравнению с тем ужасом, что творится в мощных графических оболочках: КДЕ, Гном и другие. Их конечно пилят, довольно интенсивно, и 90% багов можно никогда и не увидеть, но и оставшихся багов хватает на всё — и на тормоза, и на сегфолты и на спонтанные перезапуски с ругательствами, и на возможные потери данных при этом.
aqrln
02.11.2016 14:02Графический стек в опенсорсных юниксах — это, конечно, ужас, но всё же сомневаюсь, что он является хоть сколько-либо приоритетным сценарием использования для разработчиков данной ОС, так как судя по написанным ими тулзам, сами они на винде сидят. Профит для встраеваемых систем очевиден, а вот реально интересно было бы узнать, насколько она подходит на роль серверной ОС: насколько производителен сетевой стек, есть ли что-то для эффективного асинхронного неблокируещего IO вроде epoll в Linux или kqueue в BSD-системах и т.д.
Awasaky
02.11.2016 14:06+2Как выразился один мой знакомый историк про модель танка в игре: «Программистам было скучно».
И суть не в том, что на самом деле танк делался не программистом.
Суть тут в том, что люди которые делают ПО и вообще работают с компьютерами настолько увлечены самим процессом, что сначала делают, потом придумывают применение.
Или просто делают, а применение находят другие, если найдут.
Прямо как здесь.
Так что налицо: «Программистам было скучно»
Robotex
02.11.2016 15:21Несмотря на лучшую отзывчивость по сравнению с Linux, систему Minoca OS нельзя назвать ОС реального времени.
Также как и Linux нельзя назвать ОС реального времени. И вообще никакую ОС, кроме тех, которые действительно являются ОС реального времени. Что за глупое предложение вообще? При чем тут RTOS, если про них вообще нет речи в статье?
RTOS определяет не отзывчивость, а физическое ограничение времени выполнения команд.
OYTIS
02.11.2016 18:24Нет POSIX-совместимости, a на микроконтроллеры не влезет. Для кого все это? Еще и GPLv3.
sumanai
02.11.2016 19:17+1> Нет POSIX-совместимости
> Разработчики говорят, что стремились сделать экономичную, модульную и легко поддерживаемую операционную систему. Она совместима со стандартным набором интерфейсов POSIX.
Кому верить- автору поста или вам?OYTIS
02.11.2016 19:23+1Из README.md на гитхабе:
It features a POSIX-like interface towards application software
«POSIX-like» как бы намекает, что с совместимостью не задалось.mbwa
02.11.2016 20:33+2POSIX сертификация это формально-бюрократическая процедура. А если система де-факто соответствует стандартам POSIX, но сертификата не имеет, то она POSIX-like.
OYTIS
02.11.2016 21:58Если есть сертификат, то так и пишут, POSIX-certified. Те, кто просто совместимы пишут POSIX-compatible или compliant.
Может у них где-то спрятаны какие-то другие хедеры, но вот ЭТО на мой скромный вкус и на POSIX-like не тянет.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 у них есть и что конкретно они имеют ввиду.OYTIS
03.11.2016 19:30Кажется, они неможко пытаются писать позиксовские shell-утилиты. ls и cd пока не осилили, но я в них верю.
Не очень понятно, почему вдруг редакция решила про это написать. Про куда более серьезный проект Zephyr OS пока что есть только маленькая заметка в корпоративном блоге Intel.
Vir2o
02.11.2016 20:55+2Структура и стиль исходников настолько похожи на Windows, что я даже и не знаю, что сказать.
GarryC
Black_Shadow
Не вижу противоречия.
NikitosZs
А я не вижу никаких цифр.
mwambanatanga
>> Ядро ОС размером около мегабайта занимает всего несколько мегабайт оперативной памяти.>
> Круто сказано.
bzImage. bz. BZ!
Legich5
Согласен — не понятно, что в этом удивительного. Аналогичное потребление имеют OpenWrt и ему подобные варианты Linux.