LINUX.ORG.RU

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


0

0

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

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

★★★

Проверено: Shaman007 ()

>подвигнувшей Линуса Торвальдса к написанию линукса

Глупость какая...

Cybem ★★
()

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

всё ничего было бы, да вот только матросов надо в 2 раза больше кормить, чтоб быстро из отсека в отсек бегали

Pi ★★★★★
()

Мне вот это понравилось:

>One study of software reliability showed that code contains between six and 16 bugs per 1,000 lines of executable code, (1) while another study put the fault density at two to 75 bugs per 1,000 lines of executable code, (2) depending on module size. Using a conservative estimate of six bugs per 1,000 lines of code, the Linux kernel probably has something like 15,000 bugs; Windows XP has at least double that.

Научный подход однако ;)

Статистика как третья разновидность лжи. Уважаемый профессор впал не то в маразм, не то в пиар.

guardian
()

Юзер спей драйвера? Или на альтернативных от x86 процах тоже по 4 кольца защиты? Перфоманс конечно упадет - но глядишь можно будет и на продакшен сервере драйвера USB отлаживать :D

zZzZ
()

Дедушка зациклился на идее молодости. Примерно как Вирт, который в сентябре 2005 на своей лекции в МГУ рассказывал о достоинствах Паскаля по сравнению с C и Algol 66

krasin
()

Отец Эндрю Таненбаум прав, но и Отец Линус Торвальдс прав тоже.

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

А вот и дальше ;)

> One study of software reliability showed that code contains between six and 16 bugs per 1,000 lines of executable code, (1) while another study put the fault density at two to 75 bugs per 1,000 lines of executable code, (2) depending on module size. Using a conservative estimate of six bugs per 1,000 lines of code, the Linux kernel probably has something like 15,000 bugs; Windows XP has at least double that.

guardian
()

выполз старый таненбаум, пропел старую песню монолит vs. микроядро, пропиарил лишний раз микрософтовскую Singularity.

хотя главная фишка singularity вовсе не миркоядро, а SIP

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

Не то, вот пиар

>Minix 3's reliability comes from multiple sources. First, only about 4,000 lines of code run in the kernel, so with a conservative estimate of six bugs per 1,000 lines, the total number of bugs in the kernel is probably only about 24—compared with 15,000 for Linux and far more for Windows.

guardian
()

ИМХО Таненбаум абсолютно прав! Тем кто придерживается иного мнения ОБЯЗАТЕЛЬНО читать его книгу "Рспределенные системы, принципы и парадигмы". Затем прикинуть как на все это красиво накладывается идея микроядра.

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

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

Но сделать из эмулятора терминала ядро ОС - после того как он вместо модема позвонил на НЖМД.

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

> Старичку все обидно?

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

Подробности (для тех кто осилит) есть в статье Jochen Liedtke "Improving IPC by Kernel Design" http://portal.acm.org/citation.cfm?coll=GUIDE&dl=GUIDE&id=168633

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

даже просто поискав в гугле Jochen Liedtke "Improving IPC by Kernel Design" вываливается куча рассуждений на эту тему

но чукча - писатель

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

> Почитай книгу "Just For Fun" от Линуса.

Это не момешает, там описано как закалялась сталь :) Забавная книжка.

los_nikos ★★★★★
()

Интересующихся этой темой советую прочитать статью в журнале "Компьютерное обозрение" (Украина) №16, называется "Ради безопасности".

Главная мысль такова:

Разработчики микроядра Hurd признают тупиковость его развития и практически отказываются от этого. И тут на арену выходит микроядро второго поколения L3, созданное Е.Лидке еще в 1993 году думонстрировавшее впечатляющее превосходство над микроядром Mach (от 3-х кратного до 20-кратного). Все что по этому поводу сейчас реализовано, можно посмотреть в исследовательской ОС технического университета Дрездена TUD:OS, основанной на коде микроядка L4/Fiasco.

Пересказчик с меня плохой, но статья хорошая. У кого есть возможность - прочитайте, оно того стоит.

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

> Линуса, помнится, на написание linux подвигла убогость терминала в minix :)

А ты, наверное, Линусу свечку держал во время этого занимательного процесса?

los_nikos ★★★★★
()

Цитата из комментариев на ./

Что тут ещё добавить?

