FreeBSD 9월 상황 보고(Status Report) (상)

원래 2달에 한 번씩 나오는 상황 보고가 이번에는 좀 오랜만에 나왔네요. 다 읽기 귀찮은 분들을 위해 주요 부분만 간략하게 요약해 봅니다. :) 일단 오늘은 앞쪽 반만~

  • FreeBSD 블루투스 스택

    • Maksim Yevmenkin씨가 정력적으로 추진하고 있는 블루투스 스택 (netgraph 구현)

      은 ng_ubt(4)와 ng_hci(4), ng_l2cap(4) 커널 모듈이 계속 버그가 고쳐지고 있으면서 때때로 -CURRENT에 커밋되고 있습니다. 그리고, 또한 유저랜드 라이브러리인 libsdp(3)과 sdpcontrol(8)나 무선용으로 개조된 ppp데몬인 rfcomm_pppd(8)등 릴리즈 품질으로 계속 다가가고 있는 듯합니다. 그리고, 몇몇 자원자들은 FreeBSD 블루투스 스택을 NetBSD나 OpenBSD에 이식하려는 뜻을 보이기도 했으며, netgraph 의존적인 부분을 제거하는 작업도 스물스물 진행되고 있다고 합니다. (참고로, Maksim씨는 원래 코드를 커밋해 주던 담당 커미터가 이제 블루투스에 관심 없다고 하는 바람에 곧 직접 커미터가 될 예정입니다. :) )

  • ACPI

    • ACPI 새로운 기능이 들어오면서 생긴 버그들을 계속 고치고 있다고 합니다. 그리고, ACPI

      2.0을 지원하고 더욱 안정적 새로운 내장 컨트롤러 드라이버가 7월에 들어왔다고 합니다. 최근에는 devd(8)과의 연동이나 ASUS, 도시바 핫키 드라이버, Cx 프로세서 잠자기 상태 지원같은 것들이 작업 중에 있다고 합니다.

  • AMD64로의 이식

    • 마지막으로 릴리즈를 방해하던 한 버그가 고쳐졌다고 합니다. 그리고 SMP 지원도 거의 완성

      단계에 이르고 있고, 며칠 안에 커밋될 예정이라고 합니다. XFree86은 커밋된 MTRR 패치로 이제 동작할 수 있게 되었고, ezm3는 아직 포팅이 완성되지는 않았지만 cvsup은 잘 된다고 합니다. 아직 gdb 지원이나 DDB지원, amd64 리눅스 에뮬레이션, i386 FreeBSD 에뮬레이션 같은 기능들은 작업을 더 해야한다고 합니다. 몇몇 버그가 보고되기는 했지만, 현재 amd64 플랫폼에서 FreeBSD가 매우 안정적으로 작동하고 있는 편이라고 합니다.

  • ATAPI/CAM

    • ATAng가 들어옴으로 인해 ATAPI/CAM 사용자들은 그동안 몇가지 문제를 겪고 있었는데,

      오랫동안 숨어 있었던 버그 두개를 고치는 것으로 이제 보다 안정적으로 동작할 수 있게 되었고, DMA를 안전하게 켜서 성능을 향상할 수 있다고 합니다.

  • 바이너리 업데이트에 의한 보안 패치

    • 예전에 있었던 binup 프로젝트의 부활인 “FreeBSD Update”는 cvsup보다 적은 대역폭으로

      더 빠르고 안전하게 바이너리를 업데이트할 수 있도록 할 계획이라고 합니다. 이 프로젝트에 대한 내용은 논문을 읽어보고 곧 더 자세히 쓰도록 하겠습니다. :)

  • bsd.java.mk 2.0

    • Java 포트들 간의 조화된 환경을 위한 bsd.java.mk는 자동화된 JDK/JRE 빌드와

      실행 의존성 체크을 목적으로 2.0을 새로 개발하려고 하고 있으며, 여기서는 더 많은 JDK/JRE 들을 서로 조화롭게 사용할 수 있도록 개선할 것이라고 합니다.

  • 인텔 C 컴파일러로 FreeBSD 컴파일하기

    • NFS가 정상 작동하지 않고 IP가 불안한 것을 제외하고는 대체로 제대로 되는 편이라고 합니다.

      FreeBSD Project는 Intel로 부터 icc를 설치해서 사용하고, 빌드된 바이너리를 배포할 수 있는 정식 라이센스를 받았기 때문에 앞으로 FreeBSD 클러스터에 깔아서 더 많은 시도를 해 볼 것이라고 합니다. 또한, icc는 펜티엄4 최적화가 gcc에 비해서 아주 좋다는군요 :)

  • 암호화 지원

    • SafeNet 1141과 Hifn 7955, 7956 크립토 카드 지원이 추가되었습니다.

      Sam Leffler의 크립토 서브시스템에 대한 논문이 BSDCon 2003에서 최우수 논문상을 받았다는군요

  • 디스크 입출력

    • scsi-cd, atapi-cd, fd가 GEOM 드라이버에 편입되고 있는 중이라고 합니다. 그리고,

      소프트업데이트, 스냅샷 지원이 SPECFS에서 UFS/FFS쪽 코드로 옮겨지고 있습니다.

  • 동적 링크 루트 지원

    • WITH_DYNAMICROOT 플래그가 켜지면 다이내믹 루트가 설치가 되게 되었습니다. 좀 더 많은

      테스트를 거친 뒤에 5.2에서 디폴트로 갈 지 결정될 것이라고 합니다.

  • FreeBSD-Java

    • Sun으로 부터 인증된 정식 네이티브 환경인 Diablo JDK/JRE가 릴리즈되었습니다.

      머지 않아 JDK 1.4 지원이 가능해질 것이라고 합니다.

  • 포트(ports) 모니터링 시스템

    • 각 포트에 관련된 PR과 벤또 클러스터의 빌드 에러 보고, 빌 페너씨의 distfiles 조사같은

      것들을 한데 묶어 포트를 한꺼번에 모아서 볼 수 있도록 하는 작업이 진행 중이라고 합니다.

