Эндрю Таненбаум подвел итог в споре о микроядерной архитектуре Andrew S. Tanenbaum опубликовал документ резюмирующий основные доводы сторон в споре о достоинствах и недостатках микроядерной и монолитной архитектуры ядра операционной системы.
Спор возник после того как Таненбаум опубликовал статью "Can We Make Operating Systems Reliable and Secure?", в которой утверждал, что потери производительности при использовании микроядра компенсируются простотой реализации и более высокой надежностью и безопасностью ядра.
По этому поводу возникла дискуссия, в в которой не замедлил высказать свое мнение Linus Torvalds и основываясь на собственном опыте, попытался опровергнуть идеализированное представление о микроядерной архитектуре.
[Прислал brasset] |
Комментарии |
Комментарии: 178
Зарегистрирован: 24.03.2005 17:32
| Думаю, встреча на ринге в боксерских перчатках определила бы кто из них прав! |
|
Комментарии: 240
Зарегистрирован: 01.07.2004 14:57
| Глупо. Сам факт такой встречи был бы свидетельством того, что технология традиционных ядер ОС устарела, вне зависимости от архитектуры. Публичная перепалка говорит о том же, но не так резко. |
|
Комментарии: 178
Зарегистрирован: 24.03.2005 17:32
| Сам факт такой встречи/перепалки говорит только о том, что все мы мастера флуда. А чтото новое и более современное никто предложить то и не может...
P.S. А если кто и предлагает то как то слишком тихо. |
|
Комментарии: 28
Зарегистрирован: 02.02.2005 13:17
| 2Freeman Сам факт такой встречи был бы свидетельством того, что технология традиционных ядер ОС устарела, вне зависимости от архитектуры. Назначение ядра ОС - распределение ресурсов процессора можду потоками, и обеспечение рабочего окружения для остальных компонентов ОС. Если ядро выполняет эти задачи - оно не может устареть. Все отстальное фичизм - изобретение технологий и наворачивание модных фишек, которые по сути не нужны, т.к. действительно необходимые действия уже выполняются. Эта же тенденция в развитии ОС: куча "технологий", которые не более чем "фичи". |
|
Комментарии: 240
Зарегистрирован: 01.07.2004 14:57
| Нельзя проектировать новые технологии на старых парадигмах - получаются именно "технологии" с "фичами". С назначением ядра как распределителя ресурсов и потоков полностью согласен, но это совершенно не означает, что нельзя построить среду без потоков и с совершенно другим подходом к распределению ресурсов. |
|
Комментарии: 523
| Freeman И что не так? Старое ядро с новыми возможностями... Что не так? Чем мешают потоки? Или так: что даст их отсутствие? |
|
Комментарии: 28
Зарегистрирован: 02.02.2005 13:17
| 2 Freeman новые технологии на старых парадигмах - получаются именно "технологии" с "фичами" Батенька, а что такое "новые парадигмы", которые должны обеспечить функционирование новых технологий? Что-то я сильно подразумеваю, что ваш ответ будет рассказывать о "фичевых надстройках". Не так? Задача ОС - обеспечить функционирование пользовательских приложений, и обеспечить конечную функциональность конеретного устройства (ввместе со своими приложениями); задача Ядра ОС - (писал выше); все остальное - фичизм!Опровергайте конкретикой, а не общими фразами. |
|
Комментарии: 78
Зарегистрирован: 18.08.2005 04:25
| Вопросы для истинного любителя пофлудить: Что есть ядро? В чем смысл ОС? Зачем вообще нужен этот чертов компьютер?
brasset написал(а) ... Задача ОС - обеспечить функционирование пользовательских приложений, и обеспечить конечную функциональность конеретного устройства (ввместе со своими приложениями) Перерыв кучу книг по информатике, вы нигде не найдете исчерпывающего определения операционной системы. Как и многие простые понятия, его очень сложно точно определить. С задачами ОС тоже не все гладко. Наводящий вопрос: какое отношение ОС может иметь к "обеспечению функциональности устройства", которое вчера вышло на рынок, или которое Вася Пупкин спаял у себя в гараже?
brasset написал(а) ... Назначение ядра ОС - распределение ресурсов процессора можду потоками, и обеспечение рабочего окружения для остальных компонентов ОС. "Распределение ресурсов процессора можду потоками" лишь частный случай управления аппаратными ресурсами, к коим относятся процессоры, память, порты ввода-вывода. Что касается "обеспечения рабочего окружения для остальных компонентов ОС" - вот она, истина! Рассмотрим реальный пример. Есть GNU. С тем, что это ОС никто спорить не будет? Где у нее обеспечивается рабочее окружение? Обеспечивается оно следующим: 1. Среда времени выполнения для Си- и Си++-программ. (new, strcpy...) 2. Управление процессами. (fork, exit...) 3. Концепция файловой системы. (mount, fopen...) 4. Динамическая загрузка модулей. (dlopen...) 5. ...дописать все нужное Основными концепциями GNU, как и любого Юникса, являются единое пространство имен файловой системы, модель плоского файла, использование Си и Си++. Используя определение brasset-а получаем: POSIX == ядро. Оно переносимо и полностью абстрагированно от аппаратуры. Оно является центральной частью системы, без которой функционирование невозможно. Оно достаточно для построение любых других программых систем поверх него. Ну разве это не ЯДРО?
Далее. Есть GNU/Linux. Есть GNU/Hurd. Есть GNU/Windows (mingw == minimalistic GNU on Windows). Все это - ОДНА операционная система. И ЯДРО (в вышеуказанном понимании) там тоже ОДНО - из одного дерева исходников собиралось.
Что в данном случае Linux, Hurd и (применительно к mingw ) Windows? Это некоторый набор программ, обеспечивающий 1) набор примитивов для запуска и работы ядра в конкретном аппаратно-программном контексте и 2) взаимодействие с устройствами ввода-вывода. Как видим, второй пункт не всегда имеет место быть. Называть ЯДРОМ ОПЕРАЦИОННОЙ СИСТЕМЫ программу мультеплексирования аппаратных ресурсов - это довольно глупо. Тем не менее, название прижилось с давних времен. Увы.
Спор Таненбаума и Торвальдса - это спор о довольно частной проблеме. К вопросам системного дизайна он отношения не имеет. По этому и кажется, что нет новых идей.
Что касается "беспоточности". Я не знаю, что имел ввиду Freeman, но я вижу проблему так. Пусть есть компьютер, состоящий из множества процессоров. (Количество исчисляется сотнями, если не тысячами.) Задания компьютеру даются на языке запросов, подобном SQL. Парсер запросов выстраивает оптимизированный (оптимальный) путь решения задачи. Автоматически производится максимальное распараллеливание отдельных подзадач на имеющиеся процессоры. Так например, в выражении A(x) + B(x) аргументы высчитываются независимо на двух разных процессорах. Тот процессор, который закончит вычисления первым, оставляет результат для второго процессора, а сам приступает к следующей задаче, ждущей выполнения. Второй процессор заканчивает вычисление своего аргумента, "подбирает" результат первого процессора и производит сложение. Поддержка параллельности на такой архитектуре будет аппаратной, а не программной. Понятно, что "явные" потоки здесь бессмыслены. Также бессмыслено говорить о переключениях контекстов, предоставлении квантов и прочем. Linux для такой машины не подходит. Микроядно не подходит тем более. То, что я описал, очень похоже на сеть Нанотех. Может это он и есть?
|
|
Комментарии: 523
| Vadim Ushakov Это очень не моё поле, поэтому хотелось бы ясности: а почему ядром нельзя называть структурно обособленную (в смысле IPC) часть программной среды, отвечающую за распределение памяти между процессами? |
|
Комментарии: 240
Зарегистрирован: 01.07.2004 14:57
| Vadim Ushakov Имел в виду именно это. Запрос (или событие) - план - исполнение. Родная событийная модель. Где тут процессы/потоки?
ddc Ядром можно назвать любую центральную часть произвольной системы. Просто ваша трактовка в большинстве случае предполагает одну-единственную реализацию и спор ведется только по особенностям ее реализации. В том числе и между мэтрами. |
|
Комментарии: 178
Зарегистрирован: 24.03.2005 17:32
| Млин! Я могу назвать "Родную событийную модель" не ядром, а, скажем, диспетчером! И чё? У меня безядерная ОС получится? Народ, какая разница что как называется, главное, имхо, как оно работает! Главное, чтобы костюмчик сидел.. Со всех точек зрения... |
|
Комментарии: 240
Зарегистрирован: 01.07.2004 14:57
| Подыми глаза. Флуд полился после слов о том что спор о микро- и макроядерной модели - обсуждение узкой проблемы в широких кругах, что лично я посчитал за проявление кризиса. |
|
Комментарии: 178
Зарегистрирован: 24.03.2005 17:32
| Значит мы говорим об одном и том же, токо разрыми словами... |
Комментарии доступны только авторизованным пользователям, авторизуйтесь или зарегистрируйтесь на сайте здесь
|