LINUX.ORG.RU

Возвращение микроядра


0

0

Эндрю Таненбаум - отец операционной системы minix, подвигнувшей Линуса Торвальдса к написанию линукса, а также один из основных идеологов микроядра, в своей статье высказал свое мнение о хрупкости нынешних ядер ОС и каким образом микроядро решает эти проблемы.
В частности он пишет (перевод мой) :
"У нынешних ОС есть две причины которые ведут к их нестабильности и небезопасности - они огромны и у них очень плохая изоляция ошибок ... Рассмотрим аналогию с кораблем - современное судно имеет много отсеков и если в каком нибудь из них случится пробоина то затопленным окажется только этот отсек. Нынешние же ОС похожи на судна произведенные до изобретения этой технологии - единственная течь может утопить судно"

>>> Подробности

★★★

Проверено: Shaman007 ()
Ответ на: комментарий от nickkey

>Где аргументы против того, что микроядро нигде особо не распространилось?

Где аргументы против того, что микроядро нигде особо не распространится?

На всякий случай - я далеко не фанат микроядер.

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

>>Где аргументы против того, что микроядро нигде особо не распространилось?

>Где аргументы против того, что микроядро нигде особо не распространится?

История показывает, что ни одна микроядерная архитектура не заняло сколько-нибдуь значительных позиций, хотя существовали они со времен первых компьютеров. MS и Apple даже показывают, как они от такой архитектуры отказались. Есть еще qnx, но ее забили в такой угол, откуда она уже никогда не высунется, и даже там ее неспешно вытесняют для новых проектов.

>На всякий случай - я далеко не фанат микроядер.

Судя по тому, что вы выше писали, вы философ-теоретик, никогда глубоко не вникавший в разработку ни системного программного обеспечения, ни аппаратуры. Ваше мировоззрение основано на 1. противопоставлении своего мнения мнению большинства, 2. субституальном подходе для несовместимых вещей, 3. поверхностном знании философии.

>domenick ** (*) (09.05.2006 11:40:56)

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

> У MACOS X, кажись микроядро

у MacOS Х по сравнению с линуксом тормоз получился

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

> То что известно про Singularity показывает, что ее идея полностью списана и слизана с Оберон ОС, с Bluebottle ОС. Их же идеи можно сказать с 60-х годов оформлялись и не Биллом далеко. M$, как обычно в своем духе. Слямзить где-что. У них же подразделения на слежениии за всем интересным.

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

или ты вообще ничего не понимаешь?

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

> Если ты напишешь программный продукт _понимающий_ текст то проблема интерфейса исчезнет как утренний туман в солнечный день

У Дональда Кнута есть задача с уровнем сложности == 50: написать компилятор который будет сам исправлять ошибки в программах, и причем исправлять так, что бы программа работала так как хочет программист.

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

> Ваше мировоззрение основано на 1. противопоставлении своего мнения мнению большинства, 2. субституальном подходе для несовместимых вещей, 3. поверхностном знании философии.

Про восприятие сознанием вещей он прав. На уровне сознания восприятие идет на символическом уровне. Вот почему люди могут не понимать друг друга, хотя слова одни и те же? У каждого человека за каждым словом стоит свое значение, свой символ. При общении каждый фактически транслирует внешнюю речь во внутреннюю речь символов. И наиболее символичен именно философский дискурс (4й уровень общения).

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

Доров.

>Операционная система - это планировщик_процессов, обвязка железа, некоторые системные утилиты.

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

ОС это не только ценный мех... Помимо того, что ты назвал всяких немелочей там предостаточно. Рассматривать эти мелочи можно очень долго.

Например, если в определенной ОС допустима концепция файлов - это автоматически тянет за собой логику работы, разработку драйверов, комитеты и группы стандартизации ... типа FHS, разработку улучшенных файловых систем, дальнейшие споры, которая лучше из них и массу прочего.

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

Или есть масса разношерстного оборудования со сходной функциональностью - придется под все писать "драйверы" с дальнейшим бесконечным отлавливанием ошибок в них и таскать эти драйверы всегда с собой.

Разные подходы ко взаимодействию с памятью, естественно, не привели к оптимуму. Пока видно лишь усложнение.

И тому подобное.