한글날!

0310-hangul.jpg

세종로 ‘ㅎ’ (한겨레신문)

오늘은 한글날입니다. (앗 깜빡할 뻔~)

요즘 가요들 제목이나 길거리 간판을 볼 때나 외래어를 남용하는 유식한 전문가들의 기고글을 볼 때마다, 한글이 점점 버림받아가는 것만 같아서 슬픕니다. 흑흑~ 유니코드에 등록된 음절 문자들 중에 대충 봐도 단연 한글이 돋보이는 데 말이죠~ 글자도 예쁘고.. 이히~

[WWW]kz님이 제대하시기 전에 얼른 libhangul을 완성해야겠다는 다짐을 해 봅니다. (;;)

☆ 파페포포 투게더 ☆

[ISBN-8970650016] 작년에 예쁜 책으로 인기를 끌었던 『파페포포 메모리즈』의 후속편인 『파페포포 투게더』가 나왔네요. (앗 “나왔네요”라고 쓰기엔 좀 늦었나 =3)

인터넷 게시판에서도 여기저기 조금씩 흘러다니고 있는 것 같기도 하지만, 아무래도 뭔가 재질 때문인지, 책으로 보면 훨씬 따뜻하고 감정이 잘 묻어나는 것 같습니다. :) 선물용으로도 정말 좋겠네요. (『우주인』과의 대결은~!?)

이번 『파페포포 투게더』에서는 부록으로 브로마이드를 주는데, 회사 자리 옆에 걸어놓기 딱 예쁘겠네요 :)

0310-papepopo1.jpg

『파페포포 투게더』는 『파페포포 메모리즈』보다는 전체적으로 약간 흔한 주제를 갖고 다루고 있기는 한데~ 역시 그림이 워낙 예쁘다보니 같은 얘기를 갖고도 더 공감하게 되는 그림에 의한 강화 효과가;;; 꿈에도 파페가 나옵;; 크크;; (그나저나, GNOME/KDE용 파페포포 테마 같은 것있으면 얼마나 좋을까 잠시 생각을) 『파페포포 메모리즈』나 『우주인』 팬이라면 필수 소장품으로 강력 추천합니다~! 에헤헤. 물론 선물용으로도 +_+!

『파페포포 메모리즈』에는 없었던 에피소드별 요약(?)

0310-papepopo2.jpg

깔끔하고 독특한 이국적인 맛 – Cubana Mango

0310-cubana.jpg

양으로 승부하는 망고음료 등장! 쿠바나 망고 가난하고 배고픈 망고 매니아들을 위한 망고 음료가 나왔군요 흐흐흐. 475ml짜리 유리병이 1300원~1500원대! 꺄아~~☆

