레이블이 리눅스인 게시물을 표시합니다. 모든 게시물 표시
레이블이 리눅스인 게시물을 표시합니다. 모든 게시물 표시

2007년 3월 14일 수요일

AspeCt-oriented C

개발에 도움을 줄 수 있는 도구이다. 개발하는 코드의 수정없이 실시간으로 각 함수의 호출을 감시 할 수 있다.
단, 컴파일은 다시 해야 한다.

기본 개념은 별도의 설정 파일을 통해 함수 호출 규칙을 감시하는 코드를 추가한다.
이 설정파일을 c 함수로 컴파일하고, 컴파일 결과를 원 바이너리와 link하여 함수 호출을 감시한다.

이것을 쓰면 함수 호출 과정을 자세히 추적할 수 있을 것 같다. 하지만, 아직 테스트 전이다.

URL은 http://research.msrg.utoronto.ca/ACC/WebHome이다.

다음은 간단한 예제이다.

C 코드

int main() {
printf("world");

}

ACC 코드

before(): execution(int main()) {
printf("Hello ");
}

after(): execution(int main()) {
printf(" from ACC ! \n");
}

Aspect Compile 과정

acc hello.acc world.m

최종 바이너리 생성

$ gcc hello.c world.c
$ ./a.out
Hello world from ACC !

2007년 3월 12일 월요일

Cairo 1.4.0 Release

3.6일, 2D graphic library인 cairo의 새버전이 1.4.0이 release 되었다.

이번 릴리즈는 주로 속도 최적화에 집중되어 개발 되었는데, 100 배 이상 속도 향상이 된 operation도 있다.
물론, 더 느려진 operation도 있는데, floating 연산이 fixed point 연산으로 대체되어 embedded 단말에서는 더 많은 속도 향상이 있을 것이라고 한다.

한번 받아서 테스트 해봐야 겠다.

2007년 3월 11일 일요일

Gentoo Linux에 대한 생각

Gentoo Linux를 2년째 사용하고 있다.
처음에는 이렇게 설치하기 힘든 배포판이 존재한다는 사실에 놀랐다.
하지만, gentoo를 사용하는 기간이 늘어나면서, 패키지 관리의 우수성에 감탄을 금치 못한다.
gentoo의 패키지 관리 시스템은 OpenBSD의 port 패키지 시스템을 모델로 작성된 것이라 들었다.

뭐 어쨌든 패키기 관리 시스템의 우수성은 타의 추종을 불허한다. 이 패키지 관리 시스템의 유일한 단점은 패키지 설치시 시간이 많이 걸린다는 것 말고는 없는 것 같다.

일단 gentoo 패키지 관리 시스템의 경우 다음과 같은 특성을 가진다.
  • 소스를 받아 컴파일하므로 시스템에 최적화된 바이너리를 생성할 수 있다.
  • 패키지 upgrade 개념은 존재하지만, 배포판 upgrade 개념이 존재하지 않는다. 단지 패키지 upgrade 만으로 항상 최신의 바이너리를 유지할 수 있다.
  • 이로 인해 의존성 문제가 거의 발생하지 않는다.
  • 패키지 update 속도가 굉장히 빠르다. 때문에, 원한다면 언제나 최신 소스 기반의 패키지를 유지할 수 있다. 단, 약간의 위험부담은 감수해야 한다.
이와 같은 장점으로 인해 적절한 관리만 된다면 배포판을 다시 설치할 이유가 거의 발생하지 않는다.
단, 리눅스에 대해 잘 알고 있는 사용자를 위한 배포판이다.

자신있다면 도전해 보라. 초기 역경을 극복하면 편안한 세상에 도달할 것이다.

2007년 3월 8일 목요일

모바일 단말 USB ethernet 자동 연결

USB ethernet을 지원하는 단말이 linux에 연결 되었을 때 이를 자동으로 연결하기 위해서 hotplug를 이용하는 방법에 대한 메모.

/etc/hotplug/net.agent 파일에서 "case $ACTION in" 이전에 다음의 내용을 추가한다.

if [ x"$INTERFACE" = xusb0 ]; then
ifconfig usb0 192.168.0.1 netmask 255.255.255.0
exit 1
fi

이 조건문은 INTERFACE가 usb0 인 경우에 동작하도록 작성한 것이다. INTERFACE는 환경에 따라 다를 수 있는데, 확인 방법은 USB 연결 후에 "ifconfig -a" 명령으로 확인할 수 있다.

2007년 3월 5일 월요일

C/C++ 을 위한 garbage callector

쓸만해 보이는 garbage callector (이하 GC)이다. Inkscape를 조사하다가 알게 되었다.
GC가 하는 일은 사용되지 않는 메모리를 자동으로 회수하여 재사용할 수 있도록 하는 메모리 관리 시스템을 말한다. 어떻게 C/C++에서 사용되지 않는 메모리를 자동으로 확인할 수 있는지 그 방법이 궁금하지만 다음에 시간이 나면 조사해 보도록 하자.

여기를 참조하고, 다음은 사용예제이다. 예제를 봐도 쓸만해 보이긴 하다.

#include "gc.h"
#include
#include

int main()
{
int i;

GC_INIT(); /* Optional on Linux/X86; see below. */
for (i = 0; i < p =" (int" q =" (int" p ="="" p =" (int" 100000 ="="" size =" %d\n">

메모 차원에서 글을 남긴다.

Inkscape

Inkscape는 SVG 저작도구이다. 일단 screenshot으로만 봐도 대단해 보인다. adobe의 flash에 대항할 수있는 SVG를 기반으로하는 저작도구라는데 많은 점수를 주고 싶다.

동적인 SVG 저작 기능도 갖추고 있는지 모르겠다. 만약 그렇다면, 이제 효과적인 SVG player만 확보된다면 flash player와 대적할 수 있지 않을까?
open source 산물로만 flash player에 대항할 수 있는 솔루션이 확보 될 수 있기를 희망한다.

메모 차원에서 글을 남긴다.

URL은 Inkscape이다.


2007년 3월 3일 토요일

Xfce4 배경화면 바꾸기

뭐 구글에 검색하면 바로 나오긴 하지만. 여기서도 간단히 메모 형태로 정리한다.

xfdesktop 프로그램이 singla USR1을 받으면, 배경 화면을 바꾸도록 정의한 것 같다.

때문에, terminal에서 간단하게 "killall -USR1 xfdesktop" 명령을 주면 배경이 바뀐다.

crontab -e 명령으로 다음 라인을 추가하면 5분에 한번씩 배경 화면이 바뀐다.

0,5,10,15,20,25,30,35,40,45,50,55 * * * * killall -USR1 xfdesktop