>Остальное - прикладное ПО.
Все складывается из мелочей. Если ПО вынуждено будет следовать определенной логике ОС по работе с теми же файлами, например - рано или поздно такой базовый выбор приведет к человеческой ошибке. Не ошибка пользователя, что он передал не саму информацию, а лишь указатель на нее - пресловутый ярлычок - и это проблема не только применения GUI.

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

Да большинство базовых принципов построения обычных ОС сейчас от исплняемых приложений до концепции системной библиотеки далеко не истины в последней инстанции.

Много не последних людей убеждены, что можно сделать лучше. Доказательство - увеличивающееся количество попыток изменения сложившейся ситуации.

В противовес бесконечному жонглированию техническими особенностями достаточно здравого смысла и немного интуиции, чтобы ощутить серьезную недоразвитость структуры построения в комплексе большинства современных ОС. Обычные пользователи, как мучались так и мучаются. Люди не обязаны быть специалистами, чтобы эффективнее работать с информацией. Недомыслие только специалистов, что они загнали людей в условия, при которых слишком велика возможность фактора человеческой ошибки. Доказательство - массовые явления, неукладывающиеся в самые фантастические сюжеты, бездумного взаимодействия пользователей с ОС и продолжающим логику ОС прикладным ПО.

>И окошечный подход - это проблема уровня прикладного ПО, а именно - это вопрос интерфейса.
Не совсем. Если студент изучил, что ОС устроена именно так, то он будет ваять интерфейс не менее криво. Он принимает нормой кривизну. Это распространяется на все - таков подход общий. Если допускается такая кривизна внутри - то тем более ничего страшного, если такими будут и менее критичные рюшечки.
Ситуация сейчас, как раз обратная, кстати. Порой за более менее лаконичными фасадами интерфейсов скрываются такие внутренности, что туда боятся заглядывать сами творцы.


>Если ты напишешь программный продукт _понимающий_ текст то проблема интерфейса исчезнет как утренний туман в солнечный день.

Уже теплее. Однако проблема интерфейса это многопараметрическая функция. Институты занимаются.

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

Например, до момента доминирования управления посредством анализа активности мозга :) , перед этим комплексные системы, дальше новый виток как обычно :).

Зачем мне драйвер мышки, если указание осуществляется драйвером BUI.

Зачем мне драйвер, если, возможно, его правильное название модуль.

Зачем мне драйвер взаимосвязи указателя с BUI указанием, если сам интерфейс ОС подразумевает прямое взаимодействие с BUI указанием.

Зачем мне кнопка минимизировать окно, если будет доказано, что можно выполнить то же действие эффективнее иначе.

Зачем мне оконная система вообще.

Зачем мне запоминать комбинацию клавиш для сворачивания окна, если нет ни окна ни клавиатуры. Клавиатура... очнитесь... Не тянет глиняных дощечек налепить и клинышками на них поскрябать?

И так так далее, и так далее, и так далее...

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

>> При всем уважении, Таненбаум не написал ни одной *настоящей* операционной системы.

таки его основная задача учить студентов которые собственно и должны (теоритически) писать *настоящие* ОС

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

>ну ты ведь понимаешь, что чисто академическая разработка и основанный на тех же идеях продукт для индустрии это, вообще говоря, разные вещи?

Ну и ты ведь это понимаешь :). Ты понимаешь, что коммерческая индустриальная система m$ окошки привела к тому, что, например, очередная и, скорее всего изначально хорошая девушка, плотно отработав где-нибудь с этой системой, вдруг начинает вести себя с окружающими еще меннее адекватно, чем свойственно ее виду.

Отсюда все эти "тыкну...", "я сама знаю - здесь так - всегда так всем отделом делали" и "мы уже к нашему виндовсу привыкли - нам так понятнее, только вот эту кнопочку трогать не надо, а здесь 5 минуток подождать и не трогать - само заработает..., да фсио дико глючит, конечно, но у меня тут террабайт сверхнужных файлов, только я не помню где..., не хватает терпения до конца вложенных директорий дойти уже с год..., а проверка диска... да, у нас все время включается, не знаем почему и еще полдня уходит, чтобы всплывающие окошки закрывать, чтобы по работе в инете хоть что-то посмотреть, да аутглюк сложная программа и часто письма принять и отправить не получается... сложно конечно, но мы боремся героически..., а переучиваться не будем и вообще я сама вам щас расскажу, как правильно"...

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

>Судя по тому, что вы выше писали, вы ...


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

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

>История показывает, что ни одна микроядерная архитектура не заняло сколько-нибдуь значительных позиций,

