LINUX.ORG.RU

Embox v0.7.0

 , ,


1

2

В день 16-летия вышла новая версия открытой операционной системы реального времени Embox

Embox предназначена для встраиваемых систем. Главной идей является использование Linux-ПО без Linux. ОС является POSIX-совместимой и кроссплатформенной (ARM, MIPS, x86, RISC-V, Microblaze, SPARC, PowerPC, E2K), имеет аналог ./configure; make; make install, поддерживает C++. Есть поддержка ряда файловых систем: FAT, ext2/3/4, поддержка сетевого, графического и остальных системных стеков. Доступны популярные ЯП: Python, Lisp TCL, Ruby, Lua, JS, Scheme.

ОС написана на языке C, отличается гибкой конфигурируемостью на уровне исходных текстов и распространяется на условиях двухпунктной лицензии BSD.

Embox включена в реестр российского ПО.

Отдельно обращаем внимание на поддержку российских чипов: Миландр (MRD1206FI), Байкал-Электроникс (Baikal-U) и KOMDIV64, а так же на начало работ по поддержке ardupilot и tensorflowlite

>>> подробнее

★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от pihter

if a = b then print(a) end

Что-то как то сложновато. Можно же проще print(«Hello, World»)

UriZzz ★★
()
Ответ на: комментарий от abondarev

Надеюсь все таки поддержим (может даже в следующем релизе)

Ох, бальзам в мои ухи! Джва года жду. Я готов помочь, чем смогу, могу купить вам несколько штучек (или прислать, у меня их есть), если это поможет. Вообще я умею в си, мог бы, наверное какую-нибудь службу в этом плане сослужить, я пытался полуркать с какой стороны подойти чтоб добавить поддержку, но так и бросил.

Не парьтесь что чего-то не успели: вы шикарную штуку делаете, забесплатно всем раздаете – вам ли оправдываться? :)

pihter ★★★★★
()
Ответ на: комментарий от abondarev

Чот по-другому совсем никак. Отконфигурил как написано, ну и вот:

