LINUX.ORG.RU
ФорумTalks

Интервью с создателем сетевого стека Linux

 


1

5

http://www.opennet.ru/opennews/art.shtml?num=38016

Некоторые кусочки текста особенно доставляют:

Приходилось ли встречаться с Линусом лично или общение было исключительно в списках рассылки?
Лично я с ним никогда не встречался. Более того, избегал прямого общения с ним даже по е-mail. Я всегда имел промежуточное звено: сначала Алан Кокс, затем Дэвид Миллер. Линус считал меня «arrogant» (по словарю: заносчивый, высокомерный, надменный, самонадеянный, преувеличивающий свои возможности). Возможно, он употреблял в отношении меня и более крепкие эпитеты, но те, кто мне это передавал, могли просто щадить мое самолюбие. И он был прав: я считал и считаю его самовлюбленным малообразованным пингвином. И с большой склонностью к халтурным решениям, уж извините. Посмотрите на страшные куски кода, логика которых дожила до настоящего времени (inode.c, buffer.c), уродливый неработающий scheduler, который прожил десять лет.

Не хватает центральных авторитарных органов, которые могли бы запрещать и отсекать отмершие технологии и разрешать новые

Программисты и любые школьники должны проходить через «console-only» этап. «Первая сигнальная система» - это политкорректный эвфемизм. Это откуда-то из области борьбы за права животных. Для развлечения животной части человека у нас есть ipad, телевизор, kinect etc. Но слово «компьютер» - это слово для human sapience.

Смартфон - это уже фактически новый человеческий орган

Как вы думаете - не пора ли пересмотреть архитектуру ядра и переходить от монолита в сторону микроядра?
Нет. Я просто не понимаю, что такое microkernel. И уверен, что никто не понимает, иначе бы это кто-то сделал. А до сих пор процесс был только обратный: f.e. ядро macos - это mach+freebsd c варварски выломанным microkernel.

Xen - мертворожденный проект. Про это знают все, включая его автора. Существуют еще какие-то люди, которые уже совершили ошибку и вложили что-то в Xеn и теперь пытаются это отбить. Могу только сказать - нельзя на это ловиться.

Что вы думаете об интерфейсе сетевого стека plan9 (и о plan9, вообще)? Почему не появилось желание сделать что-нибудь подобное в linux? Не считаете ли вы, что для увеличения производительности и упрощения кода в ядре лучше было бы вынести по-максимуму сетевую подсистему из ядра в пространство пользователя, как это сделано в plan9?
Нет, не считаю. Это такой же миф, как microkernel, exokernel etc. Хотя с plan9 я знаком слабо. Скорее, я рассуждаю об exokernelах и предложениях типа netchannel.

Скажите, на какую реализацию вы обращали внимание при разработке сетевого стека, если таковая была, или вы руководствовались только теоретическими знаниями и собственным видением?
Это был мой план. План Педро Маркеса, план Дэвида Миллера. И теоретические знания, полученные из статей и писем отцов-основателей. Я, например, очень любил размышлять над письмами Van Jacobson'а; все частности - бред, все рекомендации неправильны даже арифметически. Implementation в BSD - не просто халтурна, это бы полбеды, но она просто окончательно хоронит изначальную идею. Но идеи - великая ценность.



Последнее исправление: makyrros (всего исправлений: 3)

Ответ на: комментарий от Motif

https://github.com/GaloisInc/HaLVM

Вот что я имею ввиду

Ты хочешь сказать «Xen круче KVM, потому что есть языковые виртуальные машины, запускающиеся поверх него без ОС»?

Аналоги?

Я уже упомянул OSv. Они говорят, что у них есть модифицированная JVM.

Полная паравиртуализация xen это совсем другое, чем паравиртуальные драйвера kvm

Спасибо, я знаю. Я вообще не говорил о паравиртуализации Xen.

Модификация операционки для работы в паравиртуальном домене заключается в переносе из 0 кольца в 1 и обращении к API гипервизора вместо железа. Все драйвера РОДНЫЕ

Уфф. Что такое «РОДНЫЕ» - Dom0, DomU, или внутри самого Xen уже есть драйвера?

никакое железо не виртуализуется.

То есть на одной, напимер, сетевой карте, запускается несколько виртуальных машин, но карта не виртуализируется? Чудеса.

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

Ну хоть что-то. Интересно, замеряли уже, насколько накладные расходы «легковесного» ниже, чем накладные расходв KVM-домена с virtio-драйверами.

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

Ты хочешь сказать «Xen круче KVM, потому что есть языковые виртуальные машины, запускающиеся поверх него без ОС»?

Круче, не круче, это лирика. Xen функциональнее. Умеет все то же, что и kvm и еще много чего сверху.

Я уже упомянул OSv. Они говорят, что у них есть модифицированная JVM.