Я не утверждаю, что обязательно займет. Однако, если займет, все кто кричал, микроядро - задвинуто, будут кричать обратное. Это естественно и нормально.

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

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

>>История показывает, что ни одна микроядерная архитектура не заняло сколько-нибдуь значительных позиций,

>Я не утверждаю, что обязательно займет. Однако, если займет, все кто кричал, микроядро - задвинуто, будут кричать обратное. Это естественно и нормально.

>Незанятие каким-либо подходом доминирующего положения - не отрицает сам подход. Тем более странно, что ты берешься судить по относительно небольшому временному отрезку.

Вы еще скажите, что обезьяны станут умнее человека, и когда это произойдет, все должны будут вспомнить, что вы говорили...

Микроядерные архитектуры уже пытались показать, что они лучше (как и обезьяны несколько миллионов лет назад), но монолитное ядро оказалось просто лучше (быстрее, проще, удобнее, более расширяемое и т.п.).

Побеждает не тот, кто в академических кругах считается лучшим, а кто на самом деле лучше.

>domenick ** (*) (09.05.2006 13:08:27)

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

> M$, впрочем, свой вариант все равно извратит и будет бяка опять, если вообще осилит. Так что нечего беспокоиться, кроме того, что опять все плеваться будут..., как так можно было изгадить интересную идею.

Это вряд-ли. В свое время в пресс-релизах писали, что Microsoft этим занимается не для продажи, а в порядке JFF, то есть, ничто человеческое им тоже не чуждо. Что-то вроде того, что "Microsoft доказала, что может разработать операционную систему исключительно как proof of concept".

Кстати, почитав отчеты по Сингулярности, я там нашел предположительно несколько дырок, откуда всякая нечисть может полезть. В частности, у них все-таки возможны атаки через переполнение стека или кучу, дедлоки, а также аналог dll/so-hell. Сейчас точно не вспомню механизм, поэтому флеймить не буду. Да и исходников Сингулярности я в руках не держал, а без них это все домыслы.

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

> Почему тогда эти ОС все никак не могут занят рынки?

If you so clever, than show me your money ;-).

На эти происки есть красивый универсальный ответ: просто их время еще не пришло...

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

>Вы еще скажите, что обезьяны станут умнее человека, и когда это произойдет, все должны будут вспомнить, что вы говорили...

> Побеждает не тот, кто в академических кругах считается лучшим, а кто на самом деле лучше.

К вопросу об обезьянах. Динозавры в свое время на самом деле были лучшими. И где сейчас динозавры, а где обезьяны? ;-)

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

>>Вы еще скажите, что обезьяны станут умнее человека, и когда это произойдет, все должны будут вспомнить, что вы говорили...

>> Побеждает не тот, кто в академических кругах считается лучшим, а кто на самом деле лучше.

>К вопросу об обезьянах. Динозавры в свое время на самом деле были лучшими. И где сейчас динозавры, а где обезьяны? ;-)

Когда же это они были лучшими? Они были самымми здоровыми и тупыми.

>eugine_kosenko * (*) (09.05.2006 13:31:55)

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

> Когда же это они были лучшими? Они были самымми здоровыми и тупыми.

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

Не находите, что то же самое можно сказать и о современных операционных системах?

eugine_kosenko ★★★
()

В идее микроядра просматривается тот же подход, что и в идее коммунизма (в терминах некоторых философов прошлого, это идея Царства Божия на Земле;). Адепты используют весьма сходные приемы: "существующие реализации были с дефектами, но идея-то хорошая", "время не пришло" и пр. Что интересно - ни для того, ни для другого нет (AFAIK) убедительных доказательств теоретической невозможности построения. Есть только распространенные спинномозговые соображения, что при имеющемся человеческом материале построить коммунизм СКОРЕЕ ВСЕГО невозможно. Аналогично, есть подозрения, что при существующем железе и существующих законах рынка ПО попсовые ОС на "настоящих" микроядрах вряд ли будут успешными.

ЗЫ _Чисто_этически_ идея коммунизма мне симпатична. Технологически и архитектурно мне очень нравятся микроядра. И что?

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

>> Когда же это они были лучшими? Они были самымми здоровыми и тупыми.

>В то время они занимали подавляющую долю биологического рынка. А мелкие млекопитающие были загнаны в свою маргинальную нишу, и вся история на тот момент показывала, что ни одно млекопитающее не способно сколько-нибудь серьезно продвинуться в своей эволюции.

