리눅스 이상한데?

오늘 보니 리눅스에서 사용하는 ping은 수신한 echo reply 메시지의 ICMP checksum을 확인하지 않는 듯하다.

커널 코드를(2.6.10)을 확인해 봤는데 통상 ICMP 패킷 수신을 위해 사용하는 raw socket으로 수신한 패킷을 복사해주는 시점은 IP header를 처리하는 와중.

결과적으로 수신한 echo reply에 대해서는 kernel도 ICMP checksum을 확인하지 않고, ping application도 확인하지 않는 듯. 뭐 이래.

반면 FreeBSD에서는 raw socket으로 패킷을 전달하는 시점이 ICMP protocol 처리한 후에 있는 듯하다. 그래서 ICMP checksum 에러난 패킷은 비정상적인 패킷이므로 application에게 주지도 않는 듯.

이게 맞다면 리눅스 좀 실망인데…

Continue reading “리눅스 이상한데?”

"Linux is evolution, not intelligent design"

내가 아는 거의 모든 S/W manager들이 이 말을 들으시면 기겁을 하겠지만 Open source 개발의 대표 중의 하나인 리눅스 커널은 그분들이 보기엔 정말 엉망인 S/W 개발 과제다.

> The Kernel has no obvious design

커널은 설계부터 시작한 것이 아니라(물론 처음에 토발즈씨가 할 때는 그랬을 지도 모르지만) 진화하는 방식이고, 무수히 많은 사람들이 함께 개발하는 거라 오히려 설계, 설계 리뷰, 구현, 시험의 통상적인 개발 process 를 지키기 어렵다.

차라리 (개인적인 수준의 설계), 구현, commit, 다수에 의한 리뷰/시험, 수정의 개발 process가 더 효과적이다.

> Open-source development violates almost all known management theories.

혹시나 이글에서 언급하고 있는 내용을 말씀드리면 그런 말을 하지 않으실까?

> 그 S/W 개발자랑 우리 개발자는 다르잖아.

개발자의 역량이 다른 것도 사실이지만, 다른 점 측면에서는 그런 점은 새발의 피가 아닐까?

재밌는 글이다.

> Documentation/stable_api_nonsense.txt

리눅스 커널의 경우 필요하다면 user application에 제공하는 API까지 바꿔버린다고 한다. 이 점에 대해서는 논쟁 거리가 많을 듯하다. 호환성을 중시할 것인지(MS Windows나 99% 이상의 S/W manager가 그렇듯이) 아니면 S/W 코드를 심플하게 유지하고, 개발자들을 늘 긴장하게 하여 커널 변경에 따라 코드를 함께 수정하게 할 것인지.

일단 코드 변경은 불안정성을 발생시킨다는 통념에 따르면 이 역시 관리자 입장에서는 말도 안되는 생각이라고 할 것이다.

재밌는 글이다.

– [리눅스 커널에 대한 신화, 거짓, 그리고 진실] (http://barosl.com/blog/entry/myths-lies-and-truths-about-the-linux-kernel) – [원문](http://www.kroah.com/log/linux/ols_2006_keynote.html)

Today's hack

python을 이용한 flickr uploader.

코드를 보니 이 녀석 역시 지정된 디렉토리 이하에서 파일들(확장자가 jpg, gif, png인 놈)을 찾아서 리스트를 만든 후 그 리스트에 있는 것들을 하나씩 flickr로 올리는 방식이다.

지금 2005년도 사진을 올리라고 했는데 전체 몇 개중에 몇 개나 올라갔는지 확인하는 기능이 없어 쬐금 아쉽다. 진작 알았으면 간단하게 몇 줄 추가하면 될 것인데…

수정본: 미리 업로드할 사진 파일의 갯수를 표시한 후 매번 업로드할때마다 전체 갯수대비 현재 작업수를 표시해줌.(퍼센트로 표시하면 더욱 좋겠구만)

추가) 근데 flickr는 중복된 사진을 업로드하는 경우 그냥 계속해서 추가해 버린다. 쩝. 이상하게 2005년 사진을 올리라고 한 스크립트가 죽어버렸다. 그래서 다시 올리라고 했더니 이미 업로드한 사진을 다시 올린다. 혹시나 해서 봤더니 flickr에 똑같은 사진이 2번 올라와 있다. 쩝.

