LINUX.ORG.RU
ФорумTalks

Свежее интервью с Таненбаумом


0

1

http://linuxfr.org/nodes/88229/comments/1291183 (на буржуйском языке)

LinuxFr.org : Why porting the userland utilities from NetBSD? Is the goal to become a BSD-like system?

Andrew Tanenbaum : We think NetBSD is a mature stable system. Linux is not nearly as well written and is changing all the time. NetBSD has something like 8000 packages. That is enough for us.

LinuxFr.org : In this LinuxFR interview with Linus (http://linuxfr.org/nodes/85904/comments/1230981) he gave his opinion on microkernels:

«I'm still convinced that it's one of those ideas that sounds nice on paper, but ends up being a failure in practice, because in real life the real complexity is in the interactions, not in the individual modules. And microkernels strive to make the modules more independent, making the interactions more indirect and complicated. The separation essentially ends up also cutting a lot of obvious and direct communication channels».

What do you think about this answer?

Andrew Tanenbaum : I don't buy it. He is speculating about something he knows nothing about. Our modules are extremely well defined because they run in separate address spaces. If you want to change the memory manager, only one module is affected. Changing it in Linux is far more complicated because it is all spaghetti down there.

LinuxFr.org : Do you think the Linux success is a proof he was right or is it unrelated?

Andrew Tanenbaum : No, Linux «succeeded» because BSD was frozen out of the market by AT&T at a crucial time. That's just dumb luck. Also, success is relative. I run a political website that ordinary people read. On that site statistics show that about 5% is Linux, 30% is Macintosh (which is BSD inside) and the rest is Windows. These are ordinary people, not computer geeks. I don't think of 5% as that big a success story.

Ну и так далее в этом духе. Читайте все

★★★★★

Последнее исправление: ttnl (всего исправлений: 1)
Ответ на: комментарий от r

> Хотя в общем он прав

Да в чем он прав? Если использовать подход «одна кора - одна машина», то IPC становится дорогим, а многонитевые приложения тупо не могут использовать несколько ядер.

tailgunner ★★★★★
()

- А что Вы думаете об этом нашем линуксе, профессор? - спросили линуксоиды.

- Говно этот ваш линукс! - ответил профессор.

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

> Дай определение works тогда.

Для данного контекста - «у того, кому надо было - когда-то точно работало». Исошки строят до сих пор, прогоняют ли тестами - хз

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

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

A Computer is a state machine. Threads are for people who can't program state machines.

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

> Для данного контекста - «у того, кому надо было - когда-то точно работало»

Что этому «кому-то» нужно было - история умалчивает. Может, ажно fb-консоль, а может, и COM-порта хватило.

A Computer is a state machine. Threads are for people who can't program state machines.

Эту фразу очень любят те, кто ее не понимает.

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

> В роли линюкса может выступить дебиан, например

Не мне конечно тоже нравится нетка, но ты выбрал самый неудобный дистр для сравнения. Практически весь linux-embedded - debian based. И кстати, ты не путаешь процы и архитектуры?

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

>Эту фразу очень любят те, кто ее не понимает.

Отличный оборот, возьму на вооружение :}

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

>Тупо количеством всего - от ФС до поддерживаемых архитектур.

Меня например over 9000 криво поддерживаемых фс не интересуют в принципе, как и архитектуры отличные от x86(_64?). А вас?

Ygor ★★★★★
()

мужик дело говорит

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

Ах да. По архитектурам там всего 15 выходит, но зато в общем и процентное соотношение tier I/II резко увеличилось)

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

> Меня например over 9000 криво поддерживаемых фс не интересуют в принципе,

Не интересуют криво поддерживаемые - посчитай поддерживаемые прямо.

как и архитектуры отличные от x86(_64?). А вас?

А меня - очень. Работа, знаешь ли.

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

Практически весь что я видел это либо узкоспециализированный самосбор, либо различные варианты montavista. debian'а в embedded ни разу не видел.

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

Не интересуют криво поддерживаемые - посчитай поддерживаемые прямо.

vfat, ext (2, 3, 4). если вторую считать за 3 fs, то получится аж 4 прямо поддерживаемых fs

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

>посчитай поддерживаемые прямо.

ext2?

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

>> Не интересуют криво поддерживаемые - посчитай поддерживаемые прямо.