>Не находите, что то же самое можно сказать и о современных операционных системах?

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

>eugine_kosenko * (*) (09.05.2006 13:57:28)

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

> И наиболее символичен именно философский дискурс (4й уровень общения).

3 первые достаточно хорошо изложены у Караулова. За 4-м обращайтесь к докторской по философии Титаренко.

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

> Вы подменяете понятия - динозавр - это как раз микроядро, которое очень не такое как все.

Тогда вернемся к аналогии. Вы можете назвать период истории, когда микроядра занимали подавляющую долю рынка?

Кстати, о "здоровости" динозавров: прокомпсогнатусы в холке достигали только 30см, то есть, примерно размером с курицу, и были шакалами своего времени. И о "тупости" динозавров: велоцирапторы (в холке 90-120см) охотились стаями, как современные волки или собаки. Есть основания считать, что их интеллект в некоторых случаях можно приравнять к интеллекту собаки, интеллект которой, в свою очередь, некоторые сравнивают с интеллектом трехлетнего ребенка.

> А мелкие животные вокруг, как например обезьяны, - это уже монолитные ядра,

:-))). Сравним размеры ядер Linux и Windows с размерами ядер QNX или Minix? Нифига себе мелкие животные получаются :-))). Кстати, кит -- тоже млекопитающее. :-)))

> А динозавр по-прежнему считает себя самым лучшим (в своих академических кругах) и не замечает, как вымирает его вид.

:-))). Представим себе академию динозавров, где они в своих академических кругах считают себя самыми лучшими :-))). "Ледниковый период" отдыхает :-)))).

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

> "Ледниковый период" отдыхает :-)))).

Народ, прекратите создавать пятничное настроение! Работать же невозможно!;)

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

>> Вы подменяете понятия - динозавр - это как раз микроядро, которое очень не такое как все.

>Тогда вернемся к аналогии. Вы можете назвать период истории, когда микроядра занимали подавляющую долю рынка?

Никогда в общем-то, так что они даже до динозавров не дотянули...

>Кстати, о "здоровости" динозавров: прокомпсогнатусы в холке достигали только 30см, то есть, примерно размером с курицу, и были шакалами своего времени. И о "тупости" динозавров: велоцирапторы (в холке 90-120см) охотились стаями, как современные волки или собаки.

Некоторыми считается, что они нападали всегда на более крупную жертву, чем сами, например травоядных "сородичей" динозавров, поэтому стаей просто удобнее. Это не говорит о каком-то разуме.

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

Можно также предположить, что т.к. собака может убить маленького ребенка, а не наоборот, то последний обладает меньшим интеллектом.

Все дело в развитии, которого у многих животных не могло быть.

>> А мелкие животные вокруг, как например обезьяны, - это уже монолитные ядра,

>:-))). Сравним размеры ядер Linux и Windows с размерами ядер QNX или Minix? Нифига себе мелкие животные получаются :-))). Кстати, кит -- тоже млекопитающее. :-)))

А при чем тут размер? Вы тоже считаете, что монолитность ядра определяется размером файла bzImage?

Выкиньте все архитектуры и все драйвера - будет то же самое, что qnx, маленькое, быстрое и компактное никому не нужное ядрышко.

>> А динозавр по-прежнему считает себя самым лучшим (в своих академических кругах) и не замечает, как вымирает его вид.

>:-))). Представим себе академию динозавров, где они в своих академических кругах считают себя самыми лучшими :-))). "Ледниковый период" отдыхает :-)))).

Есть мнение, что другие аналогии вызовут аллергическую реакцию у пациента.

>eugine_kosenko * (*) (09.05.2006 14:31:32)

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

> Это вряд-ли. В свое время в пресс-релизах писали, что Microsoft этим занимается не для продажи, а в порядке JFF, то есть, ничто человеческое им тоже не чуждо. Что-то вроде того, что "Microsoft доказала, что может разработать операционную систему исключительно как proof of concept".

просто ряд личностей в microsoft research разводят монополиста на бабки и занимаются тем, чем им самим заниматься интересно (что в общем-то для науки нормальная ситуация)

какое например отношение имеют к рыночным успехам микрософта конформно-инвариантная перколяция и стохастическая эволюция Лёвнера (SLE)?

