다음 이전 차례

4. General Information about Linux Networking.

4.1 리눅스 네트워킹 커널 개발의 간략한 역사.

이미 나와있는 implementation 만큼이나 잘 동작하는 완전히 새로운 tcp/ip 프 로토콜 스택의 커널 implementation을 개발한다는 것은 쉬운일이 아니었다. 이 미 나와있는 implementation의 하나를 포팅하지 않기로 하는 결정은 U.S.L에 의 해 내려진 법정 경우로 인해 제한된 카피라이트에 의해서 현존하는 implementat ion 들이 지장을 받지는 않을지 확실하지 않은경우, 또는 이미 나와있는것보다 낫게 완전히 새로운 것으로 만들기 위한 열정이 있을때에만 이루어졌다.

커널의 네트워크 코드 개발을 이끌어가기 위한 최초의 자원자는 Ross Brio였다. < biro@yggdrasil.com>. Ross는 간단하고 불완전하나 매우 유용한 implementati on 루틴을 만들었는데 이것은 WD-8003 네트워크 인터페이스 카드의 이더넷 드라 이버로 보완되어졌다. 이것은 많은 사람들이 이 소프트웨어로 테스팅과 실험을 하기에 충분했으며, 어떤 사람들은 이 설정을 통해 자신의 머신을 가까스로 인 터넷상에 올려놓기도 하였다. 이로인해 네트워킹 지원을 개발하고 있던 리눅스 공동체내에세의 압력이 일어났고, 결국 Ross에게 있었던 불공정한 압력과 이익 에 치중하던 그의 위원회로 인하여 Ross는 리더 개발자의 자리에서 물러나게 되 었다.

논쟁만을 일삼던 환경속에서도 프로젝트를 시작하고 실제로 유용한 무언가를 내 놓기 위한 책임을 받아들이는 그의 노력은 이후의 작업에 촉매가 되었으며, 현 재의 성공에 대한 가장 본직적인 요소로 자리잡고 있다.

Orest Zborowski는 < obz@Kodak.COM> 리눅스를 위한 최초의 BSD 소켓 프로그래밍 언터페이스를 만들어냈다. 이것은 이미 나와있던 네트워크 응용프로그램들을 많 은 수정없이 리눅스에서 사용할수 있게 해줌으로써 커다란 진보를 이루어냈다.

이때쯤 다른 어딘가에서 Laurence Culhane은 < loz@holmes.demon.co.uk> 리눅스 에 SILP 프로토콜을 지원하기 위한 최초의 드라이버를 개발해 냈다. 이것은 이 더넷 네트워킹 억세스를 할수없던 많은 사람들이 새로운 네트워킹 소프트웨어를 실험할수 있도록 해주었다. 또 어떤 사람들은 이 소프트웨어를 인터넷을 접속하 는데 사용하기도 하였다. 이것은 리눅스가 충분한 네트워크 지원을 갖게된다면 실현될수있는 가능성들을 많은 사람들이 맛볼수 있게 하였으며, 기존의 네트워 킹 소프트웨어를 가지고 실제로 사용하고 실험하는 사용자수를 늘어나게 했다.

네트워킹 지원을 하는데 일익을 담당한 또 한사람은 바로 Fred Van Kempen이었 다. < waltje@uwalt.nl.mugnet.org>. Ross가 리드 개발자로서의 위치에서 물러난 불확실한 기간후에 Fred는 그의 시간과 노력을 제공하였으며 본질적으로 경쟁자 가 없는 역할을 받아들였다. Fred는 리눅스 네트워킹 소프트웨어를 이끌어가는 방향에 대한 야심찬 계획을 가지고 있었으며, 이러한 방향으로 진행해 나갔다. Fred는 'NET-2' 커널 코드라 불리는 일련의 네트워킹 코드를 만들어 냈는데(Ros s의 것에서 유래한 'NET'), 이것은 많은 사람들이 유용하게 이용할수 있었다.

Fred는 정식으로 몇개의 개혁안은 개발 예정안에 집어넣었는데, 다이나믹 디바 이스 인터페이스, 아마추어 라디오 AX.25 프로토콜 지원, 좀더 모듈적으로 디자 인된 네트워킹 implementation들이 그것들이다. Fred의 NET-2 코드는 꽤 많은 수의 열광자들에 의해 사용되었으며, 그 수는 그 소프트웨어가 동작한다는 말이 퍼짐에 따라 계속해서 늘어갔다. 이 시기의 네트워킹 소프트웨어는 스탠다드 커 널에 대한 수많은 패치에 불과했으며, 보통의 릴리즈에 포함되지도 않았다. net -faq와 이어지는 net-2-howto는 그 모든것들이 동작하도록 꽤 복잡한 프로시져 를 기술한다. Fred의 촛점은 스탠다드 네트워크 implementation에 대한 신기술 의 개발에 있었으며 이것은 시간이 걸리는 일이었다. 사용자들을 무언가 믿을만 하게 동작하고 80% 정도의 사용자를 만족시킬수 있는 것을 기대하며 인내심을 잃어갔으며 Ross의 경우와 마찬가지로 리드 개발자로서의 Fred에 대한 압력이 생겨났다.

