The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Интервью с Алексеем Кузнецовым, одним из создателей сетевого..."
Отправлено opennews, 29-Сен-13 12:27 
Алексей Кузнецов, внёсший огромный вклад в развитие ядра Linux, ответил на вопросы (http://www.opennet.ru/openforum/vsluhforumID3/91502.html#1) читателей opennet.ru.  


Последние 10 лет Алексей отстранился от публичных дел, но в конце 90-х и начале 2000-х годов входил в категорию наиболее значительных разработчиков ядра Linux и занимал c 2000 по 2003 год пост мэйнтейнера сетевой подсистемы Linux. В частности, Алексей довёл до полноценного вида сетевой стек Linux, переработал его для использования на многоядерных системах, доработал поддержку IPv6 и обеспечил средства для управления трафиком. После переработки IP-стека Алексей принялся за переделку поддержки протокола TCP. Результатом стал новый TCP-стек, представленный в ядре Linux 2.2 и до сих пор используемый повсеместно. Из подготовленных Алексеем инструментов наиболее известны наборы утилит iputils (ping, tracepath, tftpd, rarpd) и утилиты управления трафиком iproute2 (ip, tc, ss). С 2003 года Алексей занимается развитием продуктов виртуализации компании Parallels.


<center><img src="http://www.opennet.ru/opennews/pics_base/0_1380442017.jpeg&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></center>


Разработка ядра

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

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


Слышали слова: freebsd, netbsd. Про linux слышали только одно - это не работает. Не забывайте про историческое время - начало девяностых (молодежь про это уже ничего не знает), мы были беднее церковных крыс и благодарить судьбу можно было даже за то, что для посылки однострочного е-mail через модем - через uucp шлюз - через Курчатовский Институт не требовалось гербовой печати с подписью главного бухгалтера.


Был отправлен человек с ящиком дискет в CERN: вези все программы и OS, что найдешь, потом разберемся. Человек был физик с очень небольшим вычислительным уклоном и привез он такую гору мусора, что я в ней месяц разбирался. Так вот - исторический момент - freebsd был привезен полностью на огромном количестве дискет, но без сорсов. И не взлетел. Ну вот совсем никак. А вот linuх был всего на двух дискетах – boot & root. И почти взлетел!


Я увидел надпись Login: и даже успел сказать ему root и увидеть #. А вот дальше на все был один ответ: Segmentation Violation и что-то про uselib. Но мы не привыкли отступать. Здесь случился акт божественного провидения: undelete на одной из пустых дискет (парень почистил часть особо бесполезных дискет с тем, чтобы туда записать какие-то мануалы, но не успел) обнаружился файл "?inux.tgz".

Распаковка показала, что это, похоже, не сорс ядра linux. Методом пристального взгляда проблема была вычислена: boot оказался немножко новее root, и функция uselib работала не совсем так, как этого ожидал root. Далее я взял лопату и стал рыть от забора и до успеха. Помню смутно: пришлось отыскать клон gcc для msdos (DJGPP), подправить кернел и ухитриться скомпилировать его под msdos. Получить работающий linux. Но без библиотек и возможности что-либо скомпилировать кроме кернела.


Далее собственную libc в степени, достаточной для работы make, gcc, ld etc. пришлось НАПИСАТЬ самому. А все остальное: gcc, as, ld - используя DJGPP и его сорс. Нетрудно понять, что после всего этого я из физика-теоретика превратился в linux-хакера. И назад в науку дорогу уже не нашел.


Как получилось, что вы стали мэйнтейнером? Какой путь пришлось для этого пройти?


В то время я был просто очарован Интернетом: возможности протокола, открывающиеся перспективы просто сносили крышу. Будучи человеком увлекающимся, я практически забросил свою основную область деятельности (теоретическая физика) и полностью переключился на изучение того, что было к тому времени сделано и изобретено, на размышления, что и как это нужно сделать. Где-то к 1996 у меня был the grand plan. И linux дал возможность для воплощения этого плана.

Во-первых, но не это самое важное, поддержка сети в linux была практически в состоянии tabula rasa. А главное - люди, которые каким-то чудом собрались вокруг проекта. Открытые для инноваций, гибкие, талантливые - Алан Кокс, затем Педро Маркес, Дэвид Миллер.
До 1996 года (Linux 2.0) я просто работал. Чинил баги, делал какие-то нужные и не очень вещи. Заработал какой-то авторитет.

Где-то к 1996 году стало ясно, что сеть находится в тупиковом состоянии. Алан Кокс, бывший в то время майнтейнером сетевой части linux, сделал гениальный ход: он устранился и дал дорогу молодым: Педро Маркесу, который сделал к тому времени начальную поддержку IPv6 и начал переписывать TCP. А я (будучи "молодым" не по возрасту, а по духу :-)) взял на себя более низкоуровневую часть. К несчастью, Педро проработал недолго - закончил университет и пропал где-то в катакомбах Cisco, но начало новой эпохи положил именно он. Вот с тех пор я и стал отвечать за всю низкоуровневую часть сетевого кода: с одной стороны границы было TCP, c другой - внутренности сетевых драйверов. До 1999 года TCP я глубоко не занимался.


Как происходило взаимодействие с другими разработчиками ядра?


Через обмен e-mail. Патч публиковался в linux-kernel (затем - netdev). Если он не вызывал возражений, maintainer его прикладывал к своему дереву, затем пересылал Торвальдсу. Если были возражения - патч переделывался. А бывало и так, что патч отвергался целиком и кто-то совершенно другой делал то же самое совершенно по-другому.

Затем Дэвид Миллер организовал CVS для сетевой части и для своего собственного проекта (ultrasparc port). После этого взаимодействие стало более цивилизованным, но суть поменялась незначительно.

Чем было вызвано решение сменить область деятельности и покинуть арену разработки ядра?


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


Чем вы занимайтесь сейчас?

После TCP-стека я охладел и увлекся новым проектом в недрах Parallels. Я переделывал миграцию контейнеров Parallels Virtuozzo Containers. Занимался портированием контейнеров на Itanium. Это был изначально мертвый (малый интерес рынка), но технически невероятно интересный для меня проект. Потом был перенос контейнеров в линейный формат, совместимый с виртуальными машинами Parallels Server. Это трудно описать, просто потому что замысел и состоял в том, что никакого внешнего эффекта быть не должно, только контейнеры должны работать лучше. Некоторое время даже занимался Parallels Desktop для Mac, отдыхал от Linux.

Сейчас я занимаюсь Parallels Cloud Server, если точнее, то входящим в его состав Parallels Cloud Storage. Parallels Cloud Server представляет собой гибрид платформы для виртуализации (гипервизоры + контейнеры) с распределенным облачным хранилищем (именно Storage вызывает особый интерес у рынка) . «Гибридизация» снижает время простоя из-за отказов оборудования, упрощает поддержку и администрирование серверов, а также позволяет создавать эффективные и высокодоступные виртуальные серверы с очень хорошими показателями аптайма.

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

URL:
Новость: http://www.opennet.ru/opennews/art.shtml?num=38016

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру