Разработка совершенно новой реализации стека tcp/ip, сравнимого по
возможностям и производительности с существующими реализациями была нелегкой
задачей. Отказ от переноса существующей реализации был сделан в тот момент,
когда существовала некоторая неясность, не станут ли существующие реализации
отягощены ограничениями авторских прав в связи с судебным делом, начатым U.S.L.
Кроме того, существовал значительный энтузиазм сделать все по-своему и лучше,
чем делалось ранее.
Первым добровольцем, возглавившим разработку сетевой подсистемы был Росс Биро
(Ross Biro <biro@yggdrasil.com> ). Росс написал простую и
неполную, но уже пригодную к использованию систему, дополненную драйвером для
сетевой карты ethernet WD-8003. Этого было достаточно, чтобы многие могли
экспериментировать и тестировать новую систему, а некоторые даже смогли с ее
помощью подключить свои машины к интернету. Давление, которое сообщество
разработчиков Линукса, оказывало на разработчиков сетевой подсистемы было весьма
большим и в определенный момент вынудило Росса отказаться от руководства
проектом. Но его усилия по начальной организации проекта и взятая
ответственность за создание чего-либо работоспособного в сложных условиях стали
катализатором для всех дальнейших работ и заложили основы современного
успеха.
Орест Збровски (Orest Zborowski <obz@Kodak.COM> ) написал
первый вариант интерфейса BSD sockets. Это был значительный шаг вперед, так как
это позволило переносить многие существовавшие сетевые приложения без серьезных
модификаций.
Примерно в это-же время Лоуренс Калхейн (Laurence Culhane
<loz@holmes.demon.co.uk> ) разработал первый драйвер поддержки
протокола SLIP. Это позволило многим, не имеющим доступа к локальным
ethernet-сетям, экспериментировать с новым программным обеспечением. И снова,
некоторым удалось с помощью этого драйвера подключить свои машины к интернету.
Это дало многим ощущение возможностей, которые будет иметь Линукс с полной
сетевой поддержкой и увеличило число людей, экспериментирующих с сетевой
подсистемой.
Еще одним из активных разработчиков был Фред ван Кемпен (Fred van Kempen
<waltje@uwalt.nl.mugnet.org> ). После краткого периода
неопределенности, последовавшего за уходом Росса, Фред принял на себя
руководство проектом, без особой конкуренции. У Фреда были свои планы развития
сетевой подсистемы Линукса, и он направил основную работу именно в этих
направлениях. Под его руководством были написаны программы, названные NET-2 (в
отличие от NET -- программ, написанных Россом), которые многие смогли
продуктивно использовать. Кроме того, Фред внес много предложений по новым
разработкам, таким как динамический интерфейс устройства, поддержка протокола
Amateur Radio AX.25 и модульная структура сетевой подсистемы. NET-2
использовался большим количеством людей, которое постоянно увеличивалось по мере
того, как распространялась информация о работоспособности этой системы. В тот
момент новая реализация все еще выпускалась как набор исправлений к обычному
ядру и не включалось в основное выпускаемое ядро. NET-FAQ и NET-2-HOWTO
описывали достаточно сложную процедуру, которая требовалась, чтобы заставить
сетевую подсистему работать. Фред уделял основное внимание новым разработкам,
что отнимало основную часть времени. В то же время пользователям требовалась
надежная система, которая устроила бы по крайней мере 80% пользователей. Так же,
как и в случае с Россом, пользователи стали оказывать на разработчиков
давление.
Алан Кокс (Alan Cox <iialan@www.uk.linux.org> ) предложил
решить возникшие проблемы следующим образом. Он предложил взять на себя отладку
кода NET-2 до состояния стабильной и надежной работы, которая бы устроила
большинство пользователей. При этом давление на Фреда уменьшилось бы и позволило
бы ему продолжить свою работу. Алан взялся за работу и через некоторое время
выпустил первую версию сетевой подсистемы NET-2D (от NET-2-Debugged). Она
устойчиво работала на большинстве машин, и удовлетворяла большинство
пользователей. У Алана были свои взгляды на то, как должен развиваться проект и
это привело к большому количеству дискуссий о том, как развивать NET-2. В
результате сложилось два подхода среди разработчиков сетевой подсистемы --
первый -- "сперва работоспособность, затем доводка" и второй -- "доводка в
процессе разработки". Линус Торвальдс (Linus Torvalds) выступил в качестве
арбитра и поддержал Алана, включив его код в стандартное выпускаемое ядро. Фред
оказался в сложной ситуации. Все его дальнейшие разработки лишались большого
количества тестеров, а это означало замедление прогресса. Фред работал еще
некоторое время, а затем Алан стал новым лидером команды разработчиков сетевой
подсистемы.
Дональд Беккер (Donald Becker
<becker@cesdis.gsfc.nasa.gov> ) занялся программированием
нижнего уровня сетевой подсистемы и написал огромное количество драйверов
ethernet-карт. Почти все драйвера, включенные в текущие версии ядра написаны
Дональдом. В написании драйверов участвовали и другие, но работа Дональда была
столь продуктивной, что заслуживает особого упоминания.
Алан продолжал улучшать NET-2D, параллельно занимаясь проблемами, не
указанными явно в списке первоочередных. К тому моменту, когда версии основного
ядра 1.3.* достигли состояния зрелости, сетевая подсистема
переросла в версию 3 -- NET-3, на базе которой основана текущая реализация
сетевой поддержки в Линуксе. Алан работал над многими частями сетевой подсистемы
и с помощью многих других развивал ее по многим направлениям. Алан разработал
динамические сетевые устройства и первые реализации протоколов AX.25 и IPX.
Параллельно Алан продолжал дорабатывать остальной код и продолжает заниматься
этим и сейчас.
Поддержка PPP была написана Майклом Коллахэном (Michael Callahan
<callahan@maths.ox.ac.uk> ) и Элом Лонгйиаром (Al Longyear
<longyear@netcom.com> ). Это также имело огромное значение,
так как значительно увеличило число пользователей Линукса.
Джонатан Нейлор (Jonathon Naylor <jsn@cs.nott.ac.uk> )
значительно улучшил поддержку AX.25, добавив поддержку протоколов NetRom и Rose.
Поддержка AX.25/NetRom/Rose имела очень большое значение, поскольку ни одна
операционная система кроме Линукса не имела встроенной поддержки этих
протоколов.
Конечно, многие сотни людей участвовали в разработке сетевой подсистемы
Линукса. Многие из них будут упоминаться в специальных разделах, многие
обеспечили написание модулей и драйверов, высказывали пожелания, присылали
сообщения об ошибках и оказывали моральную поддержку. Все они сыграли свою роль
в разработке. Сетевая подсистема Линукса -- отличный пример результата,
достигнутого "анархической" разработкой, о она продолжает развиваться по многим
направлениям и сейчас.
Информацию о работе с сетью в Линуксе Вы можете почерпнуть из множества
источников.
Алан Кокс, нынешний ведущий разработчик сетевой подсистемы Линукса
сопровождает web-страницу, на которой содержатся все последние новости,
касающиеся сетевой поддержки в Линуксе. Эта страничка находится по адресу www.uk.linux.org.
Другой полезный источник -- книга Олафа Кирха (Olaf Kirch) "Network
Administrator Guide" ("Руководство сетевого
администратора" ). Она является частью Проекта по Документации Линукса (
Linux Documentation Project) и вы
можете прочесть ее (на английском языке) HTML-версию по адресу Network Administrators Guide
HTML version либо получить ее в других форматах по ftp с сайта
sunsite.unc.edu sunsite.unc.edu
LDP ftp archive. Книга Олафа -- весьма полное руководство по настройке
сетевой поддержки под Линуксом.
Существует news-группа в иерархии news-групп, посвященных Линуксу, в которой
обсуждаются вопросы, посвященные сетевой подсистеме -- comp.os.linux.networking
Кроме того существует лист рассылки, подписавшись на который Вы можете задать
вопросы, относящиеся к сети под Линуксом. Для того, чтобы подписаться, отправьте
письмо:
To: majordomo@vger.rutgers.edu
Subject: <любой>
В теле письма напишите:
subscribe linux-net
В различных IRC-сетях часто есть каналы #linux в которых Вы
можете получит ответы на многие вопросы.
Сообщая о какой либо проблеме, старайтесь включить как можно больше
подробностей, имеющих к ней отношение. В частности, обязательно сообщайте номера
версий используемых программ, ядра, номера версий таких программ как
pppd или dip, и суть возникшей проблемы. Обращайте особое
внимание на все получаемые сообщения об ошибках и точно упомяните все вводимые
Вами команды.
Для получения базовой информации о работе tcp/ip сетей советуем Вам
обратиться к следующим документам:
- tcp/ip introduction
-
этот документ можно получить как в текстовом виде, так
и в виде pstscript.
- tcp/ip administration
-
этот документ можно получить как в текстовом виде, так
и в виде postscript.
За более подробной информацией Вы можете обратиться к книге
Douglas E. Comer Internetworking with TCP/IP, Volume 1:
principles, protocols and architecture, ISBN 0-13-227836-7 Prentice Hall
publications, Third Edition, 1995.
Если Вы хотите писать сетевое программное обеспечение в Unix-подобных средах,
очень рекомендуем Вам прочесть книгу
W. Richard Stevens Unix Network Programming ISBN
0-13-949876-1, Prentice Hall publications, 1990.
Ожидается к выходу второе издание этой книги, в новом издании она разбита на
три тома, подробности на Web-сайте фирмы
Prentice-Hall.
Кроме того, можете обратиться к news-группе comp.protocols.tcp-ip.
Важным источником информации и протоколах семейства tcp-ip и интернете
являются документы RFC. RFC расшифровывается как "Request For Comment" (Запрос
для Обсуждения). RFC -- способ описания стандартов Интернет. Набор документов
RFC можно получить из многих мест, по протоколу ftp или через WWW. Многие сайты
обеспечивают доступ к RFC с возможностью поиска по ключевым словам. Один из
таких сайтов находится по адресу: Nextor RFC
database.
|