To ja stworzyłem router

66-letni już dzisiaj William Yeager, twórca pierwszego wieloprotokołowego routera, do tej pory spotyka się z zarzutami, że to nie on, a założyciele Cisco Systems oprogramowali jedno z najbardziej popularnych urządzeń sieciowych. W rozmowie z redaktorem amerykańskiego magazynu NetworkWorld, Yeager ujawnia swój punkt widzenia na temat prac nad routerem, omawia także sporne kwestiw między Uniwersytetem Stanford a Cisco Systems oraz swoją przygodę z Sun Microsystems.

To ja stworzyłem router

William Yeager

Pierwsze starania nad stworzeniem routera rozpoczął Pan, będąc pracownikiem naukowym na Uniwersytecie Stanford. Proszę przybliżyć nam tę historię.

Dla mnie wszystko zaczęło się w styczniu 1980 roku, kiedy to mój ówczesny szef zlecił mi opracowanie czegoś, co połączyłoby komputery z trzech instytutów: informatyki, elektroniki i medycyny. Było to polecenie służbowe, a jako specjalista od sieci musiałem się z nim zmierzyć.

Jakie dokładnie komputery musiał Pan połączyć?

Mieliśmy oczywiście mainframe'y DEC 10, kilka urządzeń Xerox PARC Lisp, serwery plików Altos oraz dołączone do nich drukarki. W ciągu następnych kilku lat do tego grona dołączyły systemy DEC VAX oraz jednostki z Texas Instruments i Symbolic. Wszystko to musiało zostać połączone, ponieważ my, naukowcy, byliśmy rozproszeni w wielu budynkach i trudno nam było sprawnie, wspólnie pracować.

Od początku twierdziłem, że najważniejsze jest opracowanie systemu operacyjnego, który trasowałby ruch między maszynami. Okablowanie potrzebne do połączeń mieliśmy już przetestowane. Stworzyłem zatem NOS (Network Operating System) i kod źródłowy do routowania, przeznaczony do uruchomienia na mainframe'ie DEC PDP11/05. Po skompilowaniu kodu w języku C przez mojego współpracownika, Alana Snydera, okazało się, że program zajmuje zbyt dużo miejsca. Musiałem wówczas stworzyć bardziej optymalną wersję kodu, tak aby zredukować jego wielkość po kompilacji o 30%. Przyznam, że to była jedna z najcięższych kwestii do zrobienia, ale udało się - pamiętajmy, że PDP11/05 miał jedynie 56 KB wolnej pamięci operacyjnej. Dostosowanie NOSu do naszych potrzeb oraz optymalizacja algorytmów przełączania pakietów pochłonęło mi całe lato.

Finalnie jednak, po pół roku prac, mieliśmy gotowy pierwszy router. Umieściliśmy go w szafie Pine Hall, mieszczącej centralę telefoniczną. Była ona usytuowana w połowie drogi między instytutem medycyny a informatyki. Do routera dochodziły kable o długości ponad 600 metrów każdy.

Jakie protokoły były wspierane przez router?

Początkowo oprogramowanie routera trasowało ruch pakietów PUP (Parc Universal Packet) - dla systemów Xerox PARC do mainframe'ów. Pod koniec 1981 roku odwiedził mnie ponownie mój szef i polecił, abym zorientował się, czy w związku z rosnącym znaczenie protokołu IP da się rozbudować router o dodatkowe właściwości. Dodaliśmy wówczas obsługę IP do routera - co ważne, nie musieliśmy się martwić takimi aspektami, jak na przykład ARP (Address Resolution Protocol), ponieważ nasze łącze Ethernetowe miało przepustowość 3 Mb/s, a używane adresy IP składały się jedynie z dwóch bajtów (jeden dla sieci, drugi dla hosta, będącego jednocześnie adresem MACowym). Rozpowszechnienie IP przybrało bardzo dynamiczny charakter. W 1982 roku departament informatyczny stosował już IP we wszystkim, czym mógł. Rok później cały Uniwersytet Stanford zaczął powolną przebudowę swojej infrastruktury sieciowej do znanego standardu Ethernet 10 Mb/s.

A kiedy Cisco pojawiło się w tej historii?

Wiosną 1985 roku przyszedł do mnie Len Bosack (ówczesny dyrektor instytutu informatyki na Uniwersytecie Stanford i współzałożyciel Cisco) i jeszcze jeden człowiek. Poprosili mnie o udostępnienie kodu źródłowego do oprogramowania routera. Jak twierdzili, ich intencją było udoskonalenie go i wyposażenie w dodatkową funkcjonalność. Bardzo się ucieszyłem, ponieważ pracowałem wtedy intensywnie nad innymi projektami i nie miałem już czasu na rozwijanie kodu routera. Dałem im zatem dostęp do wszystkich materiałów źródłowych, które posiadałem. Nie miałem wówczas pojęcia, że rok wcześniej powstała spółka Cisco Systems.

