'linux'에 해당되는 글 5건

  1. 2009/07/30 Ubuntu에서 OpenGrok 쓰기 (2)
  2. 2009/07/28 What is vDSO? (1)
  3. 2009/06/12 outlook과 thunderbird랑 같이 쓰기
  4. 2009/03/19 cups-pdf: [ERROR] failed to create user output directory (2)
  5. 2008/02/24 LatencyTop

Ubuntu에서 OpenGrok 쓰기

Linux/misc 2009/07/30 19:22 posted by tolkien
How to Install & use OpenGrok
Ubuntu에서 OpenGrok 쓰기 - forceCore님의 글

회사에서 kernel source browsing tool로 lxr를 써왔다.
android를 쓰면서 lxr로는 한계를 느끼고, 이것저것 찾아보던중 OpenGrok를 찾아서 설치.
그다지 알려지지 않은 tool인지 쓸만한 문서가 그다지 많지 않다.
OpenGrok Install guide와 윗글를 참조해서 그럭저럭 동작하게 했다. 기록 차원에서...

1. http://opensolaris.org/os/project/opengrok/files/ 에서 source를 받는다.
2. source를 풀고, http://jflex.de/download.html 에서 JFlex를 받아서 lib/ directory에 넣는다.
3. ant 실행 ( cd opengrok-0.7-src/;ant )
4. file copy ( cp -a OpenGrok run.sh dist/opengrok.jar dist/lib/ /opt/opengrok/bin/ )
5. run.sh 수정
   A.
SRC_ROOT=/opt/opengrok/src        #reference할 source 위치
   B. DATA_ROOT=/opt/opengrok/data  #index file들이 생성될 위치
   C. EXUB_CTAGS=/usr/bin/ctags
   D. java ${JAVA_OPTS} ${PROPERTIES} ... 라고 거의 마지막에 있는 index 생성 command에
      -W ${DATA_ROOT}/configuration.xml 를 추가한다.
6. run.sh 실행후 ${DATA_ROOT}/configuration.xml 를 ${ETC_CONF} directory로 복사
7. source.war를 /usr/share/jetty6/webapps 에 복사 (본인은 jetty6 application server를 사용한다.)
8. unzip /usr/share/jetty6/webapps/source.war WEB-INF/web.xml
9. WEB-INF내에서 /etc/opengrok/configuration.xml 로 되어 있는 부분을 /opt/opengrok/configuration.xml 로
8. zip -u /usr/share/jetty6/webapps/source.war WEB-INF/web.xml
9. jetty application server restart
10. http://localhost:8081/source/ 로 들어가서 동작 확인
저작자 표시 비영리 변경 금지

What is vDSO?

Linux/kernel 2009/07/28 13:52 posted by tolkien
What is linux-gate.so.1? - by Johan Petersson

요즘 linux desktop에서 ldd를 때려보면 linux-gate.so.1이라는 파일이 보인다.
[tolkien@tolkien tmp]$ ldd /bin/ls
    linux-gate.so.1 =>  (0xb7f84000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7f66000)
    libselinux.so.1 => /lib/libselinux.so.1 (0xb7f4d000)
    libacl.so.1 => /lib/libacl.so.1 (0xb7f45000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7df6000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7dde000)
    /lib/ld-linux.so.2 (0xb7f85000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7dda000)
    libattr.so.1 => /lib/libattr.so.1 (0xb7dd6000)
저건 vDSO(virtual Dynamic Shared Object)라는 것으로 최근 x86 cpu에서 보이는 sysenter 명령을 이용한다. 위 link에 자세히 설명이 되어 있는데, 간단히 설명하자면...
x86에서 system call을 들어가기 위해서 interrupt 0x80을 이용했는데, 이게 cpu가 빨라지면서 병목이 되어 버렸다는 거다. (보다 자세한 내용은 Re: What is VDSO?, 또는 Intel P6 vs P7 system call performance)
이에 대해 Intel에서 sysenter라는 명령어를 Pentium Pro부터 내놓았다. 하지만, 무척 많은 버그때문에 안 쓰이다가 Pentium III정도부터 쓰이기 시작. Linux는 2.6.12때부터, Windows는 XP부터 sysenter를 지원하기 시작한다.

기존 방식으로만 동작하는 cpu도 아직 있기에 linux는 둘 다 지원한다. linux kernel build하면 vdso-int80.so, vdso-systenter.so 두 file이 생기고, 둘 다 kernel image에 들어가서 booting시 syscall entry에 대해서 int 0x80을 쓸 것인지 sysenter를 쓸 것인지 동적으로 정한다고 한다.

systenter 명령어를 사용할 때, 문제가 되는 syscall이 있는데, 그것이 RESTART다. 그에 대해서 추가적으로 언급한 것이 Linus Torvalds is a disgusting pig and proud of it 이다.
저작자 표시 비영리 변경 금지

outlook과 thunderbird랑 같이 쓰기

Linux/misc 2009/06/12 12:18 posted by tolkien
thunderbird에서 Winmail.dat로 오는 첨부파일 보는 법 - ZemyBlue님의 글
thunderbird에서 winmail.dat 첨부파일 읽기 - uriel님의 글