http://research.microsoft.com/~schramm/publ.html

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

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

ну-ну, первым делом мы испортим самолёты ... ну а девушек -- потом

странно слышать подобную аргументацию того кто "изучал ядра и оси вдоль и поперек". и школьнику ясно что архитектура операционной системы и конечного-пользователя-experience вещи крайне слабо взаимосвязанные

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

> Например, если в определенной ОС допустима концепция файлов - это автоматически тянет за собой логику работы, разработку драйверов, комитеты и группы стандартизации ...

Обвязка железа. Файловая система появилась для внешних накопителей с большим объемом. Для прикладного ПО - это просто контейнеры.

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

С точки зрения прикладного ПО, нет разницы сколько и каких планировщиков. Программа пытается запуститься, пытается взаимодействовать с чем-то внешним (другие процессы, устр-ва ввода). А с точки зрения ОС нет разницы что там за процессы - отрисовка окошек или решение задачи. Процессы должны получать что им надо и не дергаться куда нельзя.

> Если ПО вынуждено будет следовать определенной логике ОС по работе с теми же файлами, например - рано или поздно такой базовый выбор приведет к человеческой ошибке. Не ошибка пользователя, что он передал не саму информацию, а лишь указатель на нее - пресловутый ярлычок - и это проблема не только применения GUI.

А пользователь, в идеале, и не должен знать про какие-то там "файлы". Так-же как ты не задумываешься о фрагментации TCP пакетов читая лор.

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

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

>> И окошечный подход - это проблема уровня прикладного ПО, а именно - это вопрос интерфейса.

> Не совсем. Если студент изучил, что ОС устроена именно так, то он будет ваять интерфейс не менее криво.

> Порой за более менее лаконичными фасадами интерфейсов скрываются такие внутренности, что туда боятся заглядывать сами творцы.

Правильно поставленная, хорошая задача (правильная обработка информации) задала-бы хороший тон и осестроению.

>> Если ты напишешь программный продукт _понимающий_ текст то проблема интерфейса исчезнет как утренний туман в солнечный день.

> Уже теплее. Однако проблема интерфейса это многопараметрическая функция. Институты занимаются. Проблема интерфейса с том, что он "ненужен". А сегодняшние проблемы интерфейса - поиск сколь-нибудь подходящей формы управления человеком такими низкоуровневыми вещами как "файлы".

Нужно понимать текст. Тогда подавляющее большинство сегодняшних проблем просто исчезнут.

> Например, до момента доминирования управления посредством анализа активности мозга :)

Это - уже какие-то нездоровые фантазии :) У тебя что, языка нет? :)

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

> ясно что архитектура операционной системы и конечного-пользователя-experience вещи крайне слабо взаимосвязанные

Если я правильно понял, он полагает что низкий уровень оказывает сильное влияние на прикладной.

Видимо так и есть, потому-что снизу - точка отсчета есть (HW), но сверху - какой-то внятной модели интерфейса нет а приходится сваливать на человека управление достаточно низкоуровневыми вещами.

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

> Народ, прекратите создавать пятничное настроение! Работать же невозможно!;)

а сегодня работать еще рано :)

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

> Выкиньте все архитектуры и все драйвера - будет то же самое, что qnx, маленькое, быстрое и компактное никому не нужное ядрышко.

думаю в данном случае можно выбросить только то, что можно собрать в виде модуля или без чего можно собрать просто рабочее ядро через его конфиг - посмотрите сколько сделано в последних ядрах для того, что бы можно было выбрасывать из сборки кусочки по 5-10 кВ, которые не нужны для встариваемых систем. А рекомендации по написанию дров - даже если драйвер не планируется писать как модуль, он все равно должен быть оформлен в виде его.

если так дальше пойдет, то можно будет собрать минимальное ядро линукса по размеру не большее какого-либо микроядра

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

>> Выкиньте все архитектуры и все драйвера - будет то же самое, что qnx, маленькое, быстрое и компактное никому не нужное ядрышко.

>думаю в данном случае можно выбросить только то, что можно собрать в виде модуля или без чего можно собрать просто рабочее ядро через его конфиг - посмотрите сколько сделано в последних ядрах для того, что бы можно было выбрасывать из сборки кусочки по 5-10 кВ, которые не нужны для встариваемых систем. А рекомендации по написанию дров - даже если драйвер не планируется писать как модуль, он все равно должен быть оформлен в виде его.