이번에도 빠질 수 없는 벤치마크를.. 흐흐 이번엔 결산하는 의미에서 전에 리뷰했던 망고 음료 성분표를 전부 같이 보겠습니다~

상품명

판매원

망고 과즙

망고 퓨레

단것

첨가제

비타민

기타

델몬트 망고

롯데칠성음료

없음

필리핀산 20%

백설탕, 액상과당

말토덱스트린, 구연산

표시 안 됨

없음

가야 망고농장

가야식품

이스라엘산 40%

필리핀산 6%

액상과당, 백설탕(정백당)

없음

표시 안 됨

복숭아 농축액 (미국산 5%)

썬업 델츠 망고

매일유업

이스라엘산 25%

인도산 5%

백설탕, 액상과당

구연산, 엽산

B1, B2, B6, C, D, E

없음

샤니 스위트 망고

샤니제과

없음

태국산 5%

정백당, 액상과당

구연산

비타민C

망고향

내사랑 망고

웅진식품

없음

필리핀산 20%

액상과당

구연산

비타민C

망고후레바

동일 망고홍차

동일식품

없음

태국산 6.38%

정백당, 포도당

없음

표기 안 됨

복숭아홍차분말(고형분 20%) 0.63%, 망고향분말 1.26%

망고우유

롯데칠성음료

없음

필리핀산 3%

액상과당

없음

표기 안 됨

원유(환원유 40%, 국산), 탈지분유, 망고향

쿠바나 망고

해태음료

없음

콜롬비아산 10%

액상과당, 설탕

구연산, 글리세린지방산에스테르

표기 안 됨

없음

맛은 표기된 성분표시처럼 20%이상의 망고퓨레/망고과즙 함유량을 가진 정통 망고음료들 보다는 망고 성분이 좀 적은 편이라, 달짝지근하게 혀를 감고 지나가는 맛보다는 포카리 스웨트처럼 구연산과 글리세린지방산에스테르의 조화로 깔끔하고 약간 여운이 남는 맛이 강합니다. 그래서 사실 다른 델몬트 망고류 보다는 약간 시고 덜 달콤한데 아침에 시원하게 먹기는 아주 괜찮을 것 같군요 :) 무엇보다도 가격대 양의 비율이 -ㅁ-;

FreeBSD에서 iPod for Mac 사용하기

캬캬캬~ (환희에 넘쳐서;)

그동안 느리디 느린 iBook 500에서 싱크하느라 정말 고생했는데, 이제 드디어 해방입니다 만세 -ㅁ-; 지난 주에 1394카드를 사서 오늘 이제 서울로 돌아와서 시도를 해 봤는데. 잘 되는군요. ^_^*

제가 갖고 있는 iPod 2세대(터치 휠)는 맥용으로는 HFS+로 포맷되어있는 파이어 와이어 외장 하드디스크로 인식이 되는데, 다행히도 FreeBSD에서 iPod쓰려는 삽질러들의 노력으로 아주 간단하게 싱크가 가능하게 되었습니다. 먼저 준비물은, 올해 8월 이후의 -CURRENT가 필요한데, HFS패치때문에..

일단, firewire모듈은 지금 베이스에 통합이 되어 있어서 따로 넣어줄 필요는 없습니다. 그런데, HFS+ 파일시스템 지원 모듈이 아직 베이스에 통합되지 않았기 때문에 따로 인스톨을 해 줘야하는데 http://people.freebsd.org/~yar/hfs/ 에서 받으실 수 있습니다. 사실 요걸 8월 27일 이후 CURRENT에 설치하면, 컴파일이 중간에 하나 안 되고 뻑나는데 CFLAGS에 -DB_LOCKS=0을 넣고 컴파일하면 됩니다. 8월 27일 jeff의 커밋에서 B_LOCKS가 빠지는 바람에… 빼서 좀 불안하긴 하지만, 뭐 그런대로 잘 되는듯;

그 다음부터는 필요한 커널 모듈만 올려주면 바로 끼우기만 하면 됩니다.

으흐흐 이렇게 바로 마운트 해서 Contacts (iCal같은 데서 쓰는)의 vCard도 접근할 수 있고, mp3디렉토리에도 들어갈 수 있군요. 그리고, [FreshPorts]audio/gtkpod 를 사용하면 직접 iTunes처럼 관리도 할 수 있습니다! 흐흐

0310-gtkpod.png