Był Pan przekonany, że intencją Bosacka i jego współpracownika było udoskonalenie Pana projektu i usprawnienie działania sieci uniwersyteckiej?

Tak. Odbywaliśmy cotygodniowe spotkania, podczas których zdawano mi relacje z postępu prac. Zapadła decyzja o przejściu wyłącznie na obsługę IP, więc z routera wyrzucono wsparcie dla XNS, CHAOSnet i PUP. Po tych przeróbkach, rok później, ich wizja mojego kodu stała się oficjalnym znakiem rozpoznawczym routerów sieciowych Uniwersytetu Stanford. Wszystko wyglądało zatem dobrze.

W 1986 roku usłyszałem o Cisco. Wszyscy dowiedzieliśmy się, że tak naprawdę efekty prac nad rozwojem mojego kodu, wykonywanych na uniwersytecie, były docelowo przeznaczone do implementacji w komercyjnych routerach Cisco. Sam nie widziałem jeszcze w tym nic złego, bo dla mnie liczyło się to, że kod źródłowy ulegał kolejnym udoskonaleniom. Jednak spór narastał - głównie ze strony uniwersyteckiej, której nie podobał się fakt, że laboratoria uczelnianie wykorzystywane są w celach komercyjnych, bez uiszczania jakichkolwiek opłat.

Jak rozwiązano tę kwestię?

Zostałem wezwany do biura prawnego Uniwersytetu Stanford i poproszony o przyniesienie ze sobą moich kodów źródłowych. Intencją było zidentyfikowanie efektów prac zespołu Bosacka i zaznaczenie różnic. Okazało się, że stworzonym przeze mnie systemie operacyjnym (NOS) zmieniono jedynie nazwy zmiennych. Poza tym cały kod był identyczny. Pozostała część oprogramowania (samego routera) została podzielona na dwie połowy. Oprócz dodania nowego protokołu routującego, co samo w sobie nie jest trudne, gdy ma się jakiekolwiek pojecie o sieciach, zmiany były kosmetyczne.

Konsekwencją tej małej konfrontacji było opuszczenie przez Len Bosacka i jego współpracowników (m.in. współzałożycielka Cisco - Sandy Lerner) murów uczelni. Z tego, co wiem, skoncentrowali oni swe dalsze wysiłki na rozwoju firmy.

W ramach opłat autorskich Cisco przekazało Panu 100 tys. USD. Czy dostał Pan później jeszcze jakiekolwiek pieniądze od koncernu?

Nie, w ramach rekompensaty Cisco przekazało 1/3 kary uczelni, 1/3 instytutowi informatyki a pozostałą, trzecią część mnie. Ja te pieniądze przekazałem do mojego departamentu, bo to tam zrodził się pomysł stworzenia routera i tam go oprogramowaliśmy. Z Cisco nie mam dobrych stosunków - można powiedzieć, że jestem dla nich "persona non grata". Nie może być jednak inaczej, skoro na ich stronie sieciowej przeczytałem kiedyś: "Sandy Lerner i Len Bosack byli zakochani i musieli wynaleźć coś, co pozwoli im połączyć ze sobą oddalone od siebie budynki uniwersyteckie. Tak powstał router".

Po 20 latach pracy naukowej zrezygnował Pan z życia uczelnianego i przeszedł do Sun Microsystems...

Tak, odszedłem ze Stanford, ponieważ coraz trudniej było nam pozyskać pieniądze na granty naukowe. Próbowałem zdobyć je, rozmawiając m.in. z Sun Microsystems. Wówczas w firmie tej trwały prace nad bardzo ciekawym projektem - Spark Station Voyager. Był to laptop z szybką matrycą, działający na systemie operacyjnym Solaris 2.4. Jedną z jego ciekawszych właściwości było to, że mógł on bezproblemowo pracować w trybie offline. Moim zadaniem było stworzenie serwera i klienta IMAP, tak, aby usprawnić pracę na laptopie po odłączeniu go od sieci. Nie było to zadanie łatwe - wówczas IMAP2bis nie udostępniał możliwości pracy na środowisku pocztowym bez kontaktu z siecią. Musiałem zmodyfikować cały protokół i przystosować go również do poprawnego działania z sieciami o małej przepustowości. W trakcie prac nad projektem zwolniło się jedno z miejsc w Sunie i zaproponowano mi etat. Miałem wtedy 53 lata oraz 20 lat pracy naukowej za sobą - zgodziłem się bez wahania.

***

Rozmawiał: John Dix

Opracował: Dariusz Niedzielewski

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200