Alan Cox < iialan@www.linux.uk.org>는 이러한 상황을 타개하기 위한 해결책을 제시했다. 그는 Fred의 net-2 코드를 가져다 디버깅을 하고 안정적으로 만들어 서 인내심없는 유저들을 만족시키고, 압력으로부터 Fred를 구제해 주는동안 그 가 자신의 작업을 계속할수 있게 해주었다. Alan은 `Net-2D(ebugged)'라 불리는 자신의 첫째 버전인 리눅스 네트워킹 코드를 성공시키며 이러한 일들을 해나갔 다. 이 코드는 많은 전형적인 환경속에서 믿을만하게 동작했으며 사용자들을 행 복하게 해주었다. Alan은 확실히 그 프로젝트에 공헌할 수 있는 자신만의 아이 디어와 기술을 가지고 있었으며, NET-2 코드의 방향과 관계된 많은 논의들이 이 루어졌다. 거기에서 리눅스 네트워킹 사회속에서 서로다른 두개의 그룹이 생겨 났는데, 하나는 '일단 동작하게 만들고, 그 뒤에 더 잘 만들자'라는 철학을 가 지고 있었고, 다른 하나는 '아예 처음부터 잘 만들자'라는 철학을 가지고 있었 다. Linus가 결국에는 중재를 하고, Alan의 개발 노력에 지지를 표하며, 그의 코드를 스탠다드 커널 배포본에 포함시켰다. 이것은 Fred를 곤란한 입장으로 만 들었다. 계속되는 개발들이 그 코드를 사용하고 테스팅할 기반을 잃게 되며, 그 것은 또한 개발 진행과정이 더뎌지고 어려워짐을 의미했다. Fred는 짧은 기간동 안 개발을 계속하다 결국은 포기하고 말았으며, Alan 리눅스 네트워킹 커널 개 발 노력의 새로운 리더가 되었다.

Donald Becker < becker@cesdis.gsfc.nasa.gov>는 곧 네트워크의 로우 레벨 국면 에 대한 자신의 재능을 드러냈으며 막대한 양의 이더넷 드라이버를 개발해냈다. 현재의 커널에 들어가는 거의 모든 이더넷 드라이버는 Donald에 의해 개발된것 이다. 중요한 공헌을 한 다른 사람들도 있지만 Donald의 업적은 정말로 풍부하 고 특별한 것이었음을 언급한다.

Alan은 얼마동안 계속해서 NET-2-Debugged 코드를 개선해 나갔으며 'TODO' 리스 트상에 어드레스되지 않은채로 남아있는 문제들을 진행해 나갔다. 리눅스 커널 1.3.*가 이빨을 드러낼때쯤까지 커널 네트워킹 코드는 현재 버전의 기반이되는 NET-3까지 발전해 갔다. Alan은 네트워킹 코드의 수많은 다른 국면에서의 작업 을 해나갔으며 리눅스 네트워킹 커뮤니티에서 온 많은 재능있는 사람들의 도움 을 받아 모든 방향에서 코드를 성장시켜 나갔다. Alan은 다이나믹 네트워크 디 바이스와 최초의 표준 AX.25 그리고 IPX implemenatation 을 만들어 냈다. Alan 은 계속해서 그 코드를 주물럭거렸고(? ^^;) 지금의 상태에 이르기까지 발전시 켜 나갔다.

PPP의 지원은 Michel Callahan < callahan@maths.ox.ac.uk>과 Al Longyear< longyear@netcom.com>에 의해서 추가되었는데 이것은 네크워킹의 사용을 위해 리눅스 를 사용하는 사람들이 증가에 대해 지나치게 비판적이었다.

Jonathon Naylor < jsn@cs.nott.ac.uk>는 Alan의 AX.25 코드에 NetRom 프로토콜 지원을 추가함으로써 커다란 공헌을 했다. AX>25/NetRom의 지원은 대단히 중요 한데 리눅스를 제외한 다른 어떤 운영체제도 이를 표준의 지원으로 삼고있지 않 기 때문이다.

리눅스 네트워킹 소프트웨어의 발전에 중요한 공헌을 한 사람은 물론 그 외에도 많이 있다. 이들중 몇몇을 여러분은 기술적인 특정부분에 마주치게 될것이다. 그 외의 다른사람들은 모듈, 드라이버, 버그 수정, 제안, 테스트 리포트, 그리 고 정신적인 지지등에 공헌했다. 모든 것들이 다 중요한 역할을 했다고 주장할 수 있으며 그들이 할수있는 것들을 제공했다. 리눅스 커널 네트워킹 코드의 개 발은 리눅스 스타일의 부정부주의적 개발의 결과로 훌륭한 예가 된다. 그것이 여분을 놀라게하지 않았다면, 놀랄준비를 하라. 그것의 개발은 아직도 끝나지 않았다.

4.2 리눅스 네트워킹에 관한 다른 정보는 어디에서 얻을것인가?

리눅스 네트워킹에 관하여 좋은 정보를 얻을수 있는 몇가지 장소가 있다.

현재의 리눅스 커널 네트워킹 코드의 메인테이너인 Alan Cox는 리눅스 네트워킹 의 현재 그리고 새로이 개발되는 것들을 조명하는 www 페이지를 운영하고 있다. < www.uk.linux.org/NetNews.html>.

다른 좋은 장소는 Olaf Kirch가 쓴 Network Administration Guide란 책이다. 이 것은 Linux Document Project의 작업물이며 < sunsite.unc.edu/LDP/> 여 러분은 이것은 Network Administration Guide HTML 버전으로 언제라도 읽을수 있다. < sunsite.unc.edu/LDP/LDP/nag/nag.html> 그렇지 않으면 여러분은 the sunsite.unc.edu LDP ftp archive로 다양한 포맷으로 된것을 구할수도 있 다. < sunsite.unc.edu/pub/Linux/docs/LDP/network-guide/> Olaf Kirch의 책은 이해하기가 쉽고 리눅스 상에서의 네트워크 설정에 대해 하이 레벨의 관점 을 제공한다.

리눅스 뉴스 계층에서 네트워킹과 관련된 분야에서 공헌하는 뉴스그룹도 있다. comp.os.linux.networking <news:comp.os.linux.networking>

리눅스 네트워킹에 관계된 질문을 할수있는 곳으로 등록할수 있는 메일링 리스 트도 있다. 등록을 하기 위해서는 다음의 메일을 보내라:

To: majordomo@vger.rutgers.edu

       Subject: anything at all
       Message:
    subscribe linux-net
많은 IRC 네트워크 상에는 종종 리눅스 채널 #linux가 있으며 여기에서 사람들 은 네트워킹에 관한 질문의 답을 들을수도 있다. 어떤 문제점을 리포팅할때는 가능한 한 관련된 사항을 많이 포함해야 하는것을 기억해라. 특히 여러분은 자신이 사용하는 소프트웨어의 버전을 명시해야 하는 데 특히 커널 버전, pppd나 dip같은 툴의 버전, 그리고 여러분이 경험한 문제의 특성을 정확히 언급해야 한다. 이것은 여러분이 내린 명령과 나타난 에러메시지 의 정확한 구문을 기록해야 함을 의미한다.

4.3 어디에서 리눅스에 국한되지 않은 네트워크 정보를 얻을수 있는가?

여러분이 tcp/ip 네트워킹의 기본적인 학습을 마친상태라면 다음의 문서를 찾아 볼것을 권장한다.

tcp/ip introduction

this document comes as both a text version < athos.rutgers.edu/runet/tcp-ip-admin.doc> and a postscript version < athos.rutgers.edu/runet/tcp-ip-admin.ps>.

tcp/ip에 관한 좀더 세부적인 정보들을 알고난 뒤라면 다음의 것을 강력히 추천 한다.

"Internetworking with TCP/IP"

       by Douglas E. Comer
    ISBN 0-13-474321-0
       Prentice Hall publications.
유닉스 호환 환경에서 네트워크 어플리케이션 작성에 관해 배우고 싶다면, 다음 을 강력히 추천한다.

"Internetworking with TCP/IP"

       by Douglas E. Comer
    ISBN 0-13-474321-0
       Prentice Hall publications.
 
comp.protocols.tcp-ip를 뒤져볼수도 있다. <news:comp.protocols.tcp-ip>

인터넷과 tcp-ip 프로토콜 suite과 관련된 특정 기술 정보의 중요한 소스하나가 바로 RFCs이다. RFC는 'Request For Comment'의 머릿글자이며, 인터넷 프로코톨 의 표준을 제안하고 도큐먼팅 하는 표준적인 방법이다. RFC를 보관하고 있는곳 은 많이 있다. 이 사이트의 상당부분은 FTP 사이트이며 특정 키워드로 RFC 데이 터베이스를 검색할수 있게 연결시켜논 www 사이트도 있다.

RFC를 위한 소스중 하나가 다음에 있다. < pubweb.nexor.co.uk/public/rfc/index/rfc.html>


다음 이전 차례