>если так дальше пойдет, то можно будет собрать минимальное ядро линукса по размеру не большее какого-либо микроядра

Если вы не в курсе, то подавляющее большинстов embedded железок с Linux на борту имеют ядро по размеру не превышающее 1mb, при этом поддерживается все оборудование, причем очень часто не модулями.

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

>vadiml ** (*) (09.05.2006 15:39:58)

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

> Файловая система появилась для внешних накопителей с большим объемом. Для прикладного ПО - это просто контейнеры.

Весьма спорное утверждение. Вам, видать, не часто приходится писать кроссплатформенные программы.

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

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

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

>Микроядерность заключается не в возможности что-то собрать модулем или статически, а, в первую очередь, взаимодействием компонентов системы. В монолитном ядре такое происходит в явном виде (вызов функций например), а в микроядерном подходе необходимо создавать механизм межпроцессорного взаимодействия, который будучи объединен с нетривиальностью многих драйверов и аппаратуры, приводит к чрезвычайной сложности и как следствие серьезному падению производительности.

Если сюда добавить любимое многими разделение на кольца защиты, то производительность снова понизится. Двух колец более чем достаточно, как показывает мировая практика.

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

> Микроядерность заключается не в возможности что-то собрать модулем или статически

это я знаю, Таненбаума читал

я про другое - возможно в процессе развития ядра линукса появится возможность собрать его как монолитным, так и микроядром. Просто модульным уже очень многое сделали. Осталось добавить возможность загружать эти модули на другом уровне. Проблема только в том, КАК это сделать и в тоже время не потерять скорость на межпроцессном взаимодействии.

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

> Если сюда добавить любимое многими разделение на кольца защиты, то производительность снова понизится. Двух колец более чем достаточно, как показывает мировая практика

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

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

> Проблема только в том, КАК это сделать и в тоже время > не потерять скорость на межпроцессном взаимодействии.

это не проблема. Это просто невозможно.

Сравнивать инструкцию call с массой телодвижений с постановкой/отправкой/принятием сообщения в/их очереди этих сообщений..... ну... тяжко как минимум :)

НЕВОЗМОЖНО не потерять производительность на микроядре. Даже простое переключение контекста (а каждое дровижко там в отдельном процессе!) это УЖЕ далеко не просто call/ret...

Хотя, даже не эти несколько сотен инструкций на передачу управления в другой модуль проблема. Счас железо вприницпе, на уровне. Проблема в офигенной сложности этого всего. И то, что УЖЕ наработанное в линухе будет практически невозможно перенести на архитектуру микроядра (это просто никто не захочет делать. Были бы желающие - уже были бы проекты)

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

>> Если сюда добавить любимое многими разделение на кольца защиты, то производительность снова понизится. Двух колец более чем достаточно, как показывает мировая практика

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

В отличии от теоретических рассуждений, я проводил эксперименты с Linux, время одного пустого системного вызова (как раз переключение между двумя кольцами) занимает на моих системах около 100 ns (amd64 nforce4). Конечно сам системный вызов выполняет еще немало дополнительных действий, но подобные же действия нужно будет делать при передачи данных из драйвера сетевой карты в обработчик протокола, откуда затем в userspace - в Linux это происходит за 1 системный вызов, т.е. за одно переключение между кольцами, т.к. softirq, где происходит обработка протоколов, находятся в kernelspace.

В микроядре (кстати, minix умеет работать с сетью?), по законам жанра, сетевой драйвер будет в отдельном потоке на отдельном кольце, т.о. мы получим 2 системных вызова (userspace->protocol handler, protocol hanler -> NIC irq).

В микроядре _КАЖДОЕ_ обращение между различными подсистемами будет занимать столько времени.

>vadiml ** (*) (09.05.2006 15:58:38)

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

> Никогда в общем-то, так что они даже до динозавров не дотянули...

"Ваша честь, он признался!". Так и запишем: "микроядерные ОС ни разу не похожи на динозавров, скорее уж, на мелких грызунов, которые даже до динозвров не дотянули". Пойдет?

> Некоторыми считается, что они нападали всегда на более крупную жертву, чем сами, например травоядных "сородичей" динозавров, поэтому стаей просто удобнее. Это не говорит о каком-то разуме.

А о разуме никто и не говорит. Интеллект и разум -- это не одно и то же. Сюрприз?

