Представлена (http://www.l4dev.org/doku.php/news) первая версия проекта Codezero (http://www.l4dev.org/doku.php/download), реализующего L4 (http://en.wikipedia.org/wiki/L4_microkernel) микроядро, распространяемое в рамках лицензии GPLv3 и предназначенное для использования на встраиваемых устройствах или для построения гипервизоров.
Кроме непосредственно микроядра проектом разработана системные библиотеки libL4 и libposix, а также ряд сервисов: систему управления памятью и виртуальную ФС. В будущей версии планируется реализовать поддержку виртуальных изолированных контейнеров, файловой системы cramfs, терминал и framebuffer. Система будет поддерживать аппаратные платформы ARM11MPCore/v6 и Intel x86. Изолированные контейнеры будут поддерживать запуск Linux ядра поверх Codezero.
URL: http://www.l4dev.org/doku.php/news
Новость: http://www.opennet.me/opennews/art.shtml?num=22133
> системные библиотеки libL4 и libposix
> Изолированные контейнеры будут поддерживать запуск Linux ядра поверх Codezero.Хммм... звучит вкусно и интересно :)
неповоротливым будет наверняка
>неповоротливым будет наверняка... и в свете этого тем паче не понятно почему это сватают в эмбеддед, где обычно и так процессоры дохлые.
А это смотря как посмотреть. ARM не такие уж и дохлые. Да и чтобы было понятно, надо понимать, что L4 представитель последнего поколения микроядер, даже наноядер. И в отличие от того же Mach, передача сообщений на порядок быстрее и не намного медленнее обычного системного вызова у монолитных ядер. Результаты замеров производительности проектов L4/Linux и L4/Darwin показали, что "оверхед" в среднем 1-5%. А L4/(набор спец. сервисов) легко может конкурировать в секторе встраиваемых решений, причём обладая хорошей гибкостью и надёжностью. А то, что микроядра тормознутые, так это сказки 80-х годов. Тут другие проблемы - сложность разработки системы, соостоящей из множества взаимодействующих сервисов. И вот эта проблема как раз частично снимается у встраеваемой техники, тупо меньшим числом необходимых сервисов.
внезапно информативный комментарий.
Да, это всегда неожиданно :-)
Поясните, зачем оно надо, если еще и оверхед дает?
Зачем нужен Aesthetus Animus если он дает оверхед в виде углекислого газа итого что выделяется после переваривания пищи?
>Зачем нужен Aesthetus Animus если он дает оверхед в виде углекислого газа
>итого что выделяется после переваривания пищи?Помимо оверхеда в виде обогревания атмосферы и роста энтропии, Aesthetus Animus совершает (как не странно) полезную работы. Но что кроме оверхеда дает _это_ микроядро? (Попрошу воздержаться впреть от троллинга, если нечего ответить - не отвечайте)
Когда создаем что-то новое, чему уже есть аналог, должно быть четкое понимание, каких целей хотим добиться, и, хотябы смутное, засчет каких сущностей мы это сможем сделать. А _пока_ я вижу такой подход: а что если сделать микроядро? Да, круто, давайте сделаем! А на хрен оно надо? Какая в жопу разница - там поглядим.
Как показывают мои наблюдения, из такого подхода ничего дельного не выходит.
ну блин... жеский реалтайм, повышенная надежность...
учиться вам, учиться и так далее, чтобы не задавать ненужных вопросов
Твой вопрос из серии:
А зачем нужно модульное ядро, ведь это сложнее?
А зачем нужны высокоуровневые языки, ведь это "оверхед"?
А зачем нужна виртуализация, ведь это опять таки "оверхед"?
А зачем нужен Linux, *BSD ведь и это тоже "оверхед" (Скажи мне, нафига в страиваемой технике Linux)?
И т. д.>Но что кроме оверхеда дает _это_ микроядро? (Попрошу воздержаться впреть от троллинга, если нечего ответить - не отвечайте)
Я с радостью воздерживаюсь от троллинга, но и давать полный развёрнутый ответ тоже не буду. Мне лень пересказывать труды разработчиков L4, mach, GNU Hurd, да и не совсем коректно это, т.к. - это будет моё сугубо личное восприятие. А что даёт микроядро, и L4 как наноядро, можно узнать, если тебе действительно интересно это, спросив у гугла, посмотрев материалы на сайте http://l4ka.org/ и т.д. А вот потом, у нас действительно может получиться интересная техническая дискуссия.
Для затравки, чтобы подогреть интерес, наноядро даёт:
- большую модульность
- простоту замены/расширения
- надёжность, безопасность
- простоту создания изолированных окруженийСамо собой есть недостатки, их перечислять не буду, чтобы не охлаждать интерес =)
>ну блин... жеский реалтайм, повышенная надежность...
>учиться вам, учиться и так далее, чтобы не задавать ненужных вопросовНе Вам, сударь, меня учить, что такое жесткий реалтайм и надежность, и за счет чего они достигаются. А чтобы впредь не вынуждать меня писать вам ненужные ответы, советую воздержаться от пустобрехства в том, где, как я могу наблюдать, Вы ничерта не понимаете.
И откуда вы взялись, с ЛОРа понабежали, что ли?
--------------------------------------------А вот на это уже можно порассуждать:
>Твой вопрос из серии:
>А зачем нужно модульное ядро, ведь это сложнее?Есть противоположное (не только) мое мнение.
>А зачем нужны высокоуровневые языки, ведь это "оверхед"?
Какой оверхед у Си? Мы ведь сейчас о системном программировании говорим?
>А зачем нужна виртуализация, ведь это опять таки "оверхед"?
Вообще говоря да, но во многих случаях она позволяет более эффективно использовать простаивающие ресурсы. Этот оверхед сродни тому, что дает использование планироващика: да, время процессора тратится, но при этом, во первых можно обеспечить мультиплексирование (как один из методов, не лучший), а во-вторых, добиться уменьшения среднего времени отклика на внешнее событие.
>А зачем нужен Linux, *BSD ведь и это тоже "оверхед" (Скажи мне,
>нафига в страиваемой технике Linux)?Linux, *BSD - _готовый_ хороший стек tcp, _готовый_ стек usb, работоспособный планировщик, отработанная годами инфраструктура и некоторые другие вкусности. Там где нужен меньший оверхед - там место для FreeRTOS (я о нем подумываю изза необходимости в планировщике). Там где нужен _действительно_ жесткий реалтайм, там кристал с голой прошивкой под него. И что из этих подходов используется чаще - хороший вопрос.
Читаю, чуть позже постараюсь дать свое мнение на этот счет.
>Для затравки, чтобы подогреть интерес, наноядро даёт:
...
>- простоту замены/расширенияЭто достигается изолированностью отдельных частей. Но _прямо_ из микроядерности не следует.
>- надёжность, безопасность
Миф. Надежности и безопасности никогда нельзя достигнуть введением новых сущностей, коим является микроядро. Это достижимо только ясностью видения архитектуры и ее простотой. А иначе система становится необозримой - вот тогда возникают проблемы с безопасностью, и никакие микроядра, управляемый код и прочие костыли, переносящие "сложность" из одного места в другое, не помогут.
>- простоту создания изолированных окружений
Не буду пока тут спорить, но для меня эта простота кажется сомнительной.
>>А зачем нужно модульное ядро, ведь это сложнее?
>Есть противоположное (не только) мое мнение.Вот поэтому я и говорю вопрос из серии тех, ответ на который неоднозначен.
>Какой оверхед у Си? Мы ведь сейчас о системном программировании говорим?
Обычный, невсегда качественная генерация машинного кода. Зато удобно, да? А есть ещё Java, Python, ещё тормознее, но ведь и это часто удобно.
>Linux, *BSD - _готовый_ хороший стек tcp, _готовый_ стек usb, работоспособный планировщик, >отработанная годами инфраструктура и некоторые другие вкусности.
Опять таки, это удобно и просто использовать.
>Читаю, чуть позже постараюсь дать свое мнение на этот счет.
Вот и замечательно, возможно в следующей новости касающейся тему микроядер/альтернативных архитектур, мы наконец сможем провести техническую дискуссию.
>Это достигается изолированностью отдельных частей. Но _прямо_ из микроядерности не следует.
Большинство существующих микро/наноядер предполагают изоляцию отдельных частей, путем взаимодействия их через единный интерфейс предаставляемый микроядром, чаще всего механизм сообщений. В отличии от монолита, где изоляция фактически только на уровне языка программирования, хотя кое где этого уже достаточно см. Singularity, Oberon. Но в *BSD и Linux, ничто не мешает мне напрямую вызвать любой участок кода ядра, и в случае ошибки "засрать" чужие данные, но работает быстро.
>Миф. Надежности и безопасности никогда нельзя достигнуть введением новых сущностей, коим >является микроядро. Это достижимо только ясностью видения архитектуры и ее простотой. А >иначе система становится необозримой - вот тогда возникают проблемы с безопасностью, и >никакие микроядра, управляемый код и прочие костыли, переносящие "сложность" из одного >места в другое, не помогут.
Отчасти согласен, но я не считаю микроядро лишней/новой сущностью. Надёжность достигается за счёт изоляции частей и возможности их перезапуска см. Minix3 (я скептически отношусь к этому проекту). Безопасноть, опять же за счёт изоляции. Стоит понимать, что L4 в отличии от Mach предоставляет лишь самый минимум, число системных вызовов можно по пальцам пересчитать, и на нём можно построить как ясную и простую по архитектуре систему, так и сложное запутанное г... Моё мнение на счёт сущностей, отчасти совпадает с создателями Unix. А именно в Unix и в его современных потомках дохрена сущностей. Про Linux говорить не буду, не читал, в ядре FreeBSD много сущностей: Netgraph, PFIL, GEOM, CAM и ATA подсистема, частично или полностью покрывающие функционал друг друга. Это если про ядро. Если про сам Unix, то можно привести в пример интерфейс сокетов, файлов, обращение с файлами устройств и т. д. Это не говоря про надстройки поверх ОС типа HAL, опять же частично или полностью дублирующих функционал. На что создатели того самого unix'а и стали делать Plan9, оставив только файловый интерфейс. И это тоже интересное альтернативное решение.
to Aesthetus Animus:
Извините, пришлось вмешаться, но вы словоблуд:
>"Миф. Надежности и безопасности никогда нельзя достигнуть введением новых >сущностей, коим является микроядро. Это достижимо только ясностью видения >архитектуры и ее простотой. А иначе система становится необозримой - вот тогда >возникают проблемы с безопасностью"По существу: микроядро, это действительно надежность - именно микроядерная QNX используется в атомной энергетике, в космосе и на критических участках производства. Микроядерная ОС используются в банкоматах системы VISA в северной америке.
Микроядро это стабильный API. Это действительно модульность и расширяемость - у меня после обновлении ядра стабильно слетает видеодрайвер. Надо переустанавливать драйвер wi-fi. Сам способ установки драйвера кривой. Извините, но в оффтопике он более логично организован, когда среди установленных драйверов, можно выбрать нужный.
НЕ надо как в linux таскать от релиза к релиза таскать многомиллионый код, который только пухнет.
и.т.д.
у меня после обновлении ядра стабильно слетает видеодрайвер. Надо переустанавливать драйвер wi-fi. Сам способ установки драйвера кривой.Забыл добавить - это все про linux