아하~  원래 해당 스크립트가 특정 디렉토리의 내용이 변경된 경우 변경된 파일만 골라서 업로드를 해주는 기능이 있다.이를 위해서 프로그램은 자신이 작업한 내용을 history db 파일에 저장해 놓는다. 근데 어제 내가 한 일은 3개의 창을 열어놓고 서로 다른 디렉토리를 업로드한 것이다. -_- history 파일은 하나인데. 결국 db 파일이 서로 다른 3개의 instance에 의해 건드려졌으니 단단히 꼬였을 것이고, 결국 매번 올릴 때마다 기존 db와 다르다고 생각하고 파일을 새로 올린 듯하다. 이를 우째

Python으로 작성한 맥/리눅스용 photoworks

맥에서 가장 아쉬운 것 중의 하나인 photoworks의 부재. 비슷한 프로그램이 몇 몇 있지만 아무리 봐도 기능이 photoworks만 못하고, 액자도 아쉬웠다. 그런데 국내 Python 사용자 모임의 글을 보니 멋진 방법으로 photoworks의 액자를 사용하는 소스가 올라왔다.

이미지 파일 처리를 잘 몰라 정확한 내용은 잘 모르겠지만 대충 본 봐로는 액자 파일과 이미지 파일을 하나의 파일에 중첩으로 paste하는 형식을 띄고 있다. 우선 원본 파일을 적은 후에 그 위에 액자 파일을 덧씌우는 형식.

아직 해보지는 않았지만 잘 되리라 보고 조금만 손을 보면 배치작업등도 할 수 있겠다.

오늘 멋진 툴을 두 가지나 발견해서 뿌듯하다.

What is arp_announce?

Assume that a linux box X has three interfaces – eth0, eth1 and eth2. Each interface has an IP address IP0, IP1 and IP2.
When a local application tries to send an IP packet with IP0 through the eth2.

Unfortunately, the target node’s mac address is not resolved. The linux box X will send the ARP request to know the mac address of the target(or the gateway).
In this case what is the IP source address of the “ARP request message”? The IP0- the IP source address of the transmitting IP or IP2 – the outgoing interface?

Until now(actually just 3 hours before) ARP request uses the IP address assigned to the outgoing interface(IP2 in the above example)
However the linux’s behavior is a little bit different.
Actually the selection of source address in ARP request is totally configurable by the proc variable “arp_announce”

If we want to use the IP2 not the IP0 in the ARP request, we should change the value to 1 or 2. The default value is 0 – allow IP0 is used for ARP request.

Continue reading “What is arp_announce?”

Picasa for Linux

헉.
Google의 Apple에 대한 찬밥(?) 취급이 시작된 건가?
Google Calendar가 Safari에 대한 지원을 하지 않고 서비스를 시작한 것도 그렇고, PC용 photo management 프로그램으로 유명한 Picasa가 Mac OS X가 아닌 Linux용 버전이 먼저 발표된 것도 그렇고.

아무튼 국내에서는 그다지 많이 사용되는 것같지 않지만 한글화도 이미 완료되어 제공되고 있는 Picasa는 아주 아주 유용한 프로그램이다. 사진 로딩 속도도 빠르고, 이미 국내에서도 찍스등과 연계하여 직접 업로드하여 사진 인화도 가능하고.(얼마전에 바로 이 기능을 이용하여 사진 인화를 했는데 대개 독자적인 업로드 프로그램을 써야하는 타 인화업체보다 훨씬 편하게 이용할 수 있다. 어서들 Picasa과 연계서비스를 제공하길)