현재 다니고 있는 w모사의 workgroup software는 outlook 2003 이다.
근데, 난 linux 사용자란 말이지. 그래서 생기는 불편이 여럿있는데,

첫째. thunderbird에서 exchange server에 붙어서 E-mail을 보고 지워도 지워지지 않는다.
둘째. 미팅일정같은 것이 날라오면 대락 난감
셋째. windmail.dat

첫째, 둘째는 그럭저럭 버티고 있다. 가끔 windows notebook을 켜서 정리하면 그만이다.
헌데, 셋째 문제는!!! 첨부 파일을 볼 수 없다는 얘기지. T.T
그래서 windows notebook을 outlook 전용으로 쓰고 있다가
"못 참겠다 갈아보자!"
"구관이 명관이다 갈아봤자 별수 없다"
로 갈등하다가 google 신탁을 얻어서 몇가지 해결책을 찾았다.
ZemiBlue님의 글로 내 outlook 설정을 바꾸고,
uriel님이 언급한 LookOut을 쓰니 좀 버틸만 하다.
이 경우에 LookOut 플러그인을 설치하면 해당 TNEF 인코딩된 winmail.dat 파일이 디코딩되서 내용이 다른 첨부 파일로 나오게 됩니다.

꼬랑지. 글 상자에 있는 구호는 언제 어디서 나온 구호일까요?
      둘. 그래도 하루에 한번 이상은 outlook을 꾸준히 써줘야 한다.

저작자 표시 비영리 변경 금지
PC에서 ubuntu 8.04 또는 그 이후 version을 설치하면 (아마 이전 version도 될 듯)
cups-pdf라는 package가 설치된다. adobe PDF writer같은 프로그램인데, 설치하면 PDF라는 printer가 생긴다. 그리로 출력하면 ${HOME} directory에 PDF directory가 생기면서 그 아래에 PDF file이 생기는 편리한 놈이다.

몇일전 PC가 맛가서 이전 PC에 이것저것 복구해서 쓰고 있는데,
이게 동작하지 않는거다. 분명히 출력했는데, 파일은 없는...
이상해서 log를 보니까 다음과 같이 나오면서 출력이 안되는 거였다.
root@moria:/var/log/cups# tail -f cups-pdf_log
Thu Mar 19 11:11:50 2009  [ERROR] failed to create directory (/mnt/hda3/tolkien/PDF)
Thu Mar 19 11:11:50 2009  [ERROR] failed to create user output directory (/mnt/hda3/tolkien/PDF)
Thu Mar 19 11:13:29 2009  [ERROR] failed to set file mode for PDF file (non fatal) (/mnt/hda3/tolkien/PDF/FormattingAnAndroidSdCard___WRSeng___TWiki.pdf)
Thu Mar 19 11:18:21 2009  [ERROR] failed to set file mode for PDF file (non fatal) (/mnt/hda3/tolkien/PDF/PPR_Test_Page.pdf)
원인은 apparmor의 문제. CUPS쪽 security를 담당하는 놈이라고 한다.
(지금까지 이런게 있는 줄도 몰랐다. --;;;)
나는 용량증설도 있고, 관리의 편리함때문에 /home/tolkien -> /mnt/hda3/tolkien 으로 link를 걸어놨는데, apparmor가 link를 처리하지 않아서 생기는 문제였다.
/etc/apparmor.d/usr.sbin.cupsd 에 다음 두줄 추가하고 apparmor를 다시 시작하니까 깔끔하게 된다.
  /mnt/hda3/tolkien/PDF/ rw,
  /mnt/hda3/tolkien/PDF/* rw,

저작자 표시 비영리 변경 금지

LatencyTop

Linux/kernel 2008/02/24 19:03 posted by tolkien
커널 2.6.24에 포함된 LatencyTop - 모나씨님의 글

제품에 linux를 넣다보면 자주 괴롭히는 문제가 이른바 "tunning"이다.

BUT, 외부사람이 보기엔 system을 tunning하면 시스템이 좋아질 것이라는 환상을 품게 마련이다.
memory 부족하다면 "system memory 얼마나 줄일 수 있나요?"
단말 속도가 느리면 "NAND i/o 속도를 더 올릴 수 있나요?" "스케쥴러 tunning해야 하지 않나요?" 등등...
이럴때 H/W DataSheet 구해서 spec대비 얼마 효율인지 설명하면, 그 다음에는 spec에 최대한 근접하도록 압박을 받곤 한다. 그럼 그냥 묵묵히 tunning을 수행해야 한다. code review하고 test program 작성해서 측정하고 등등...

하고 나면 좋아지긴 하는데, 솔직히
내 개인적인 견해는 tunning 할 바에는 appl쪽 tunning하는게 가격대성능비가 좋다.이다.
tunning하기 위한 자료 측정도 쉬운 편이고 (필요하면 kernel에서 조금 지원해주면 된다), 또 tunning 결과도 꽤 괜찮다.

하지만, 오늘도 tunning을 해야 하는 내 입장에서 이런 tool이 나오는 것 환영.

해당 site
http://www.latencytop.org/

관련 기사
http://lwn.net/Articles/266153/
http://lwn.net/Articles/266246/
http://lwn.net/Articles/265945/