I'm more than a Linux hacker. I actually worked on a commercial microkernel OS.

Kernels don't often crash for reasons related to lack of memory protection. It's quite silly to imagine that memory protection is some magic bullet. Kernel programmers rarely make beginner mistakes like buffer overflows.

Kernels crash from race conditions and deadlocks. Microkernels only make these problems worse. The interaction between "simple" microkernel components gets horribly complex. It's truly mind-bending for microkernel designs that are more interesting than a toy OS like Minux.

Kernels also crash from drivers causing the hardware to do Very Bad Things. The USB driver can DMA a mouse packet right over the scheduler code or page tables, and there isn't a damn thing that memory protection can do about it. CRASH, big time. A driver can put a device into some weird state where it locks up the PCI bus. Say bye-bye to all devices on the bus. A driver can cause a "screaming interrupt", which is where an interrupt is left demanding attention and never gets turned off. That eats 100% CPU. If the motherboard provides a way to stop this, great, but then any device sharing the same interrupt will be dead.

I note that Tanenbaum is trying to sell books. Hmmm. He knows his audience well too: those who can't do, teach. In academia, cute theories win over the ugly truths of the real world.

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

Mone talks bullshit walks. Идея у микроядра красивая, да только кто реализует ее полностью, ни разу не применив костыль или грязный хак? Да и будет ли выгода, не съест ли ее сложность интеркоммуникации.

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

Ой, да ладно, получится как всегда или никак. Придет менеджер, скажет быстрее, программист сделает вот так:

//OMG, fire me if I know how does it work

<code>

Shaman007 ★★★★★
()

Надо - не надо... Монолит - микроядро...

Работает? И ладно.

Если микроядро ко-то делает - значит оно кому-то нужно, а если не далют - значит никому не нужно. Линукс нужен многим.

А по поводу ошибок - ведь их можно и не делать...

ip1981 ☆☆
()

Ждем очередного ответа Торвальдса! :)

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

Че-то не вижу я ни одной широкоииспользуемой оси на микроядре. Не надо про винду, микроядром это назвать сложно. Идея конечно оттуда, но вот исполнение... Это скорее гибридное ядро. Как впрочем и linux.

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

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

> Юзер спей драйвера?

Продолжая аналогию - это когда каждый матрос живёт в собственной подвесной шлюпке? :)

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

> Продолжая аналогию - это когда каждый матрос живёт в собственной подвесной шлюпке? :)

А работает в водолазном костюме. %)

Sano
()

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

O-Ren_Ishii
()
Ответ на: комментарий от O-Ren_Ishii

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

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

>на коде микроядка L4/Fiasco

микроядок - очень маленький йад?

Buba
()

Блин, идея чертовски красивая... Только вот кажется мне, что пока железо не поменяют, ничего нового в ядрах не будет. ИМХО, микроядра будут не уступать в производительности монолитам, если коммуникацю между дровами, ядром и сервисами в железе реализуют. Только не будет этого НИКОГДА. Мы навечно застряли в x86...

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

> code contains between six and 16 bugs per 1,000 lines of executable code

Это просто абзац какой-то... Что б я так писал! 6-16 ошибок на 1000 строк допустимо когда код писался, но не отлаживался при этом. Для отлаженного кода даже 1 ошибка на 1000 строк это много.

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

>а че так все критикуют?

Конечно критикуют. Привыкли на всем готовеньком.

Линукс ядро хорошо лишь тем, что временно помогло сообществу в продвижении открытого подхода. Вред Линукс ядра пока мало кто понимает. Этот вред уже гораздо больше принесенной пользы.
Как было удобнее в силу психологии человека? Развивать то, что понятнее.
Что понятнее? То, что проще.
Проще, быстрее и понятнее для большинства с самого начала было развивать монолитное ядро.
Логика бардака определяемого приспосабливаемостью Линукс ядра переползла уже не только на Линукс системы.
Это так же одна из сторон отсутствия стандартизации в мире открытых систем. Поэтому и стали возможны тучи разных проектов со сходной функциональностью. Нет смысла оценивать эффективность конкурентного развития по сравнениею с единственно верным при одинаковых ресурсах.
Мы живем в первобытное время :) , когда все еще нет системы, которая без эмоций свойственных людям, динамически подбирает, вероятно, наилучшее решение на основе всех имеющихся данных. Одним из приближений может быть, например, наиболее эффективное на каждый момент времени сочетание аппаратной и программной частей... пока такое вообще разумно :) с аналогично определенной точки зрения.

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

