LINUX.ORG.RU
ФорумTalks

FreeBSD пришел микроядрец


0

0

Цитата из книги Майкла Эбена и Брайана Таймэна «FreeBSD. Администрирование: искусство достижения равновесия».

Во FreeBSD используется микроархитектура ядра (microkernel architecture), т.е. ядро как таковое является сравнительно небольшим и модульным. Операционные системы Windows NT и Mach (ядро, на основе которого построена система Mac OS X) также представляют нам примеры микроядер, где новые устройства зачастую добав-ляются как модули, которые можно загружать или выгружать на этапе исполнения без перекомпиляции ядра. Linux и Windows 95/98 являются монолитными (monolithic) ядрами, где код ядра оптимизирован для более высокой производительности с минимальными контекстными переключениями. Такая архитектура упрощает поддержку кода ядра для разработчиков, но в большинстве случаев требует от администратора перекомпиляции ядра всякий раз, когда добавляется поддержка нового устройства. Разумеется, такое разделение является не вполне точным, Linux, например, поддерживает модули, а ядро FreeBSD иногда требует перекомпиляции. Различие между микро- и монолитной архитектурой ядер является в определенной мере философским и связано с большим кругом вопросов, чем просто поддержка устройств. Фундаментальное отличие состоит в следующем: механизм микроядра позволяет передавать вызовы, не принадлежащие основной системе, пользовательскому уровню обработки вместо их внутренней обработки. В этом случае ядро включает лишь самые необходимые элементы, которые требуют наивысшего статуса выполнения. Целью такой архитектуры является повышение устойчивости ядра на этапе исполнения, возможность управления процессами, обеспечение легкости в поддержке модулей устройств.

Я чего-то не знаю о FreeBSD?


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

Сомневаюсь что с пятой версии что-то тут сильно поменялось.

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

>Во фряхе, насколько я помню, такое же модульное ядро как и в линуксе. И точно также можно модули вкомпиливать в само ядро. Сомневаюсь что с пятой версии что-то тут сильно поменялось.

Я про это и говорю, откуда автор высосал это говно? Это написано в довольно популярной книге.

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

> откуда автор высосал это говно?

Димез сказал бы что из пальца..

Кстати, а как классифицировать микроядерную архитектуру? Четыре кольца защиты - это чисто интеловские приколки вроде?

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

>Кстати, а как классифицировать микроядерную архитектуру? Четыре кольца защиты - это чисто интеловские приколки вроде?

Не могу связать эти два вопроса.

Вот что говорит о микроядре Педивикиа:

Микроядро — это минимальная реализация функций ядра операционной системы.

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

Сюда относятся:
1. управление адресным пространством оперативной памяти.
2. управление адресным пространством виртуальной памяти
3. управление процессами и тредами (нитями, потоками)
4. средства межпроцессной коммуникации.

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

Такая конструкция позволяет улучшить общее быстродействие системы (небольшое микроядро может уместиться в кэше процессора).

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

Недостаток — плата за принудительное «переключение» процессов в ядре (context switch); этот факт собственно и объясняет трудности в проектировании и написании ядер подобной конструкции. Эти недостатки способны обойти ОС, использующие архитектуру экзоядра, являющуюся дальнейшим развитием микроядерной архитектуры.

Примеры операционных систем на основе микроядра: QNX, L4, Minix3, GNU/Hurd.

aspell
() автор топика

Вот еще нашел интересное:

Гибридное ядро (англ. Hybrid kernel) — модифицированные _микроядра_ (минимальная реализация основных функций ядра операционной системы компьютера), позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра.

В примерах есть "BSD-основанные". Т.е. получается FreeBSD имеет гибридное ядро? Т.е. у FreeBSD фактически микроядро?

aspell
() автор топика

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

Мдя.... =\

Ладно, меня эта безграмотная хрень не удивляет. _ДОПУСТИМ_ такое определение микроядра. Хрен с ними. Но вот что мне действительно непонятно --- то почему у них вдруг Linux не попал в это определение? Я что-то пропустил, и в Linux новые устройства уже не добавляются "как модули, которые можно загружать или выгружать на этапе исполнения без перекомпиляции ядра"?

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

