FreeBSD NDIS 호환성

블루님이 무려 5년 전에 [WWW]freebsd-chat에 제안하시기도 했고, 2달전, 슬래시닷에 [WWW]리눅스용이 공개돼서 열풍이 몰아쳤던 NDIS 드라이버 로더 호환성 레이어가 최근 FreeBSD에서 구현되고 있습니다.

리눅스용은 상용으로 공개된 반면에, FreeBSD에서는 메인스트림에 오픈소스로 들어오고 있다는 점이 아주 좋군요 :) NDIS를 처음 들어보시는 분들을 위해서 약간 소개를 드리자면, NDIS는 Network Driver Interface Specification으로 Microsoft와 3Com이 공동으로 개발한 네트웍 드라이버/프로토콜 드라이버 겸용의 스태커블 구조의 API입니다. Windows 95이후 모든 버전은 NDIS를 지원하고 있어서, 네트웍 카드들과 프로토콜 드라이버들 (예를 들면 WinPcap의 packet32나 Windows XP Wireless Zero Configuration에서 사용되는 ndisuio, 리눅쓰코리아의 DynaRADIUS WCM에서 쓰는 dot1xuio 드라이버 같은 것들)이 모두 윈도우 커널 API가 아닌 NDIS만을 사용해서 구현되어 있습니다. 따라서, 대부분의 윈도우용 네트웍 드라이버들은 NDIS만 구현하면 쉽게 다른 x86기반 OS에서도 사용할 수 있는 것인데, 이제 FreeBSD에서도 윈도우용 드라이버들을 쓸 수 있게 되는 것~! :)

소스를 보면, 지원되는 NDIS OID (SNMP처럼 OID기반 Query/Set을 합니다.)가 OID_STATUS, OID_GEN, OID_802_3, OID_PNP, OID_802_11 계열 밖에 없어서, 우선은 오직 무선랜 카드들만을 대상으로 하고 있다는 냄새를 맡을 수 있습니다. 역시 브로드콤의 정책때문에.. 으흐;;

그런데, 이제 앞으로 NDIS 레이어가 들어가버리면, 무선랜카드 드라이버들이 구현이 안 될테니 non-x86 아키텍처가 아주 큰 문제군요.. 그리고, NDIS가 3Com과 MS가 공동으로 특허를 갖고 있다는 것도 좀 찜찜~~

여하간.. NDIS 삽질을 정말 열심히 하고 있는 Bill Paul(wpaul@)씨 화이팅~ (Bill Paul은 FreeBSD의 다른 대부분의 랜카드 드라이버도 작성한 일종의 괴물 분류입니다. -o-)

18 thoughts on “FreeBSD NDIS 호환성”

  1. TB를 날릴 기회였는데 배고파서 뉴클리어스 트랙백 플러그인을 만지기 귀찮군요 🙂 여러가지로 볼때 그냥 환영만 할 일은 아닌것 같습니다. 유저입장에서는 편해지겠습니다만.. 글이 길어지겠네요. 영계소문가서 찜닭먹고 TB 플러그인 손봐서 TB 날려야…

  2. 크크.. 뭐 인텔에서의 윈도우 호환을 확보함으로써, 본 드라이버의 개발 의욕이 떨어지고, 주체성을 잃는다는 문제는 있지만, 무선랜카드 드라이버들의 경우에는 법적인 문제로 인해 하드웨어 제어 스펙이 공개되기 힘든 상황임을 고려해 보면, (무선 송출의 신호세기, 프로토콜 준수, 채널 점유 등의 법적인 제한이 하드웨어가 아닌 드라이버에서 구현된 카드가 많이 출시되어있습니다.) 어쩔 수 없는 상황이라고 볼 수도 있겠습니다.
    그리고, 하나 다행인 것은 NDIS는 상당히 디자인이 잘 되어있는 편에 속하고, 완전히 독립적인 API로 쓰일 수 있을 정도로 다른 MS 구성요소에 의존적이지 않습니다. POSIX에서도 NDIS같은 것 하나 정도는 있으면 좋겠다고 생각하고 있었습니다. 🙂

  3. 음.. 괴물은.. 그냥 한 분야에 대해서 엄청나게 깊고 넓게 파고 들어가는 사람을;;; -ㅇ-;
    FreeBSD쪽에서 예를 들면 ruby귀신인 k모씨나, 빌드 안 되는 포트에 대한 엄청난 포쓰를 가진 k모씨, 엄청난 배경지식을 갖고 있음에도 불구하고 실제 코드는 커밋 안하는 t모씨, 엄청난 양의 업데이트 PR을 매번 보내면서 절대로 커미터는 안 하겠다고 버티는 k모씨 등등이 있죠.. 흐흐 🙂

  4. 귀찮아서 TB 플러그인은 쳐다보지도 않았어요; 제가 말하고자 했던 부분을 무서울정도로 깔끔하게 정리해주셨군요. 그리고 미리 답변까지!! 퍼키옹은 역시 괴수.. 저는 환영하는 쪽이라기 보다는 우려하는 쪽입니다. 퍼키옹이 말씀하신 이유로요. 쩝.. 오늘은 게임이나~ =3=33

  5. 오잉 C 모씨는 별 업적이 없어서 –;;
    마지막 k모씨는 Kato Tsuguru라는 사람입니다. 1999년부터 1주일에 한번정도 PR을 10~20개씩 마구 보내서.. 현재 개인 통산 PR 개수 최대(2800개)를.. 으흐흐;; Kato씨는 커미터들이 커밋할 때 Submitted by:에 이름을 안 쓰고 “Ports Fury”라는 별명으로 써 줍니다. ;;;

  6. 정말로 파이썬 포트 80개는 그냥 몇줄도 안 되는 거 노가다로 이름만 바꾸면 금방이예요 –;

  7. 문제를 의뢰한 사장님: “어이쿠. 우리 메인 개발자가 얼마 전에 훈련소에 들어가서 무슨 구조인지는 전혀 모르겠고 하는구먼..” =3=3

Comments are closed.