Проект Minoca (http://www.minocacorp.com), в рамках которого развивается операционная система для потребительских интернет-устройств и встраиваемой техники, переведён (https://blog.minocacorp.com/minoca-os-a-new-open-source-oper...) в разряд свободных проектов. Код открыт (https://github.com/minoca/os) под лицензией GPLv3. Сборки подготовлены (http://www.minocacorp.com/download/) для архитектур x86, ARMv6 и ARMv7, в том числе сформированы загрузочные образы для плат Raspberry Pi 2, Raspberry Pi, BeagleBone Black, Asus C201, PandaBoard и Galileo, а также эмулятор на основе QEMU.
Система модульная (http://www.minocacorp.com/documentation/developers/knowledge.../) - подсистемы ядра отделены друг от друга, а взаимодействие с оборудованием абстрагировано, что позволяет поставлять для разных архитектур единое унифицированное ядро, расширяемое через систему надстроек. Драйверы устройств не привязаны (http://www.minocacorp.com/documentation/developers/knowledge.../) к ядру и оформляются в виде универсальных исполняемых файлов, не зависящих от версии ядра (обновление ядра не требует обновления драйверов) и загружаемых по необходимости. Minoca имеет событийно-ориентированную архитектуру, поддерживает многопроцессорные конфигурации, вытесняющую многозадачность, сетевой, беспроводной и USB стеки, предоставляет подборку драйверов (http://www.minocacorp.com/documentation/developers/knowledge.../). В качестве файловой системы поддерживается FAT.
Операционная система примечательна низким потреблением ресурсов и способна работать на оборудовании с 5 Мб ОЗУ. Система также изначально нацелена на обеспечение минимального энергопотребления и использует встроенные средства для переключения режимов процессоров, влияющих на потребление энергии, а также может минимизировать число пробуждений фоновых процессов в условиях простоя, что позволяет дольше находиться в глубоких режимах энергопотребления.Для разработки приложений предлагается POSIX-подобный интерфейс, благодаря которому в Minoca уже удалось собрать множество существующих популярных пакетов. Для установки и обновления программ задействован пакетный менеджер opkg (https://code.google.com/archive/p/opkg/), также применяемый в OpenEmbedded и OpenWrt. В качестве командной оболочки и для выполнения shell-скриптов проектом развивается интерактивный интерпретатор Chalk.
URL: https://blog.minocacorp.com/minoca-os-a-new-open-source-oper...
Новость: https://www.opennet.ru/opennews/art.shtml?num=45408
Ну и нахрена здесь FAT?
эмбед же, сплошь и рядом древнючие флешки на 16 метров с FATом
> эмбед же, сплошь и рядом древнючие флешки на 16 метров с FATомДа, помню в симатике 7 была особая 16МБ флешка, залоченная именно под этот контроллер.
Они не были, они есть и еще долгое время будут!
Найти именно флешку, именно с FAT и именно на 16 мегов можно только на какой-нибудь совсем уж ископаемой эмбедовке. Не говоря о том что FAT вообще плохо подходит для флешек, особенно в эмбедовке: под FAT'ом флеш протирается быстрее чем во всех остальных областях.
Да на самом деле нет, если у тебя данные типа лога или кольцевого буфера да еще по возможности self-descriptive то срок жизни флеша будет примерно одинаковый вне зависимости от файловой системы. А если у тебя надо каждые 5 миллисекунд перезаписывать старые данные в постоянном хранилище то или у тебя не такой уж эмбед, или ты рукожоп из рукожопов.Поэтому и делают FAT - она простая, 100500 реализаций откуда можно копипастить, если в грамотно спроектированной системе нет разницы, зачем платить больше?
> кольцевого буфера да еще по возможности self-descriptive то срок жизни флеша
> будет примерно одинаковый вне зависимости от файловой системы.Проблема FAT в том что большинство изменений файлухи приводит к записи в эту область. Чтобы было веселее - флеш крупноблочная штука и не имеет таких понятий как запись. Есть ERASE и есть PROGRAM и в конечном итоге даже мелкие операции ведут к полному циклированию всего крупного блока.
> А если у тебя надо каждые 5 миллисекунд перезаписывать старые данные
> в постоянном хранилище то или у тебя не такой уж эмбед, или ты рукожоп из рукожопов.Проблема FAT - в сильной асимметрии распределения циклов записи по поверхности накопителя. Поэтому без костылей - блоки под FAT протрутся намного быстрее всех остальных. А заморочки с flash translation layer и wear leveling - ну, в сабже это не заявлено а выписывать ЭТО самому - последнее дело. Даже безопасно разложить FAT по erase blocks немного rocket science. А как тебе перспектива слета boot sector при всего лишь fat update? А потому что если FAT скроить абы как - бутсектор попадет в тот же erase block что и FAT. Здорово. да? :)
> Поэтому и делают FAT - она простая, 100500 реализаций откуда можно копипастить,
> если в грамотно спроектированной системе нет разницы, зачем платить больше?FAT простой. И делался под флопики и 5.25" жесткие диски на 10 мегабайтов. И "грамотное проектирование" означает или влет на разборки с flash translation layer, или нетривиальную возню с адаптацией софта, а это извините уже не взять произвольную POSIX-совместимую программу уже. Но и перепахать весь софт от и до.
И вот получается что там разрабочтики сэкономили на спичках, а вы тут конем е..ь, да? Вот извините, но сейчас 2016 год. Купить микросхему DRAM менее чем на 32 метра еще отдельно постараться придется, и не факт что дешевле выйдет. А у пингвина например есть файлухи сразу под флеш. С wear leveling'ом встроеным а то и менеджментом дефектных блоков. Вот так вот сунешься в детали - а там дьявол.
Асимметрия решается циклическим <<(8) в адресации блока.
> Асимметрия решается циклическим <<(8) в адресации блока.Вот пусть кому это надо - тот и занимается подобным костылиривароем блочного уровня. Это уже как-то не похоже ни на POSIX программы без изменений, ни на просто использование системы. А дописывать очередному недомерку блочный уровень - оно мне надо? Можно взять готовый линух где это сделано не через жо и толпа эмбедовщиков и т.п. вытоптала очевидные грабли. А еще в сабжеобразных системах обычно кривой и урезанный сетевой стэк и интернет получается не очень интернетистым. Захочется подключиться к этому самому интернету через какой-нибудь вайфай, да еще PPTP с MPPE "потому что пров такой" - вот тут и понимаешь что интернет бывает разный. И на совсем глупые вещи его никто не рассчитывал, что может доставить немало неприятных минут.
Потому что просто реализовать.
> Потому что просто реализовать.Интересно, чего там ещё нет, кроме многопользовательскости (umsdos -- всё-таки изврат)...
Михаил, а потискайте эту штуку, мне интересно ваше мнение.
Из очередных велосипедов, этот смотрится очень дерзким и с претензией на популярность в узких кругах.
Заодно расскажите как обвязка на Вайне работает. Для линукса и дарвина там есть только тулчейн.
и скажите сколько у вас фпс в доту
> и скажите сколько у вас фпс в дотуЭто тебе фороникс расскажет, они в последнее время очень любят этот бенчмарк. Там к тому же открытые драйвера радеона жгут напалмом, если уж мы о птичках. Но к сабжу это не относится - доту там никто запускать точно не будет.
> Михаил, а потискайте эту штуку, мне интересно ваше мнение.таймаут...
Тому що emmc, а FAT самый простой и дубовый из доступных.
> Тому що emmc,Оно как бы да, НО там своих проблем есть.
> а FAT самый простой и дубовый из доступных.
А заодно и один из самых грабельных. Не журналируемый, об истинной геометрии флеша изначально не в курсе, с концентрированными записями, медленный, ограничения на размер файлов, права доступа вообще не реализует и в целом использовать это можно только от большого мазохизма, если носитель переносной и предполагается его включение в комп с маздаем. А так то да, разработчики сабжа себе жизню упростили. Вот только почему это должно радовать пользователей и интеграторов?
>> Тому що emmc,
> Оно как бы да, НО там своих проблем есть.
>> а FAT самый простой и дубовый из доступных.
> А заодно и один из самых грабельных. Не журналируемый, об истинной геометрии
> флеша изначально не в курсе, с концентрированными записями, медленный, ограничения на
> размер файлов, права доступа вообще не реализует и в целом использовать
> это можно только от большого мазохизма, если носитель переносной и предполагается
> его включение в комп с маздаем. А так то да, разработчики
> сабжа себе жизню упростили. Вот только почему это должно радовать пользователей
> и интеграторов?в mmc геометрия флеша скрыта за контроллером в флешке. Так что пофигу, хоть ntfs.
> в mmc геометрия флеша скрыта за контроллером в флешке. Так что пофигу, хоть ntfs.Ага, пофигу. Пока у тебя что-нибудь не гавкнется жесточайшим образом при слете питания. У fat например любит гавкаться абы как разложенный boot setctor и прочие таблицы разделов, с понятным результатом. Панимаешь, контроллер делал там себе read-modify-write без задних мыслей, а тут питание слетело. И кроме всего прочего кроме фата и бутсектор на место записать не успели из буфера в RAM. Или того хуже - неведома фирварная фигня тасовала свои таблицы трансляторов и тут питание слетело. После этого из карты может читаться такое что узнать свои файлы в этом будет очень нелегко.
Если представить твои файлы как идеально отсортированную колоду карт по мастям то слет трансляции - колоду как следует перетасовали. Какая вероятность что ты после этого получишь карты правильно разложенными по мастям? Вот именно так и будут выглядеть твои файлы! :)
> Ну и нахрена здесь FAT?Ванту...бы, сэр!
Скочял я этот Minoca OS Starter Pack. Заглянул внутрь, плюнул и удолил. И как прикажете его юзоть? Единственная поддерживаемая опция - это serial из вантузо-qemu протянутый в вантузбокс. В каких-то микротиках я нечто подобное уже видел. В qemu-system-i386 догружается до какого-то эррора. Стало вообще неинтересно.
В общем, ситуация гораздо хуже, чем с FreeRTOS, которую я порой поюзываю. Но сырцов у FreeRTOS немного, допилить и самому можно без милости со стороны Wittenstein. Тем более, здесь хоть некоторые зачатки сообщества формируются.
Главное, что лицензия gplv3.
Угу, именно она и похоронит этот проект: никому в энтерпрайзе головняк с GPLv3 не нужен.Особенно в свете того, что скоро Fuchsia с либеральной лицензией будет готова.
> Угу, именно она и похоронит этот проект: никому в энтерпрайзе головняк с GPLv3 не нужен.Особенно вендозным пользователям Дебиана.
Да и хрен с энтерпрайзом
> Особенно в свете того, что скоро Fuchsia с либеральной лицензией будет готова.А потом придет пингвин и это будет примерно так: http://thenoobcomic.com/wp-content/uploads/2015/07/00152.jpg
Нафига оно нужно на x86 PC или том же Raspberry Pi или BeagleBone? если для них проще поставить стабильный linux, под него просто на 10 порядков больше пакетов, больше документации и вообще больше всего.Сомнительная ОСь, её даже в роутер не засунешь, хотя опять же зачем, если есть вполне стабильный OpenWRT
Ну если для Cortex-M3/4 и PIC32 пойдёт, то сгодится. Стабильный Linux туда не поместится.
> Ну если для Cortex-M3/4 и PIC32 пойдёт, то сгодится.Там обычно нет 5 мегабайтов памяти.
> Стабильный Linux туда не поместится.
Однако ж в mainline какие-то извращенцы запилили порт на STM32F4xx ;)
Для совсем встраиваемых решений. OpenWRT на <16MiB RAM не взлетит. А эта штука вон на 5 MiB пашет.
Сам ковырял железяку с 2МБ ОЗУ и 512КБ ПЗУ. Прошивка с линуксом2.4, иптаблесом, бузибохом, р910, самописным веб-серваком и картинками занимала чуть менее 400КБ. Это конечно предельная конфигурация. Для современного линукса надо хотя-бы 2МБ ПЗУ и 4МБ ОЗУ.
>Прошивка с линуксом2.4,
>Для современного линукса надо хотя-бы 2МБ ПЗУ и 4МБ ОЗУ.Мне казалось, те, что после v2.4 уже в 2МБ не лезут?
___Хотя, да "346K" сжатого ядра...
http://events.linuxfoundation.org/sites/events/files/slides/...
https://tiny.wiki.kernel.org/
Ну, то есть какой-то сгнивший зомбак. А смысл?
Этот зомбак сегодня на порядок лучше и гибче этой Миноки.
#>>Сам ковырял железяку с 2МБ ОЗУ и 512КБ ПЗУ. Прошивка с линуксом2.4
#>>Для современного линукса надо хотя-бы 2МБ ПЗУ и 4МБ ОЗУ.
> Ну, то есть какой-то сгнивший зомбак. А смысл?Это ты про 2МБ+4МБ? Вона Грег -- прямо сейчас! -- бизнесы-профиты обдумывает, молодых гоняет и 4МБ ОЗУ типа подтверждает:
"GKH: A student of mine got Linux running on a Cortex-M3 with 4MB, which is great for Linux, but 2MB is pushing it. At LinuxCon in Toronto, some of us were drunk and found ways that we think we can get the kernel into 512KB — but it won’t do anything. Stripping Linux down for these chips would be awesome — I’d love to do that. But there are already so many good OSes for this. Zephyr is now a good alternative to Nuttx." --
"October 11 • 09:10 - 09:30"
https://openiotelceurope2016.sched.org/event/8Fvk/keynote-a-...
> молодых гоняет и 4МБ ОЗУ типа подтверждает:
> "GKH: A student of mine got Linux running on a Cortex-M3 with
> now a good alternative to Nuttx." --Источник не указал, поторопился, извините:
--http://hackerboards.com/linux-kernel-honcho-tough-love-for-f.../
>операционная система для потребительских интернет-устройств и встраиваемой техникиЖдём postgres в духовке? Оу вей.
На FAT угу :)
QNX?
> QNX?Уже давно, как нет.
А 60 млн. автомобилей с QNX об этом ничего не знает...
Вот из свежего
http://blogs.blackberry.com/2016/10/blackberry-inks-agreemen.../
> Though Minoca OS supports POSIX applications and therefore many Unix-style
> constructs, the kernel was written entirely from scratch and contains no
> code from Unix, Linux, or any other *nix variant.Не, не QNX. Ибо энтирели фром скратч.
цитата процитирована из отсюда: http://www.minocacorp.com/documentation/developers/knowledge.../
Я конечно же не про реализацию/код - QNX жив-здоров и вполне себе процветает и открывать его никто не собирается - я про подход к дизайну. IMHO вполне похожи.
> QNX жив-здоров и вполне себе процветаетО процветании сложно говорить, blackberry умер и т.д.
> и открывать его никто не собирается
Так его уже открывали, 4-ка открыта
> О процветании сложно говорить, blackberry умер и т.д.Blackberry жив. Но теперь как почти чистая software company.
Но своя ось им уже ни к чему
qnx всё, ниши для него не осталось, сейчас плата 60x30mm за $5 держит нормальный linux
Надо же, а дураки из Ford на днях подписались о расширении использования QNX в своих авто. Что, кстати, говорит об их окончательном отказе от использования embeded решений от Microsoft, которые ранее использовали.
> от использования embeded решений от Microsoft, которые ранее использовали.Как бы намекает на то что со времен черных фордов они так и не поумнели.
> QNX жив-здоров и вполне себе процветаетОсобенно на тех черничных телефонах, что идут с ведроидом.
Вот и ботнет ОС подехали!
> Вот и ботнет ОС подехали!Пока ты щелкал клювом, mirai уже давно все разломал и устроил с камер и микроволновок сказочный ddos. Хотя разломал - громко сказано для логина по телнету используя admin:admin в качестве логина.
ну конечно эксперты opennnet сразу кричат не надо, но миру нет дела до экспертов opennet и это прекрасно.Интересный проект, хотя бы потому что не Linux едины. А изначальные рамки низкого энергопотребления и пожирание памяти, очень даже хорошо.
https://copy.sh/v86/ не работает что-то на этом
Каждый настоящий пограмист в своей жизни должен изобрести новый язык с компилятором, написать на нём свою ОС, наплодить кучу багов и оставить это удовольствие потомкам.
а потомки должны вложить в могилу плоды этой деятельности и похоронить с ним?
> а потомки должны вложить в могилу плоды этой деятельности и похоронить с ним?Потомки должны высечь на надгробии посмертный дамп.
>Ну и нахрена здесь FAT?Да он и не нужен! Ладно бы написали все тоже самое, что говорится в статье, но без FAT - тогда бы можно было обратить на это внимание. А так непонятно пока что чего задумали разработчики. Хотя идея интересная.
>>Minoca имеет событийно-ориентированную архитектуру, поддерживает многопроцессорные конфигурации, вытесняющую многозадачность, сетевой, беспроводной и USB стеки, предоставляет подборку драйверов.
>событийно-ориентированную архитектуруА это уже интересно. Но разве posix хорошо вписывается в это?