OSv все-таки заметно тяжелее HaLVM, который способен запускаться за ~50 мс. Насколько я понял, OSv все-таки содержит небольшое ядро и драйвера, в отличие от.

Я вообще не говорил о паравиртуализации Xen.

А легковесные домены именно что паравиртуальные.

Что такое «РОДНЫЕ» - Dom0, DomU, или внутри самого Xen уже есть драйвера?

DomU

То есть на одной, напимер, сетевой карте, запускается несколько виртуальных машин, но карта не виртуализируется? Чудеса.

man паравиртуализация

xen до версии 3 не умел HVM, только паравирт и работал вообще без Qemu, то есть никакой виртуализации железа просто не было. Все domU обращались к API гипервизора, который уже разруливал запросы. Конкретно в случае сети через network bridge.

Интересно, замеряли уже, насколько накладные расходы «легковесного» ниже, чем накладные расходв KVM-домена с virtio-драйверами.

У kvm оверхед больше по определению, переключение контекста операция недешевая. Virtio спасает только частично. Паравиртуализация убирает надобность в переключении, а легковесные домены еще и слой драйверов. Я уже писал, что на тестах HaLVM запускался за время порядка 50 мс.

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

Ты хочешь сказать «Xen круче KVM, потому что есть языковые виртуальные машины, запускающиеся поверх него без ОС»?

Круче, не круче, это лирика. Xen функциональнее. Умеет все то же, что и kvm и еще много чего сверху.

Ловко ты отнес функциональность HaLVM к функциональности Xen.

Что такое «РОДНЫЕ» - Dom0, DomU, или внутри самого Xen уже есть драйвера?

DomU

Драйверы DomU рулят железом? Шел бы ты сам маны читать.

Паравиртуализация убирает надобность в переключении

Переключении откуда куда?

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

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

Ты нас троллируешь тут? Джобсу это всё очень помогло, ахаха.

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

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

Welcome to the real world Neo.

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

Xen функциональнее. Умеет все то же, что и kvm и еще много чего сверху.

Ловко ты отнес функциональность HaLVM к функциональности Xen.

Не понял, как одно вытекает из другого? Паравиртуализация это функциональность HaLVM???

Драйверы DomU рулят железом? Шел бы ты сам маны читать.

Смешно. Не позорься, вроде не школота.

Представь себе, что существует уровень ниже драйверов. Там нет устройств, только таблицы прерываний, таблицы виртуальных адресов, и т.п. И именно на этом уровне работает Xen. Он изменяет только эти таблицы и ничего не знает об устройствах. А драйвер железки, между прочим, не видит самой железки, а только эти самые таблицы. Поэтому деятельность Xen для них прозрачна. Драйверы PV DomU не требуют модификации, но при этом не работают с железом напрямую. В некотором смысле это виртуализация устройств, но механизм совсем другой, чем в kvm.

Напоминает уровни модели OSI.

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

Переключении откуда куда?

Ты не знаешь, что такое «переключение контекста»? И в гугле забанили? И после этого ты мне советуешь читать маны???

http://ru.wikipedia.org/wiki/Переключение_контекста

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

В общем, дискуссия становится похожей на тупой троллинг в стиле «я нихрена не знаю, поэтому вы все ламеры» (с)

А услуга ликбеза вообще-то платная.

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

Xen функциональнее. Умеет все то же, что и kvm и еще много чего сверху.

Ловко ты отнес функциональность HaLVM к функциональности Xen.

Не понял, как одно вытекает из другого?

В качестве довода за то, что Xen функциональнее, ты привел HaLVM. Такое впечатление, что ты сам не понимаешь, что говоришь. Слова все правильные, а смысла нет.

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

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

При паравиртуализации переключение контекста не происходит.

При паравиртуализации вообще - происходит (DomU -> Dom0). Что происходит в «легких» доменах Xen, я не зню, но вызов должен дойти до реального драйвера, так что какое-то переключение контекста всё равно есть.

А услуга ликбеза вообще-то платная.

Заплати эти деньги.

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

Если у тебя самый нижний уровень это драйвер, то дальше говорить не о чем. Пойди почитай, как устроен процессор, что такое кольца защиты, чем ring 0 отличается от остальных, что собой представляет гипервизор, чем гипервизор 1 уровня отличается от 2, как устроен xen, и т.д. А потом перечитай, что я написал. Смысл сразу появится.

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

Если у тебя самый нижний уровень это драйвер, то дальше говорить не о чем.

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

Пойди почитай, как устроен процессор, что такое кольца защиты, чем ring 0 отличается от остальных

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

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

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

А я писал, что есть уровни НИЖЕ драйвера. И на них тоже кое-кто работает.

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

А я писал, что есть уровни НИЖЕ драйвера.

Ниже самого низкого драйвера — железо, которым он управляет записывая/читая битики/байтики.

И на них тоже кое-кто работает.

Разве что волшебные феи.

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