그런데, gtkpod의 하나 다른 점은 플레이하면 직접 플레이하는 게 아니라 xmms를 호출한다는… –;;;

그리고, 언마운트할 때 마구 뽑아버리면 문제가 좀 많은데 반드시 언마운트하고, 이젝트하고, 그 다음에 리셋해준 다음에 뽑아줘야 한답니다.

이렇게 안 해주면 또 마운트하고 싶으면 리붓해야 하는 OS X에서랑과 같은 현상이 –; 아, 그리고, 파일 시스템이 UTF-8이긴 한데, 한글이 U+1100영역으로 분리되어서 들어가기 때문에 [FreshPorts]x11/gnometerminal 같은 걸로 보면 풀어쓰기한 것처럼 보이는데, 뭐 딱히 패치하기도 난감한 것이.. -.-;;; 그냥 그대로 써야겠네요..

으흐흐.. iPod for Mac 사용자 분들은 다들 한 번씩 시도해 보세요 =3

Py-RCS를 만들던 중에…

요즘은 대구에 와서 파이썬에서 바로 RCS파일에 접근할 수 있도록 하기 위해 RCS 라이브러리 바인딩을 하고 있습니다. 제대로만 되면, 모인모인이나 ViewCVS 같은 곳에 활용할 수 있기에 정말 좋을텐데요.. 으흐

일단, Paul Eggert가 메인테인하는 RCS는 지나친 추상화와 전역변수의 과도한 사용, 자승자박 형태의 레이어 넘나들기로 인해서, 별도로 떼어 내기 매우 힘든 상태였습니다. 이 점은 CVS의 소스에서도 지적하고 있는데, Paul Eggert도 인정했다는군요.. -O-;

그리고, 그 외의 오픈소스 RCS라이브러리로 있는 것이 CVS와 Perl에 있는 VCS-RCS가 있는데 Perl은 이번 목적이 아니니 제쳐두고, CVS의 RCS Library는 비교적 깨끗한 설계 구조가 괜찮았는데, 여기서는 모두 struct RCSNode로 RCS파일 하나씩을 추상화해서 처리하고 있고, 부분파싱, 전체파싱, 부분쓰기, 전체쓰기 같은 기능을 지원하고, diff를 RCS처럼 외부 호출로 부르는 것이 아니라 직접 GNU diff를 내장 호출해서 부르기 때문에 오버헤드를 최소화했다는 점이 장점입니다.

그런데, 여기서 나타난 문제 -.-;

CVS는 일반적으로 프로그램이 곧 실행되고 끝나는 구조이기 때문에, 프로그램의 곳곳에서 에러가 나는 경우에 그냥 프로그램을 종료하는 것으로 에러를 처리하고 있습니다. 그러나, 이번에 만들 것은 파이썬 바인딩이므로 에러가 났을 때도 단지 익셉션만 내야지 프로그램을 끝내면 큰일 나겠죠;; 그래서 처리한 방법은, CVS가 GNU diff를 내장하기 위해서 사용한 방법인 “호출전에 setjmp하고 exit하는 부분에서 longjmp하기” 무공을 사용해서 처리했습니다. 우선은 그 방법으로 잘 돌아가는 듯 했으나.. 문제는 메모리, 리소스 -_-;; exit하는 판에 메모리까지 해제할 필요가 없으니.. CVS는 그냥 프로그램을 끝냈던 것.. 그러니 longjmp로 그냥 빠져나오면 메모리가 철철철새서, 1분만 열심히 돌리면 200메가짜리 덩치가 됐었습니다. 으흐.. 메모리 문제 뿐이라면 그냥 Boehm GC로 한 번 해결해 보려고 했는데, 파일을 열고 안 닫는 등 몇가지 추가적인 문제가 있어서;; (파일 디스크립터용 gc라도 만들어야할 판;)

그래서 찾은 또 다른 방법은.. RCS Library에서 exit를 호출하는 부분을 모두 패치해버리기인데, 지금 RCS Library에서 exit로 빠져나가는 부분(정확히는 error함수의 첫째 인자에 0아닌 값을 주는 곳)이 grep해보면 무려 109군데나 되어서.. 그 부분을 모두 메모리와 파일디스크립터를 해제하고 빠져나오게 고치려면.. (꾸에엑~~~)

