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-)

아이언 파이썬

며칠 전 [WWW]Miguel의 블로그에 올라온 블로그가 크게 파장을 일으키고 있네요. Jython 개발자인 Jim Hugunin이 .NET 기반의 새로운 파이썬인 Iron Python을 만들어서 Microsoft 내부 메일링 리스트에 결과를 올렸는데, 예전의 Active State의 구현이나 Parrot계열의 Pirate의 실망스러운 결과와는 완전 상반되게 70%나 CPython보다 빠르다는 결과를 얻었다고 합니다. ([WWW]원본 메일 (Miguel의 복사본))

특히나 function call, integer add쪽은 CPython에서 엄청난 오버헤드가 있는 것으로 유명했던 부분이라.. 역시나 IL asm으로 직접 번역하는 것으로 구현된 Iron Python보다 엄청나게 느린 것으로 결과가 나왔군요. 그리고 range의 경우에는 메모리 할당이 단편적으로 엄청나게 일어나기 때문에 CPython이 유리한 게 나왔고 eval(“2+2”)쪽은 CPython은 컴파일러가 순수 C로 구현되어있기 때문에, 흐흐..

하여간 .NET IL asm으로 직접(C# 안 거치고) 파이썬 코드를 번역하면 아무래도 CPython보다 더 빠르지 않을까 생각하던 초기 .NET 개발자들의 예상은 대충 맞았다는 것이 증명되고 있는 듯 합니다. 아직 Iron Python이 많이 구현되지 않은 반면 최적화를 수행하지 않았기 때문에, 앞으로 변동이 좀 있을 것 같기도 한데.. 하여간 무지 기대가 되네요. :) (MS에 팔아먹으면 대략 낭패 –; )

한편, Iron Python이 오픈소스가 아닌 MS나 다른 회사의 상용 제품으로 들어가는 것을 대비해서 최적화를 계획해야할 텐데, CPython도 이제 슬슬 표준 환경에서의 JIT 지원에 대해서 본격적으로 진지하게 고려해 봐야 할 것 같기도 합니다. (PyPython은 아직 까마득.. 으흐…)

말 해줘도 모를거요.

얼마전에 읽은 스티븐 제이 굴드 논문 중에 인용한 일화가 재미있는 것이 있어서.. :)

분명하게 참인 것은 정의하기가 지독이 어려울지 모른다. 재즈의 정의를 묻는 열성 팬에게 답한 루이 암스트롱의 유명한 말은 이 점을 표현하는 전형적인 보기일 것이다. “신사 양반, 물어 봐야 하는 것이라면 말해 줘도 모를 것이오.”

— 스티븐 제이 굴드 《한 모더니스트의 선언문》 중에서 ([ISBN-8986270862] 생명이란 무엇인가 그후 50년에 포함)

파이썬이 왜 좋습니까? 질문을 들으면 참 설명할 것도 없고 해서 답답한데 앞으로 이런 대답을;;; (-o-;)

그래서 루이 암스트롱의 명언을 찾다가 또 멋있는 것을 하나 찾았습니다.

What we play is life, my whole life, my whole soul, my whole spirit is to blow that horn.

— 루이 암스트롱, 죽기 몇달 전에 공연 하지 말라는 의사에게 거절하며..

“Codito Ergo Sum”에 적극 동감하고 있던 터라.. 루이 암스트롱의 열정도 정말 멋있어서 따라하고 싶군요 크크;;

What we code is life, my whole life, my whole soul, my whole spirit is to code that program.

소프트 엑스포 방문기

으흐흐 지난 주 토요일에 갔었는데, 어제 밤샘하느라 바뻐서 오늘에야.. +_+

소프트 엑스포에 wooil님과 jiwon님과 함께 갔습니다. 가서 등록을 했는데 글쎄.. 명함을 안 주고 손으로 써서 줬더니 글자를 못 알아 봤는지..

0312-exponametag.jpg

흐흐흐;;

들어가서는 정보통신부 대회에서 ExmanIDE로 은상을 받으신 [WWW]exman님과 exman님의 깜찍한 여자친구분과 같이 만나서 다섯이서 점심을 먹으러 갔습니다. 크크 exman님은 상도 받고 병특도 끝나고 예쁜 여자친구도 있고 정말 부럽 +_+

그리고, KLDP 부스에 가서 드디어 권순선님도 처음으로 뵙고.. (알고보니 고등학교도 바로 옆 학교 나오시고.. 대학교도 같은 과 선배.. 크크;;) 책도 받고 초록색 맨투맨티도 받고 와와 역시 엑스포는 선물이 최고야~;; (사실은 사려고 미리 CD기에 들렀는데 -o-) KLDP 부스에서 krisna님 pyrasis님 양파님 외에도 닉네임만 들어오던 분들을 많이 뵈어서 아주 즐거웠습니다. :)

오픈소스, 엠베디드 쪽에는 공짜 부스가 많아서인지 지나치게 썰렁한 편이었기도 했는데.. 으음.. 뭐 사실 전시할 게 별로 없긴 한가;; 2회 파이썬 세미나때 CEO분이 참석하셨던 에호박이라는 회사도 이번에 참여한 것 같아서 반가웠습니다. :)

