LINUX.ORG.RU
ФорумTalks

Экзоядерные ОС.


0

0

Узнал недавно, что экзоядерная ОС - это вовсе не шутка проекта ПСИХ-ОС, а вполне реальная архитектура.

В результате отыскал информацию: http://wiki.osdev.org/Exokernel http://subscribe.ru/archive/comp.soft.prog.osdev/200306/23174140.html

Мне вот интересно: это действительно настолько крутая концепция, или фигня с огромным количеством проблем?

★★★★★
Ответ на: комментарий от cvb

Экзоядерная ОС выполнена в виде библиотеки и не принимает активного участия в работе процессов.

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

Это просто ненужная хрень. Тупиковая ветвь. Даже куда более практичная L4, к сожалению, не пригодилась.

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

А больше и нет. Это разработка MIT и кроме него никто этим не занимается.

yirk ★★★
()

Скорее всего твои ожидания от экзоядра несколько завышены. То что написано на сабскрайбе про восьмикратное увеличение скорости - не совсем правда. Если посмотришь на тесты производительности, то различия между Чита и другими серверами уменьшаются с увеличением размера страниц. Во-вторых в сравнении нет популярных быстрых http-серверов. В третьих Чита не умеет пхп и прочее. А это все на производительность влияет. Вероятнее всего в реальных условиях различия в скорости не такие уж большие.

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

eugene2k> Скорее всего твои ожидания от экзоядра несколько завышены.

Мои ожидания не столько производительности, сколько гибкости системы. Например, возможность подключения совершенно разных API и использования их в любых программах (хоть одновременно). В том числе API драйверов.

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

> Например, возможность подключения совершенно разных API и использования их в любых программах (хоть одновременно). В том числе API драйверов.

Это всё технически возможно уже сегодня, просто мало кому нужно.

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

Никому не нужно. Ну что ж, конкретную реализацию всё равно интересно будет посмотреть.

different_thing
()
Ответ на: комментарий от Quasar

Мои ожидания не столько производительности, сколько гибкости системы. Например, возможность подключения совершенно разных API и использования их в любых программах (хоть одновременно). В том числе API драйверов.

В теории да, на практике таких весомых результатов до сих пор нет. Зато есть упрощенно-учебная система с экзоядром JOS, при помощи которой в MIT происходит обучение на курсе операционных систем. Курс довольно сложный и очень интересный. В Бауманке часть этого курса переделана sv75 в лабораторную работу (пруф), есть методичка на русском.

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

tailgunner> Это всё технически возможно уже сегодня, просто мало кому нужно.

В виде модулей ядра?

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

Вот это гораздо интереснее. Спасибо.

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

>> Это всё технически возможно уже сегодня, просто мало кому нужно.

В виде модулей ядра?

Новые API - и в виде модулей ядра, и в виде userspace-бибилиотек (как Wine), драйверные API сейчас можно делать любыми за счет virtio, IOMMU и APIC.

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

tailgunner> Новые API - и в виде модулей ядра, и в виде userspace-бибилиотек (как Wine), драйверные API сейчас можно делать любыми за счет virtio, IOMMU и APIC.

Это ведь сложнее, чем написание их в виде библиотеки экзоядерной ОС? Или на практике это проще, безопаснее и безглючнее?

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

>> Новые API - и в виде модулей ядра, и в виде userspace-бибилиотек (как Wine), драйверные API сейчас можно делать любыми за счет virtio, IOMMU и APIC.

Это ведь сложнее, чем написание их в виде библиотеки экзоядерной ОС?

Экзоядерных ОС не существует, так что сравнение невозможно :) А разные OS personalities возможны со времен MkLinux, но почему-то никого не заинтересовали. Возьми к примеру Wine - там же основная сложность не интегрировать Wine в систему, а тупо реализовать огромный Win32 API и всё, что поверх него.

Или на практике это проще, безопаснее и безглючнее?

Ну как сказать... userspace-драйвер не может уронить ОС, но много ли толку от ОС, у которой постоянно падает драйвер, например, корневого диска? Хотя для разработки userspace-драйверы, наверное, очень удобны.

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

tailgunner> Экзоядерных ОС не существует

Существуют. О чём выше написано.

tailgunner> А разные OS personalities возможны со времен MkLinux, но почему-то никого не заинтересовали.