> Можно также предположить, что т.к. собака может убить маленького ребенка, а не наоборот, то последний обладает меньшим интеллектом.

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

> Все дело в развитии, которого у многих животных не могло быть.

Мысль здравая, но не законченная. К чему это?

> А при чем тут размер?

Ваша честь, разрешите процитировать оппонента:

> А мелкие животные вокруг, как например обезьяны

(С) rtc (*) (09.05.2006 14:13:02)

Прошу высокий суд обратить внимание на то, что оппонент пытается отказаться от своих показаний. В противном случае попрошу оппонента истолковать свое понимание словосочетания "мелкие животные вокруг" в применении аналогии к операционным системам!

> Вы тоже считаете, что монолитность ядра определяется размером файла bzImage? Выкиньте все архитектуры и все драйвера - будет то же самое, что qnx, маленькое, быстрое и компактное никому не нужное ядрышко.

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

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

В общем, для тех, кто ниасилил: "Never say never again" :-)

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

> В микроядре _КАЖДОЕ_ обращение между различными подсистемами будет занимать столько времени.

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

> кстати, minix умеет работать с сетью?

умеет

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

>> Двух колец более чем достаточно, как показывает мировая практика.

> Аха. А 640 килобайт достаточно для любых приложений. :-)

А Вы не просветите нас сколько колец у Athlon'a в 64-х битном режиме?

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

> Проблема в офигенной сложности этого всего. И то, что УЖЕ наработанное в линухе будет практически невозможно перенести на архитектуру микроядра

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

остаётся только запускать линух поверх микроядра

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

>>>Я изучал ядра и оси вдоль и поперек...

А нельзя ли поскромнее ? Я уверен, что ниодна/ниодно так и не было _изучено_. Я уж не говорю о том, чтобы сделать хоть самую мизерабельную доработку сабжа. LOR, как всегда, радует обилием продвинутых ламеров и горлопанов.

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

>> ясно что архитектура операционной системы и конечного-пользователя-experience вещи крайне слабо взаимосвязанные

> Если я правильно понял, он полагает что низкий уровень оказывает сильное влияние на прикладной.

может быть. но из этого никак не следует что M$ всенепременно испортит singularity

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

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

А если это дело автоматизировать?

Ведь сколько уже было мифов, что написание на C снижает производительность по сравнению с написанием на ассемблере, затем был миф о том, что организация сложных конструкций в стиле ООП на C++ или Eiffel существенно снижает производительность по сравнению с чистым C. Недавно считали, что механизм виртуальной машины Java сложен и, как следствие, ведет к серьезному падению производительности. И что? Каждый раз проходило некоторое время, и оказывалось, что это не так.

Вот и сейчас, как оказалось, в Sing# оккамовские каналы рулят не по детски с точки зрения прикладного программиста, хотя бы тем, что позволяют, в отличие от процедурных вызовов, проводить формальную верификацию взаимодействия, обнаруживая ошибки времени исполнения еще (уже?) на этапе компиляции. Причем заметьте, что, в отличие от процедурного вызова, это асинхронное взаимодействие, которое в существующих системах отдается на откуп прикладникам, в результате чего ни Linux ни Windows без доточки напильником ни разу не могут быть RTOS. Потому-то эта ниша так крепко держится за QNX и TRON, а последняя, если мне не изменяет склероз, держит рынок всех встраиваемых ОС для бытовой и автомобильной электроники (это для тех, кто сомневается в огромной емкости рынка микроядерных систем).

С другой стороны, оккамовский канал -- это не более, чем... высокоуровневое представление банального транспьютерного канала межпроцессорного взаимодействия. Короче, сейчас только ленивый не пнул x86 за ее неумение организовывать межпроцессные вызовы. Однако, если человечество таки спрыгнет с этой иглы, и таки появятся архитектуры, заточенные под асинхронные взаимодействия, а случится это в эпоху массовых распределенных вычислений (однако для этого нужно, чтобы перестал действовать закон Мура), вот тогда микроядерные ОС вполне могут взять реванш. Кстати, Plan9 и Inferno, кажется, тоже микроядерные?

Ага, а вот в этом месте могла еще быть длинная и драматическая история X-протокола и основанных на нем графических решений в *NIX-мире. А еще можно вспомнить, какие уроды работают в Microsoft, если они вначале внедрили графическую подсистему в ядро (монолит рулит!), а затем долго и нудно в Висте выковыривали обратно (и зря, посмотрите на требования к аппаратуре!). В отличие от правильных линуксоидов, которые, следуя религии монолитного ядра старательно двигаются в противоположном направлении. Впрочем, что это я? Здесь ведь все взрослые люди, думать умеют сами...