/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `block_dev_read':
././src/drivers/block_dev/block_dev.c:236:(.text.module.embox__driver__block_dev+0x29ef): undefined reference to `__udivdi3'
/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `block_dev_write':
././src/drivers/block_dev/block_dev.c:261:(.text.module.embox__driver__block_dev+0x2c31): undefined reference to `__udivdi3'
/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `mutex_lock_common':
././src/kernel/thread/sync/mutex.c:67:(.text.module.embox__kernel__thread__mutex+0x795): undefined reference to `__divdi3'
/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `semaphore_timedwait':
././src/kernel/thread/sync/semaphore.c:43:(.text.module.embox__kernel__thread__sem+0x704): undefined reference to `__divdi3'
/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `cond_timedwait':
././src/kernel/thread/sync/cond.c:110:(.text.module.embox__kernel__thread__cond+0xb1b): undefined reference to `__divdi3'
/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `rmadisk_ioctl':
././src/drivers/block_dev/ramdisk/ramdisk.c:61:(.text.module.embox__driver__ramdisk+0x368): undefined reference to `__udivdi3'
/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `timerfd_read':
././src/compat/posix/sys/timerfd/timerfd.c:133:(.text.module.embox__compat__posix__timerfd+0x887): undefined reference to `__divdi3'
/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `strtoll':
././src/compat/libc/stdlib/strtoll.c:97:(.text.module.embox__compat__libc__stdlib__core+0x1c16): undefined reference to `__moddi3'
/usr/bin/ld: ././src/compat/libc/stdlib/strtoll.c:98:(.text.module.embox__compat__libc__stdlib__core+0x1ca3): undefined reference to `__divdi3'
/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `ns_to_timespec':
././src/kernel/time/timeval.c:74:(.text.module.embox__kernel__time__timeval+0x231): undefined reference to `__divdi3'
/usr/bin/ld: ././src/kernel/time/timeval.c:75:(.text.module.embox__kernel__time__timeval+0x24b): undefined reference to `__moddi3'
/usr/bin/ld: /home/gleb/src/embox/build/base/obj/embox.o: in function `print_i':
././src/compat/libc/stdio/printf_impl.c:153:(.text.module.embox__compat__libc__stdio__print+0x5af): undefined reference to `__umoddi3'
/usr/bin/ld: ././src/compat/libc/stdio/printf_impl.c:158:(.text.module.embox__compat__libc__stdio__print+0x6d7): undefined reference to `__udivdi3'
gns ★★★★★
()
Ответ на: комментарий от UriZzz

А разработчики ядра Linux в курсе?))

Думаю, их ещё не известили, но Rust уже им везут... самосвалами... ;P ;))

Somebody ★★★
()
Ответ на: комментарий от pihter

вы шикарную штуку делаете, забесплатно всем раздаете

Спасибо большое

Ох, бальзам в мои ухи! Джва года жду. Я готов помочь, чем смогу, могу купить вам несколько штучек (или прислать, у меня их есть), если это поможет. Вообще я умею в си, мог бы, наверное какую-нибудь службу в этом плане сослужить, я пытался полуркать с какой стороны подойти чтоб добавить поддержку, но так и бросил.

Спасибо большое. Пока все есть, кроме достаточных временных ресурсов. Будем иметь в виду :)

abondarev ★★★
() автор топика
Ответ на: комментарий от abondarev

Если Вы про всякий там ala-Yocto рассказывали, то оно ж должно как-то из себя собираться. Ладно попробую. Но зачем сторонней ОС зависимости от хостовых библиотек? Это ж, по-сути, кросс-сборка.

P.S. А если зависимости все же нужны, то что же конфигуратор не ругался на то, что чего-то не хватает?

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 2)
Ответ на: комментарий от gns

Но зачем сторонней ОС зависимости от хостовых библиотек?

Базовое окружение, мы используем кросс-компилятор на хосте, прокидывая флаги и библиотеки (собираем свой компилятор внутри песочницы) И да, это линковка а не компиляция :)

abondarev ★★★
() автор топика
Ответ на: комментарий от abondarev

Доставил gcc-multilib, эффект тот же :( Ладно мне пока не уперлось. Поковыряю на досуге.

update: все хорошо, собралось. Каких-то еще библиотек не хватало. Доставил.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от UriZzz

Наконец то у линукса появится крепкий собственник, который начнет его развивать, потому что будет лично заинтересован. А то развели тут колхоз какой то.

LightDiver ★★★★★
()
Ответ на: комментарий от gns

update: все хорошо, собралось. Каких-то еще библиотек не хватало. Доставил.

Отлично, спрашивайте если что :)

abondarev ★★★
() автор топика

Главной идей является использование Linux-ПО без Linux.

А Qt-шные программы можно запустить в этой ОС?

Есть какие-то примеры?

Xintrea ★★★★★
()
Ответ на: комментарий от solvent

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

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Я в рот имел необходимость писать на си. Си не предназначен для программирования

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Да не в классах дело. В раст тоже классов нету.

LightDiver ★★★★★
()
Ответ на: комментарий от pihter

А я про твою даже не слышал.

Ничего, бывает... :)

Я думал pic - уже того

Нет. :)

Доступный в России ассортимент резко уменьшился и цены существенно возрасли, это да... Всё это и «сподвигло» меня к поиску альтернативы...

P.S. Там у меня смайлы были... ;) Автор меня понял, и это главное... :))

Somebody ★★★
()
Ответ на: комментарий от LightDiver

Замечу что си в этом списке нету…

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

«поддержка» си была самой первой в эмбоксе, но слово поддержка здесь в кавычках, потому что эмбокс - это си и есть, очень остроумный способ использовать десктопный линукс софт (по-умолчанию, на си) на микроконтроллерах

pihter ★★★★★
()
Последнее исправление: pihter (всего исправлений: 1)
Ответ на: комментарий от Somebody

Ничего, бывает… :)

А в чем прикол-то? Ну я погуглил – 8-битный мк восьминогий… Есть какие-то особенности?

P.S. Там у меня смайлы были… ;) Автор меня понял, и это главное… :))

А я еще подумал, что за странный набор смайлов у тебя, а потом гляжу – у него тоже. Ну, думаю, не иначе – тайный язык )

pihter ★★★★★
()
Ответ на: комментарий от pihter

А в чем прикол-то? Ну я погуглил – 8-битный мк восьминогий… Есть какие-то особенности?

Это просто шутка, адресат её меня понимает. :)

PIC10F200 — 8-битный микроконтроллер американской компании Microchip с 256 слов программной памяти «на борту». Разумеется, ни Embox, ни что-либо подобное на нём работать никогда не будет. :)

Автор, которому я эту шутку регулярно адресую, меня понимает, ине этого достаточно. :)

А я еще подумал, что за странный набор смайлов у тебя, а потом гляжу – у него тоже. Ну, думаю, не иначе – тайный язык )

Вот и выросло поколение, не знающее «изначальных», текстовых «смайлов»... :)

Somebody ★★★
()
Ответ на: комментарий от Somebody

Разумеется, я распарсил, я сам набор не понял. Ну да ладно

pihter ★★★★★
()
Ответ на: комментарий от Infra_HDC

Да, мы этого не скрывали :) Просто как некоторые тут сказали, не выпячивали :)

abondarev ★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Полностью согласен, Объектно ориентированную парадигму можно и на Си реализовать, в ядре наследование сплошь и рядом :)

Хуже когда не понимают парадигму и пихают кривой код везде, ссылаясь на паттерны и так далее. Был молодым, изучал плюсы, читаю новую главу, и все теперь через исключения делаю, ведь там прямо написано, вы можете передавать возврат через исключения. :)

abondarev ★★★
() автор топика
Ответ на: комментарий от LightDiver

Я тебе больше скажу, я много лет писал на объектном паскале (турбо паскаль, дельфи) и получал вполне себе удовольствие. И сейчас бы писал (fpc вполне живой), только мейнтейнеров на плюсовый проект найти проще, чем на fpc-шный. Ну ничего, у плюсов тоже есть свои плюсы.

И на расте, думаю, тоже буду писать вполне нормально, если надо будет. Напрягают только две вещи:

  1. офлайн-проблемы с библиотеками, которые в случае плюсов можно взять просто из репы почти любого линуксового дистрибутива, о чём уже писали выше;

  2. отсутствие классического наследования, такое ощущение, что это сделали специально, чтобы «не как в C++». Да, мне тут втолковывали, что «наследование кода это антипаттерн», но аргументов я не услышал, поэтому пока остаюсь при мнении, что втолковыватели просто не умеют его готовить. Про то, что на любой мощной технологии, включая наследование кода, можно написать говнокод, мне сообщать не надо, я в курсе. :P

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

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

Ну, для создания такого «шедевра» не нужны «мощные технологии»...

Somebody ★★★
()
Последнее исправление: Somebody (всего исправлений: 1)
Ответ на: комментарий от Smacker

А раст не нужен!

Так же как Secure Boot и TPM?

Люди старались, бэкдорили, а ты позволяешь себе такое!

sanyo1234
()
Ответ на: комментарий от hobbit

Напрягают только две вещи:

офлайн-проблемы с библиотеками, которые в случае плюсов можно взять просто из репы почти любого линуксового дистрибутива, о чём уже писали выше;

Контроль цепочки поставки (supply chain) не напрягает, а радует кое кого.

sanyo1234
()
Ответ на: комментарий от Somebody

Понятно же, что на этом «микробе» Embox и близко быть не может…

А если к нему на ноги посадить оперативку и ПЗУшку, а его использовать в качестве процессора?

pihter ★★★★★
()
Ответ на: комментарий от hobbit

Вы на серьезных щщах думаете что на ЛОРе бывают люди, не знающие про текстовые смайлы? :)

Даже если предположить что мне 10 лет и я пропустил ту эпоху, нельзя же набить 5 звезд и не нахвататься всякого…

pihter ★★★★★
()
Ответ на: комментарий от pihter

А если к нему на ноги посадить оперативку и ПЗУшку, а его использовать в качестве процессора?

Не, у него ног слишком мало, и внешнюю память он не умеет... Это очень «микро» контроллер. :)

Somebody ★★★
()
Последнее исправление: Somebody (всего исправлений: 2)
Ответ на: комментарий от sanyo1234

Это очевидно. Но я-то не кое-кто, я программист и энтузиаст СПО. Т.е. мои интересы с кое-кем очевидно противоположны.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

мои интересы с кое-кем очевидно противоположны

Возможно, даже перепендикулярны... ;)

Somebody ★★★
()
Ответ на: комментарий от hobbit

Даже и не знал, что бывают МК с 8 ногами… :)

С 6-ю. ;)

Это уже не контроллер, а радиодеталька такая, программируемая... :)))

Somebody ★★★
()
Ответ на: комментарий от Somebody

Не, у него ног слишком мало, и внешнюю память он не умеет… Это очень «микро» контроллер. :)

Пфф, 640кб организовать софтварный spi – ног у всех хватит. А там подключай скока хочешь оперативы и флешки. И любую систему команд софтварно эмулируй в очень-очень микро контроллере. Не знаю зачем я об этом думал :)

pihter ★★★★★
()
Ответ на: комментарий от hobbit

Но я-то не кое-кто, я программист и энтузиаст СПО. Т.е. мои интересы с кое-кем очевидно противоположны.

Тока щас обсуждали с женой сцену из романа, где суровая реальность перед первой мировой перетирала искренних ученых и ставила их в рамки – либо продолжать науку, но уже выбрав сторону, либо идти нафиг.

Посмотри на шведского фина: раньше казалось что – энтузиаст СПО.

А сегодня я столкунулся вот с блокировкой apt-серверов девуана. А с духоскрепного зеракла пока заработало. Просто девуан-то в чем виноват? Что физичски за границей сервера?

pihter ★★★★★
()
Ответ на: комментарий от hobbit

Даже и не знал, что бывают МК с 8 ногами… :)

из которых 2 – земля и питание. Но масса, масса всего на них сделана, ибо цена. Но это лет 15-20 назад было

pihter ★★★★★
()
Ответ на: комментарий от hobbit
  1. Нет такой проблемы, «репозитарий» можешь в любом виде и любом способом организовать, включая «никакой». И всё это не зависимо от ОС, что делать если у нас не линукс? Вот реально, последнее что можно предъявить расту - это его система сборки.

отсутствие классического наследования, такое ощущение, что это сделали специально, чтобы «не как в C++»

Так-то ещё пачка языков наберётся, особенно в функциональщине, без наследования(в плюсовом виде), они тоже все назло?

Да, мне тут втолковывали, что «наследование кода это антипаттерн»,

Тут разделять надо, наследование реализации данных - однозначно архитектурный баг, такой же хреновый способ экономии копипасты как глобалки и гоуту, примерно по тем же причинам. И подтипирование - как способ типизированного полиморфизма-диспатча. И само вот это смешение в одно понятие «классическое наследование» уже косяк проектирования - одна цель может противоречить другой. Подтипирование относительно даже норм, но это если других способов нет. А в расте есть, более гибкие и общие трейты они же типы типов, с которыми можно задать довольно-таки произвольные отношения между типами, а не одно только захардкоженное в язык отношение подтипирования. Если так пихать в язык всё подряд получается мусорка вроде плюсов, есть всё но какое-то бестолковое. Ну и в общем, нельзя произвольную предметную область красиво натянуть на деревянную иерархию одних только типов произведений, что-то обязательно порвётся. А вот комбинация алгебраических типов, параметрических типов и трейтов гораздо более общая и гибкая связка для декомпозиции предметки.

Про то, что на любой мощной технологии, включая наследование кода, можно написать говнокод,

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

zurg
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.