작년에 파북을 사면서 사진 자료를 모두 Mac을 관리하기로 마음먹은 터라 그다지 좋아 보이지 않는 iPhoto를 이용해서 사진 관리를 하고 있지만 PC에서 사진 편집을 할 때 아주 유용하게 사용하고 있는데 아쉽게도 아직은 Windows 용의 기능을 모두 제공하지는 않는다. 이미 준비된 FAQ에 의하면 Wiindows 버전과 Linux 버전은 다음과 같은 차이가 있다고 한다.

어서 Apple용도 나오길 바란다. 바로 iPhoto를 버릴텐데.

digg.com의 comment중에 나온 이야기. Mac OS X용보다 리눅스 용이 먼저 나온 이유가 Market share때문일 것이라는. 생각해 보니 그럴 수도 있겠당.

Linux is ranked second in terms of market share.

Digg.com에서의 글
Screenshot을 볼 수 있는 곳

Linux desktop

요즘 맥 쓰는데 정신이 팔여 한동안 리눅스를 잊고(?) 지냈는데 노벨에서 준비하고 있는 리눅스 데스크탑은 정말 놀랍기 그지 없다.

금요일 저녁인데….

이제 많은 일들을 맥에서 하고, PC에 다시 우분투나 깔아서 삽질을 해볼까 하는데 기대된다. 리눅스의 발전이.

update) 추가 링크

http://www.gnome.org/~seth/blog/xshots 

Ubuntu CD 신청

http://shipit.ubuntulinux.org/

에서 신청하면 무료로 배송해준다.
맘에 쏙 들었던 젠투보다 실은 더 맘에 드는 패키지인데 하는 짓은 더 맘에 든다. 🙂
한글화 삽질에 치를 떨었던 젠투에 비해 우분투는 데비안기반이라 한글화가 비교적 잘 되어있다.

근데 지금 PC에 깔려있는 리눅스도 부팅안한지 몇 달이 넘어가는 것같은데 시디를 받아서 어디에 쓰지?

"은진체"로 통일?

집에서 사용하고 있는 리눅스에 적당한 글꼴이 없어 고민하던 차에 “은진체”라는 공개 글꼴을 발견했다. 데비안관련 일을 많이 하고 있는 어떤 분이 만든 글꼴이라고 한다. 자기 여자친구의 글꼴을 추출해서 만들어서 뭇 남성으로부터 지탄을 받고 있다고 ㅋㅋ

젠투에서도 다행히 패키지가 있어서 간단하게 emerge로 설치가 된다.

ACCEPT_KEYWORD=”~x86” emerge alee-fonts

2.8이 되면서 부쩍 쓸만해서 그놈에서도 글꼴 설정에 가서 모든 글꼴을 은진체로 바꿔버렸다. 오호.. 아주 쓸만하다. 아니 아주 만족스럽다.
이쁜 글꼴이라 맘에 들고, 원래부터 편하게 설정해서 사용할 수 있는 글꼴이 없는터라 더더욱 맘에 들고. 그래서 집에 있는 PC와 회사 PC에도 글꼴을 설치해서 바탕화면 글꼴로 쓰고 있다. 덕분에 내 PC 화면을 본 2명이 또 동참하고. ㅋㅋ

이걸로 리눅스에서의 글꼴 문제가 한방에 해결됐다. 감사해요~~~

꼬랑지) 근데 오늘 또 화면이 껌뻑 거리는 현상이 있었다. 가뜩이나 “맥 미니”가 나와서 싱숭생숭 한데….

그나저나 맥미니는 정말 내가 원하는 모델인 듯하다. 아이북의 작은 화면을 벗어날 수도 있고, 다양한 키보드를 사용할 수 도 있을 것이고, 모니터도 기존 것을 그대로 사용할 수 있고. 거실에 두고 엔터테인먼트로도 사용할 수 있을 것이고. 음. 땡기는데… 지를 사정은 안되고 -_- 슬프다.