15. BSD 유닉스 5 화 – TCP/IP 개발

TCP/IP 통합
아파넷에서 가장 중요한 부분은 바로 네트워크 프로토콜을 설계하고 구현하는 작업이였다. 미국방성 고등 방위 연구 계획국(DARPA)은 군수업체 중 하나인 BBN Technologies에게 여러 플랫폼에 TCP/IP를 구현하도록 했다. TCP/IP 구현이 어느 정도 진행된 후, UC 버클리대학 CSRG(Computer Systems Research Group)BBN Technologies이 구현한 TCP/IP 코드를 BSD 유닉스에 통합하기 시작했다.

“드디어 TCP/IP 소스코드가 도착했네. 어디 BSD에 적용해볼까”

“이런식으로 구현하면 로컬 네트워크에서는 성능이 안나올 텐데.. 내가 좀 고쳐야겠다.”

1980년 초 TCP/IP 회의


“제가 모이자고 한 이유는 CSRG에서 BBN Technologies에서 개발 중인 TCP/IP 코드를 받아 일부 수정을 했는데, 성능이 무척 향상되었다는 보고를 받았기 때문입니다.”


“어떻게 이게 가능한가요?”


“늦어져 죄송합니다. 빌 조이입니다”
“때 마침 잘 왔어요.”


“어떻게 이렇게 성능이 좋아졌나요?”
“아, 제가 소스코드를 보니 이대로 적용해서는 안될 것 같더군요. 로컬 네트워크에서는 많은 컴퓨터가 동시에 사용해서 높은 대역폭이 필요해서 좀 더 성능을 높일 수 있는 방안을 구현했지요.”


“어떻게 구현했나요?”
“아.. 그냥 TCP/IP 스펙을 보고 구현했어요.”

BBN Technologies가 BSD용 TCP/IP를 시작했지만, CSRG멤버들이 초기에 받아 구현한 TCP/IP 코드가 4.2BSD를 통해 릴리스되었다. BBN은 자신들이 개발한 TCP/IP를 4.3BSD에 적용하려고 했지만, CSRG가 구현한 TCP/IP가 더 안정적으로 동작하여 최종적으로 BSD에 적용되었다. 그리고, 1982년 빌 조이는 썬 마이크로시스템스 창업을 위해 CSRG를 떠난다.

“과제는 끝내고 가야지!”
“교수님 죄송합니다. 레플러가 저 대신 BSD유닉스 릴리스를 맡을 겁니다.”
“자, 진짜 유닉스 머신을 만들러 가자!”

하지만, 빌 조이는 CSRG를 떠난 후에도, IPC 구현과 커널 코드가 포팅이 용이하도록 수정하는 작업을 마무리 지었다.

“작업하던 IPC구현은 빨리 끝내자. 어차피 SunOS에도 추가해야 하니까..”

빌 조이가 떠나자 사무엘 J 래플러(Samuel J Leffler)가 책임자가 되었다. 사무엘은 새 시그널을 구현하고 마셜 커크 매큐직(Marshall Kirk McKusick)가 구현한 파일시스템과 TCP/IP 등을 추가해서 1983년 8월 4.2BSD를 발표한다.

“4.2BSD의 주요 기능은 시그널과 TCP/IP!”

사무엘이 4.2BSD를 완성하고 루카스아츠사로 떠나자, 후임으로 마이클 J. 캐럴스(Michael J. Karels)가 개발을 책임지게 된다.

4.2BSD는 인기가 많아서 1000개 이상 라이선스 계약을 따냈는데, 당시 AT&T유닉스에 TCP/IP 기능이 없는 것도 큰 이유 중 하나였다.

“아직도 TCP/IP가 안되는 AT&T 유닉스를 쓰고 있나요? 4.2BSD를 써보세요.”

곧바로 AT&T 유닉스도 BSD에서 추가된 네트워크 기능을 추가한다.


“4.2BSD에 추가된 TCP/IP를 AT&T 유닉스에도 추가하시요.”


“새로 구현하란 말씀인가요?”


“크… 당신이 TCP/IP를 새로 구현할 수 있겠는가?”
“으…. 아닙니다. 4.2BSD에서 TCP/IP 코드를 가져와서 바로 적용하겠습니다.”

다음에 계속…

참고 문헌

만화 중 잘못된 부분이나 추가할 내용이 있으면 만화 원고에 직접 의견을 남겨주시면 고맙겠습니다. 그 외 전반적인 의견은 이 블로그에 바로 답글로 남겨주세요. 다음 6화에서는 CSRG와 AT&T와의 법정 다툼과 어떻게 BSD가 자유롭게 배포가 가능했는지를 소개할 예정입니다.

3 thoughts on “15. BSD 유닉스 5 화 – TCP/IP 개발

  1. 만화원고에 글을 달려고 하니 구글독이 나오네요.
    아무튼 TCP/IP를 만든 것은 BBN이 아닙니다. ARPA에서 BBN에 시킨 것은 IMP하는 게이트웨이를 만들라고 한 것이었어요. End to end connection protocol은 BBN이 만들었지만 상위 프로토콜은 주로 대학에서 만들었습니다.

댓글 남기기