그리고, 이 문제를 해결하더라도 CVS가 GNU diff를 호출하는 부분 역시 메모리와 파일 디스크립터를 질질 흘리고 다니는 문제점은 여전히 있어서, diff를 할 때 마다 에러가 나면 메모리가 새는 문제는 여전하게 됩니다. 앗싸아~; CVS로 큰 디렉토리 커밋하거나 체크아웃할 때 메모리를 엄청 먹는게 사실은 정당하게 먹는 게 아니라 GNU diff호출하는 부분에서 abort대신 longjmp해 버리는 바람에 메모리가 철철 새는 것이었던 것이었던 것입니다;; 무엥~

좋은 아이디어 있는 분은 꼭 알려주세요 @@~

지금까지 구현된 소스는 http://cvs.berlios.de/cgi-bin/viewcvs.cgi/yogurt/py-rcs/ 에 있습니다.

망고 홍차☆

흐흐흐.. 대구에 왔더니 《망고 홍차》가 다 있네요. 얼른 덥썩~ 흐흐

0310-mangotea.jpg

망고 홍차! 딸기 홍차, 레몬 홍차, 복숭아 홍차까지는 우찌 상상이 갔는데.. 망고 홍차는 과연 상상을 초월하는 뭔가였습니다. 그러나 이 망고 홍차는 기대를 져 버리지 않고.. 그냥 먹을만 하군요! 흐흐 우선, 형태는 퓨레팩으로 되어있습니다. 퓨레가 그대로 차로 녹아들어가기 때문에 거의 유자차 수준이네요.. 흐흐 (사실 맛만 봐서는 유자차인지 망고홍차인지;;;)

함량은 두구두구~

상품명

망고 과즙

망고 퓨레

단것

첨가제

비타민

기타

동일 망고홍차

없음

태국산 6.38%

정백당, 포도당

없음

표기 안 됨

복숭아홍차분말(고형분 20%) 0.63%, 망고향분말 1.26%

요건 적당량 물에 녹인 후 함량인데, 가격이 20개에 2500원인 것을 감안하면 상당히 괜찮지요~! 게다가 맛은 샤니것 보다 낫군요 크크.. (델츠나 델몬트보다는 좀~;;)

앞으로 나올 망고 제품은 뭐가 있을까요… 망고 쿠키, 망고 샌드위치, 망고 초콜렛, 망고 요구르트.. -O-; 아무래도 젤 기대되는 것은 “뚜또 요구르트” 망고맛 나오면 정말 좋을텐데요.. 크크

FreeBSD procfs 보안 취약점 발견

요즘 보안 버그가 종종 나오는군요~ 흐물흐물;;

FreeBSD에서는 사실 잘 사용되지는 않지만 procfs와 리눅스 호환성을 위한 linprcfs에서 보안 취약점이 발견되어, 커널 메모리가 일부 유출될 수 있다고 합니다.

구체적인 문제점은 procfs 읽기/쓰기요청에서 커널이 [FreeBSDMan]uiomove 를 사용하여 데이터를 옮겨주는데, struct uio안의 uio_offset이 음수이거나 엄청 큰 수면 커널 메모리가 유저의 접근이 허용되지 않은 메모리를 허용할 수 있다고 합니다.

procfs와 linprocfs는 일반적으로 FreeBSD에서는 디폴트로 꺼져있고 많이 사용되지 않기 때문에 일반적으로는 큰 문제는 없는데, [FreshPorts]sysutils/psmisc 같은 툴을 이용하려고 procfs를 마운트해서 쓰시는 분들은 얼른 업데이트 하셔야 겠네요..

파이썬 2.3.2 파이널 릴리즈

2.3.1에서 발견된 문제점들을 수정한 2.3.2가 릴리즈되었습니다. 2.3.1에서 있었던 주요 문제점은

  • os.fsync가 오타로 인해 빠짐

  • 소스 타볼에 CVS/ 디렉토리가 그대로 다 남음

  • OpenSSL 보안 버그 수정된 바이너리로 내장 (윈도우 배포본)

  • 문서 밑에 2.4.0a0이라고 나온 것 버전 제대로 수정

  • HP/UX에서 configure 제대로 되지 않던 문제 수정. (이 문제는 사실 HP/UX에서는 허구헌날 발생하는 거라서, 제대로 된다는 게 이상할 정도이긴 합니다. :) )

그리고, 다음 릴리즈인 2.3.3은 3달내에 다시 릴리즈할 예정이라고 합니다. FreeBSD포트는 지금 대구에 있는 관계로 조만간 업데이트할 예정입니다~