그리고, 이번 소프트 엑스포의 백미 선물인 바로 피망 화투! 도 받아왔는데. 역시 권순선님의 소프트 엑스포 가이드에서 들었듯이 최고네요. 이것 하나 만으로도 갔다온 보람이 뿌듯 -ㅇ-;

0312-pmang.jpg

그런데, 게임관 도우미 들을 보니… 앞으로 전시회를 자주 다녀야겠다는 생각이 -.-;;;;; (아 눈 높아지면 고생하는데 –;;) 뭐 하여간;; 평일이라 못 들었던 오픈소스 컨퍼런스 쪽은 정말 아쉬웠고.. 앞으로도 계속 평일에 한다는 계획인 진흥원 주최의 컨퍼런스는 아주 그렇군요 -.- 왜 다 평일인거야~

파이썬 커미터 되다.. ^^;;

http://sourceforge.net/project/memberlist.php?group_id=5470 (끝 쪽에..)

에헤헤.. 파이썬 커미터가 되었습니다. 앞으로 파이썬을 튼튼한 놈으로 키우겠습니다! (불끈!) 혹시 파이썬에 문제가 있는데 영어로 말하기 곤란하다 싶으시면 앞으로 문 앞에서 퍼키군을 찾아주세요 ~.~

멘터 Raymond Hettinger씨에게 이 자리를 빌어 많은 감사드립니다. (_ _) (한글은 모른다지만;;)

저는 앞으로 당분간은 PEP[PEP]289 구현 팀에서 일할 예정인데.. 스물스물 문화를 익히고 나서는 cjkcodecs나 iconvcodec을 불쑥 집어넣을 기회를 노려 보겠습니다. –;;

IPython

포트 PR이 올라왔길래 한 번 해봤습니다. 흐흐 IPython은 예전에 나왔던 [FreshPorts]devel/py-repl 같이 파이썬 인터랙티브 인터프리터 프론트엔드인데 오토 컴플릿 같은 몇가지 유용한 기능을 추가로 지원하는 녀석입니다. py-repl이 국제화가 제대로 안 된 것에 비해 IPython은 그래도 국제화도 잘 되어있고, 다국어지원도 대비되어 있네요.

젤 독특한 것은 젠투 만큼이나 화려한 칼라인데.. -.- 프롬프트가 녹색이고 에러는 빨간색이고 아주 난리가 납니다. 흐흐 아아 그런데, 왜 정작 신택스 하이라이트는 안 되는거야!! ㅎㅎ ;; 정말 아쉽네요~

오리지널 파이썬의 것 보다 인덴트도 좀 더 똑똑하고, import c<tab>누르면

요렇게 임포트 할 수 있는 모듈 이름도 나오고.. 흐흐 py-repl보다 대체로는 만족스럽군요. 한글도 잘 되구요. 신택스 하이라이트만 되면 정말 좋을텐데~~ 크크 :)

홈페이지는 http://ipython.scipy.org/ 이고, 포트에는 [FreshPorts]devel/ipython 으로 등록하려고 원 PR 저자에게 메일을 보냈습니다. 그 사람은 devel/py-ipython으로 만들었는데, 아무래도 모듈로 쓰이는 게 아니니까 그냥 py-를 안 붙이는 게 나은 것 같네요

Python 2.3.3 릴리즈 예정

Python 2.3.3이 2주일 내로 릴리즈될 예정이라고 합니다. (대략 크리스마스때 쯤..)

파이썬 역사상 가장 단기간에 .3까지 달아버린 이번 릴리즈에서는 이런 것들이 고쳐집니다:

  • weakref 객체에서 segfault나는 버그 수정 (Blog0311/WeakrefObject)

  • IntFutureWarning, apply 내장함수, coerce 내장함수 등 몇가지 2.4 이후 버전에 대해 유연한 업그레이드를 위한 경고 추가. (2.4부터는 apply 함수도 deprecate에 들어갑니다.)

  • IDLE의 몇가지 버그 수정

  • 파이썬이 죽을 때 gc가 콜렉션을 두번 해서 특수 환경에서 제대로 종료되지 않는 현상 해결

  • object.contains (in 연산자)가 0/1이 아니라 True/False를 리턴하도록 수정

  • 한글 음절을 노멀라이즈하는 도중에 죽는 문제 해결

  • 내장 expat이 1.95.7로 업그레이드

  • FreeBSD와 MacOS X에서 ncurses.h 경고 안 나오도록 수정

  • distutils가 MSVC6에서 정상 동작하지 않는 버그 수정

이라고 합니다.

FreeBSD 포트 Semi-Frozen

FreeBSD 포트가 방금 반이 풀렸습니다. 요즘은 Half Freeze Duration 마법 걸린 아이템을 샀는지 freeze기간이 상당히 짧아졌네요. 작년엔 2달씩 막 하더니만 –;

KDE나 GNOME같은 대형 포트들은 업데이트가 금지되지만, 간단하고 작은 포트들은 semi-frozen상태에서 업데이트가 허용 됩니다.