>Ладно, меня эта безграмотная хрень не удивляет. _ДОПУСТИМ_ такое определение микроядра. Хрен с ними. Но вот что мне действительно непонятно --- то почему у них вдруг Linux не попал в это определение? Я что-то пропустил, и в Linux новые устройства уже не добавляются "как модули, которые можно загружать или выгружать на этапе исполнения без перекомпиляции ядра"?

Я этого тоже не понял. Вопрос все еще на повестке дня, FreeBSD - МИКРОЯДРО?

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

насколько я помню у микроядерных очень мало функций работает в режиме ядра, драйверы и прочая выносятся в юзерспейс, у некоторых систем(если ничего не путаю) даже управление процессами происходит в юзерспейсе. //Хмм, тогда как запретить изменение таблицы процессов? Придется опять Таненбаума открывать, склероз атакуэ :(

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

Глянул в википедию - действительно я напутал. Упр-е процессами и IPC остается в ядре.

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

>>FreeBSD - МИКРОЯДРО?

>нет


OH SHI~, а я уже так надеялся приводить ее в пример, как самую удачную реализацию микроядра.

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

>>FreeBSD - МИКРОЯДРО?

>нет

хотя бы потому что дисковая и сетевая подсистемы находятся в ядре FreeBSD.

P.S. Сравниваю только с minix, т.к. про остальные системы ничего не знаю :). В этом маленьком пдфе http://www.minix3.ru/articles/introduction_minix3.pdf на второй странице как раз кратко говорится об архитектуре minix.

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

>хотя бы потому что дисковая и сетевая подсистемы находятся в ядре FreeBSD.

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

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

>P.S. Сравниваю только с minix, т.к. про остальные системы ничего не знаю :). В этом маленьком пдфе http://www.minix3.ru/articles/introduction_minix3.pdf на второй странице как раз кратко говорится об архитектуре minix.


Спасибо хза pdf'ку, читаем-с. QNX тоже микро.

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

Во блин знатоки.

Почти микроядро было только у Windows NT 4.0 и ниже.

У Windows 2000 и выше ядро гибридное.

У Linux ядро монолитное.

У BSD ядро гибридное.

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

Ну мс нашли главный недостаток мкроядерной архитектуры, её придумали не они.

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

>У Linux ядро монолитное.

Ээээ. Да.

>У BSD ядро гибридное.


А разве не похожее на Linux? Гибридное, судя по педивикии - фактически микроядро. Т.е. FreeBSD - микроядро?

aspell
() автор топика

А с каких это пор офтопик с прибитой намертво гвоздями графикой стал обладать полноценным микроядром? 0_о

Freiheits-Sender ★★
()

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

Да, и у Windows NT ядро гибридное.

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

> Виндовс NT насколько мне известно гибридное ядро, не?

У 3.51 было микро.

Но больше всего в персом посте развеселило про "перекомпиляцию" Win9x. :)))

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

Re^2: FreeBSD пришел микроядрец

> У БСД всегда было наноядро

Ждем Free/Open/LSD на пикоядре.

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

А мне про Windows 95/98 очень понравилось :)

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

>> из пальца

>Странный тогда у него какой-то палец....

Ну почему-же? Нормальный палетс. Другой вопрос, где он им ковырялся?

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

>Во блин знатоки.

И не говори:)

>Почти микроядро было только у Windows NT 4.0 и ниже.

Почти, это как? Это как свежевыебаная баба - почти беременная?

>У Windows 2000 и выше ядро гибридное.

Не неправильно. Надо так "почти гибридное" ну и дальше см. п. 1.

>У Linux ядро монолитное.

Версии 0.1 - да, а остальных версий наверно не существует на свете.

>У BSD ядро гибридное.

И давно у этого гибрида драйвера в юзерспейс перекочевали?

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

> Не могу связать эти два вопроса.

> Сюда относятся: > 1. управление адресным пространством оперативной памяти. > 2. управление адресным пространством виртуальной памяти > 3. управление процессами и тредами (нитями, потоками) > 4. средства межпроцессной коммуникации.

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

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

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