В общем, без стеба, могу резюмировать следующие условия выхода микроядерных ОС из своей ниши:

1. Широкое распространение и бурный рост рынка распределенных вычислений, в том числе, в связи с real-time обработкой звука и видео.

2. Повышение роли mission-critical приложений, в том числе, в сфере бытовых приборов, то есть, не только управлении ядерным реактором, но и в бортовых системах личных вертолетов и интеллектуальных домов.

3. Дальнейший рост производительности аппаратного обеспечения.

4. Появление аппаратуры, заточенной под распределенные вычисления в связи с пределом закона Мура.

5. Появление средств массовой разработки распределенных асинхронных вычислений с высоким уровнем автоматизации и формальной верификации качества кода.

Dixi.

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

>> Никогда в общем-то, так что они даже до динозавров не дотянули...

>"Ваша честь, он признался!". Так и запишем: "микроядерные ОС ни разу не похожи на динозавров, скорее уж, на мелких грызунов, которые даже до динозвров не дотянули". Пойдет?

В виду отсутствия у вас других аргументов, пойдет.

>> Некоторыми считается, что они нападали всегда на более крупную жертву, чем сами, например травоядных "сородичей" динозавров, поэтому стаей просто удобнее. Это не говорит о каком-то разуме.

>А о разуме никто и не говорит. Интеллект и разум -- это не одно и то же. Сюрприз?

>> Можно также предположить, что т.к. собака может убить маленького ребенка, а не наоборот, то последний обладает меньшим интеллектом.

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

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

>> Все дело в развитии, которого у многих животных не могло быть.

>Мысль здравая, но не законченная. К чему это?

>> А при чем тут размер?

>Ваша честь, разрешите процитировать оппонента:

>> А мелкие животные вокруг, как например обезьяны

>(С) rtc (*) (09.05.2006 14:13:02)

>Прошу высокий суд обратить внимание на то, что оппонент пытается отказаться от своих показаний. В противном случае попрошу оппонента истолковать свое понимание словосочетания "мелкие животные вокруг" в применении аналогии к операционным системам!

Вы несете чушь и рассказываете о высокий материях, т.к. по существу вопроса вам нечего сказать.

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

>> Вы тоже считаете, что монолитность ядра определяется размером файла bzImage? Выкиньте все архитектуры и все драйвера - будет то же самое, что qnx, маленькое, быстрое и компактное никому не нужное ядрышко.

>Ну почему же? Под размером можно понимать количество строк исходного кода, которые необходимо скомпилировать, чтобы конкретная ОС пошла на конкретной аппаратуре. При одинаковости аппаратной платформе сравнение двух ОС по размерам вполне корректно.

:) и наверняка какая по размеру меньше, та и лучше?

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

Вы подменяете понятия - те, кто не мог стать лидером, уже не станут. Инопланетяне могут прийти на смену людям, но никак не бегемоты. Микроядро уже упустило свои позиции. Монолитный подход может что-то сменить, но это будет совсем не то, что выдумывают в MS и о чем рассказывают в академиях теоретики, никогда не работавшие с настоящим оборудованием. UNICS тоже ведь инженеры писали.

>В общем, для тех, кто ниасилил: "Never say never again" :-)

Полагаю, вы поняли, что же я хотел донести.

>eugine_kosenko * (*) (09.05.2006 16:21:47)

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

>> Двух колец более чем достаточно, как показывает мировая практика.

>Аха. А 640 килобайт достаточно для любых приложений. :-)

:) вы же снова не в теме. Все оборудование уменьшяет количество колец, а не наоборот.

Количество памяти растет, а не стоит на месте.

Вы все еще не понимаете?

>eugine_kosenko * (*) (09.05.2006 16:29:18)

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

>>> Двух колец более чем достаточно, как показывает мировая практика.

>> Аха. А 640 килобайт достаточно для любых приложений. :-)

>А Вы не просветите нас сколько колец у Athlon'a в 64-х битном режиме?

Но нужно больше :) Чтобы микроядро работало хорошо, и прогнозы сбывались.

>vadiml ** (*) (09.05.2006 16:33:01)

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