>по моему, мысль правильная - только вот кто ее реализует?

Уже реализовано. Я изучал ядра и оси вдоль и поперек.
У всех недостатки.
Хорошо, что самое классное микроядро и соответственно систему на нем создал наш соотечественник. Система эта uOS www.vak.ru
В ней просто не к чему придраться. Пока я не встречал более простую и красивую открытую реализацию микроядра общего назначения.

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

Подход же Оберон систем на самом деле не так уж и хорош. Модуль System в Bluebottle в определенном смысле то же микроядро. Однако, все равно сложно оценить: ОС с микроядром или ОС, как среда исполнения.

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

Гуткнехт и другие в своих ОС доказывают обратное.

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

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

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

Исторический же опыт подтверждает, как зависима основная биомасса :) от сиюминутных кумиров. Как только естественные приспособленцы получают задаром нечто лучшее, чем то, что было у них до этого, они закономерно переходят в новый лагерь. Это нормально и естественно для людей. Отречение же :) почти всегда требует определенных жертв.

Самое страшное в Линукс ядре то, что мы получаем программистов и пользователей систем, которые мыслят в категориях, например, тех же окошек... то есть бардак в архитектурах ОС принимается, как данное. Готовы до бесконечности спорить, что лучше, например, Gnome или KDE, вместо того, чтобы задуматься, правильно ли, что все именно так а не иначе.

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

Может кто прямо в комментарии запостить преимущества микроядерных систем вкратце?

lexius ★★
()

Есть новое решение проблемы с изоляцией ошибок в ядре которое не совсем новое, но вновь вспомненое Микрософтом в их исследовательском проекте.
http://research.microsoft.com/os/singularity
Вообщем переключения контекста которые в микроядре особенно распространенны можно выкинуть вообще:)
Можно также забыть о переполнении буферов, вопрос только какая будет скорость работы и насколько хорошо будет сделана обратная совместимость.

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

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

Кстати что-то давно ничего нового о singularity не слышно. Только technical reports иногда появляются..

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

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

Куда уж смелее...

Toster... если уж пишешь... то придерживайся исторической справедливости.

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

Я уже писал, известно та же Java - не лучшая реализация идеи Вирта. Sun не отрицает, это известный факт, что они что-то платили институту ETH, что-то безвозмездно получили. Много с Виртовской коммандой советовались. Вирт молодец, что на основе его работ в итоге появились жизнеспособные концепции.

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

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

Так что, что тут догонять - бери Bluebottle и рихтуй. Это M$/у догонять и догонять... как обычно.

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

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

Мы все ждем, а оно все не бегает. Вообще с бегом сложно справляется. Как думаешь, среди n-ти разработчиков одни дебилы? ;)

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

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

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

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

Тем не менее борьба пошла windows vs linux. А simbian пока что с каждым годом теряет долю рынка.

>Это так же одна из сторон отсутствия стандартизации в мире открытых систем. Поэтому и стали возможны тучи разных проектов со сходной функциональностью.

Конкуренция должна быть всегда.

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

И грамматику, помнится, тоже...

>Гуткнехт и другие в своих ОС доказывают обратное.

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

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

>Мы все ждем, а оно все не бегает.

Бегает вполне себе так нормально, навскидку:
QNX
uOS

Вот здесь на русском некоторые мои заметки молодости :) по поводу осей, там почти все устарело и не правильно - перенес из старой конференции http://www.teleology.ru/1/viewtopic.php?id=109 , но кому интересно могут хоть по названиям поизучать.

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

Тебе бы Жень только поспорить, как обычно :).

>Тем не менее борьба пошла windows vs linux.

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

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

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

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

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

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

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

>>Гуткнехт и другие в своих ОС доказывают обратное.

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

Рынки...
Рынки...
Рынки...
Чувствуешь?
Приятно, что ты иногда сам на свои вопросы сразу отвечаешь :) .

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

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

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

Это - другой уровень.

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

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

> Рынки... > Рынки... > Рынки... > Чувствуешь?

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

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

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