vfat, ext (2, 3, 4). если вторую считать за 3 fs, то получится аж 4 прямо поддерживаемых fs

А тебя, вероятно, тоже не интересует мир за пределами x86? А то назвал бы как минимум JFFS2.

tailgunner ★★★★★
()

Я принимаю позицию Торвальдса. Если дробить ОС на сотни кусков(только lsmod | wc -l выдаёт у меня 78 модулей) и каждый засовывать в отдельный процесс то это просто будет тормозить из-за TLB.

К тому же я не обрадуюсь если у меня сдохнет менеджер памяти или диска. Да, система не упадёт, но какое мне до этого дело?

Поэтому самое грамотное решение это гибридный подход.

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

> A Computer is a state machine. Threads are for people who can't program state machines.

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

ЗЫ: Когда-то таненбаум казался мне класным, а его «dedicated systems» (птушнику проститетельно) - библией, по ходу роста, мне показалось, что он хер с горы а в CS - журналист, сейчас я в этом абсолютно уверен. Пусть микроядро - логичная архитектура, но одно ядро - одна машина, это какбы... ну как одна неделя со шлюхами - один презерватив. Ни функций не выполняет, и трясёшся над ним как над хрустальной вазой, и выхлоп от таких оджигов никакой.

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

>он тебе про то, что если нужно приложение на несколько потоков и несколько ядер (хайлоад например) в таком окружении оно тупо не сможет заюзать _ещё одно ядро_.

fork и sendmsg уже отменили?

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

> да ну, разве это успешно.

Работает в продакшене. Значит, успешно.

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


Можешь чем-нибудь обосновать свой критерий успеха?

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

Я о передаче файлового дескриптора клиента, приконнектившегося к основному процессу, дочернему на обработку

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

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

Самособранный в дебиане. Кроме шуток, в большинстве хаутушек 2003-2005 (дальше мну продался в офис) можно найти строчку apt-get install debootstrap. Сейчас, правда, статистику портит бубунта.

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

> Какой же он дорогой?

ну вот такой он дорогой, межпроцессный IPC.

Небось не на каждого клиента форкаться же :)

Кхм. Я таки не понял, как форк на одноядерной машине улучшит ситуацию. Так что учись программировать state machine'ы.

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

>Кхм. Я таки не понял, как форк на одноядерной машине улучшит ситуацию

А я привёл форк в ответ на сообщение iBliss о нескольких ядрах, см. выше, так что

учись программировать state machine'ы.

не засчитывается

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

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

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

> А я привёл форк в ответ на сообщение iBliss о нескольких ядрах, см. выше, так что

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

учись программировать state machine'ы.

не засчитывается

Что, can't program a state machine? Тогда Minix не для тебя %)

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

> fork и sendmsg уже отменили?

А простите мне мой французский, нагуй мне форк и пайпы между родительскими и дочерними, которые появились в мохнатом году и если бы не write on copy, при нынешней прожорливости софта, стали бы адом и израилем современного программирования? Если надцать процессов могут в надцать смычков разгребать одну область памяти перекликаясь через семафоры (типичная кстати стэйт машина), то нагуй мне к ним городить queue с ещё одним диспетчером, следящим за синхронностью, если это всё уже есть в оси?

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

> но зато в общем и процентное соотношение tier I/II резко увеличилось)

Я не умный, я настырный. Так что поясни.

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

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

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

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

если говорить о таких масштабах, то успехом L4 можно будет считать хотя бы 20% рынка платформы, какой-нибудь, пусть даже мобильной.

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

> Каждого из процессоров.

Ок. По-порядку. Сервер кодирующий видео.

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

Теперь представь:

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

2й вариант - все процессы изолированны (какой гандон это придумал?) и общаются строго через скармливание родителем блока памяти.

Теперь вопрос, а шина на проце по-ходу резиновая?

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

Соотношение стратегически важных архетиктур к остальным

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

>Нет у тебя нескольких ядер в Minix

Так вот оно что

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

>Если использовать подход «одна кора - одна машина»,

В этом он не прав.

r ★★★★★
()

>Also noteworthy is that Google and others are putting a huge effort to remove much of the code from the Linux kernel and replace it with BSD code in userland, both to make it simpler and get rid of the GPL.
Может он хотел сказать LGPL?

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

И FreeBSD ещё поддерживает бинарную совместимость с Linux.

А куда без неё вам, для вас это главная задача.

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