Потому, что поддерживается только Linux, и нет гарантий, что на том же L4Linux всё будет работать точно так же с точки зрения пользователя. Ну и тот же L4Linux является догоняющим проектом - команда разработчиков Linux не уделяет ему времени, так как она разрабатывает сам Linux и не намеревается перенести его на наноядро или виртуализирущее ядро. Это почему команда разработчиков ядра не хочет делать сдвигов.
Кроме того нет хорошо поддерживаемого дистрибутива такой ОС. Посему пользователям оно неинтересно.
Разработчикам ПО же неинтересно по причине «Ядро - головная боль разработчиков ядра. Я буду писать прикладной софт под Linux потому, что уже есть куча дистрибутивов, где он будет работать. MkLinux и L4Linux пусть сами выкручиваются.»

Как-то так.

tailgunner> Ну как сказать... userspace-драйвер не может уронить ОС, но много ли толку от ОС, у которой постоянно падает драйвер, например, корневого диска? Хотя для разработки userspace-драйверы, наверное, очень удобны.

Тогда мне интересно: насколько просто реализовать стабильное API драйверов для Linux как LTS-API,оставив при этом постоянно изменяющееся экспериментальное?

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

> но много ли толку от ОС, у которой постоянно падает драйвер, например, корневого диска?

удобно и для юзеров и для авторов бинарных блобов.

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

>> Экзоядерных ОС не существует

Существуют. О чём выше написано.

Это не существование.

поддерживается только Linux, и нет гарантий, что на том же L4Linux всё будет работать точно так же с точки зрения пользователя

Разработчикам ПО же неинтересно по причине «Ядро - головная боль разработчиков ядра. Я буду писать прикладной софт под Linux потому, что уже есть куча дистрибутивов, где он будет работать. MkLinux и L4Linux пусть сами выкручиваются.»

нихрена не понял.

насколько просто реализовать стабильное API драйверов для Linux как LTS-API,оставив при этом постоянно изменяющееся экспериментальное?

Никогда не реализовывал драйверных API для ОС :) Почитай о драйверах проекта Gelato - там просто дается доступ к устройству, и единственный API - это как получить доступ к устройству.

На самом деле, драйверный API может быть стабильным только при определенной стабильности внутренних интерфейсов ядра ОС (или желании разработчиков ядра помочь сохранению стабильности LTS-API).

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

tailgunner> Это не существование.

По такой логике DOS не существует. А также кучи старых игр.

tailgunner> нихрена не понял.

Есть готовое ядро - Linux. Есть его порт на L4. Причём он развивается до сих пор (свежий Linux под L4 доступен). Но вот никто им не пользуется по причинам, которые я изложил выше.

tailgunner> На самом деле, драйверный API может быть стабильным только при определенной стабильности внутренних интерфейсов ядра ОС (или желании разработчиков ядра помочь сохранению стабильности LTS-API).

А в случае экзоядерной ОС эти интерфейсы можно изолированно держать рядом - как разные версии библиотек (потому, что ядро представлено библиотеками). Соответственно ядро не усложняется и т.д. Вот я с какой позиции интересуюсь.

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

>А в случае экзоядерной ОС эти интерфейсы можно изолированно держать рядом - как разные версии библиотек
Это реализуемо, да. Только в чем профит, лично мне не понятно. И думаю в микроядре это тоже реализуемо было бы.

eugene2k
()
Ответ на: комментарий от Quasar

> По такой логике DOS не существует. А также кучи старых игр.

ДОС довели до юзабельного состояния, экзоядерные ОС - нет.

Есть готовое ядро - Linux. Есть его порт на L4. Причём он развивается до сих пор (свежий Linux под L4 доступен). Но вот никто им не пользуется по причинам, которые я изложил выше.

Если для Linux-поверх-микроядра требует каких-то изменения в программах (не драйыерах) - этот порт никому не нужен. Если же изменения в программах не требуются, значит, никто не пользуется этим по другой причине.

На самом деле, драйверный API может быть стабильным только при определенной стабильности внутренних интерфейсов ядра ОС (или желании разработчиков ядра помочь сохранению стабильности LTS-API).

А в случае экзоядерной ОС эти интерфейсы можно изолированно держать рядом - как разные версии библиотек

Ну и чем это отличается от виртуальных машин? Принципиально - ничем. Чем это отличается от паравиртуализации? Вообще ничем. Ну так зачем это надо?

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.