[질문] Linux kernel 분석할 때 어떤 IDE를 주로 사용하시나요?

ghostyak의 이미지

Linux kernel 개발을 처음으로 시작하게 될 것 같습니다.

예전에는 vim, tags, scope 등을 써서 개발한 것으로 아는데

요즘에는 어떤 툴(IDE)을 사용하여 작업하시나요?

1. vim, tags, scope
2. source insight
3. KDE
4. Eclipse
5. Netbeans
6. 기타 (Visual studio)

제가 아는 것은 대략 이정도 인데요,
저는 주로 samba를 사용하여 윈도우에서 작업을 합니다.
가끔 virtual box에서 우분투로 하기도 합니다.
비슷한 환경에서 작업하시는 분들 계시면 사용하시는 툴좀 추천해주세요.

pastime의 이미지

Ubuntu + emacs + global

이렇게 사용합니다.

tj의 이미지

전 ctags 쓰다가 cscope으로 바꾸고 꽤 만족스럽게 쓰고 있는데 global이 더 좋은가요?

pastime의 이미지

이미 cscope를 만족스럽게 사용 중이시라면 굳이 바꿀 필요가 있을까 싶네요.. ^^;;

저는 cscope를 아주 잠깐 사용해 본 것 뿐이라 정확히 비교해 볼 순 없지만
아무래도 global이 후발주자이다보니 더 많은 기능과 언어를 지원하긴 합니다.

하지만 제가 C 언어로 개발되는 프로젝트만 살펴보다보니 별 필요는 없고
실질적으로 느낄만 한 것은 태그 생성 및 사용이 간편하다는 점과
코드가 비교적 활발히 개발되고 있어서 계속 성능 향상이 이루어지고 있다는 정도네요..

그리고 소스 코드를 잠깐 들여다본 인연?이 있어서 좀 더 애착이 간다고 할까요.
커널 소스의 문법을 지원하기 위해 약간의 패치를 먹여서 쓰고 있는 중입니다.
(혹시라도 관심있으신 분이 있으면 공개하도록 하겠습니다.. ;;)

pastime의 이미지

$ git log -1 --oneline
f5412be59960 Linux 2.6.38-rc6
$
$ time gtags
 
real	0m28.329s
user	0m20.027s
sys	0m5.789s
$
$ time make cscope
  GEN     cscope
 
real	0m54.310s
user	0m47.664s
sys	0m7.404s
$
$
$ gtags -q --version
5.9.3
$
$ cscope --version
cscope: version 15.7a
tj의 이미지

자동 인덱싱 끄고 가끔 직접 make cscope하면서 써서 인덱싱 속도는 크게 상관은 없는 거 같아요. ctags은 찾으라고 하는 걸 잘 못찾아서 괴로웠구요. cscope도 가끔 그러긴 하는데 ctags보단 훨씬 낫더라구요. 시간날 때 global도 시도해볼께요. 하여간 감사. :-)

pastime의 이미지

혹시 기억나신다면 cscope가 못찾는 경우/패턴이 무엇인지 알려주실 수 있을까요?
global에서도 한 번 시도해 보겠습니다.

tj의 이미지

하나 찾았어요. __wait_on_bit(). __sched 태깅 된 함수들은 다 안찾아지는 거 같아요. 음, __init 붙은 애들은 잘 찾네요.

pastime의 이미지

$ global -x __wait_on_bit
__wait_on_bit     194 kernel/wait.c    __wait_on_bit(wait_queue_head_t *wq, struct wait_bit_queue *q,

__init, __sched, __kprobes, ... 붙어도 다 잘 찾는 것 같습니다.

madman93의 이미지

cscope,tag 만 써 왔는데 global 쪽도 한번 써 봐야 겠군요

좋은 정보 감사합니다.

---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------

tj의 이미지

전 emacs + cscope 이요.

ghostyak의 이미지

cscope이랑 같이 사용하신다면..
emacs에는 Refactoring 기능이 없나요?

emacs는 사용해 보질 않아서.. 궁금하네요 ^^

1000

tj의 이미지

으음... 전 에디터로만 써서 모르겠어요. 근데 커널 소스에 자동 리팩토링 기능은 좀 무섭군요. 사람이 쫒아다녀도 헷갈리는 데가 한두군데가 아닌걸요.

kiwon의 이미지

Refactoring은 간단하게(?) rgrep 명령과 grep-ed 의 기능으로 합니다.

philnet의 이미지

2. source insight 요.

handrake의 이미지

emacs + cscope로 합니다. 몸에 익은게 제일 편해서요.

JuEUS-U의 이미지

IDE 안쓰고 인터넷에 kernel map에만 의존해서 코드를 읽었습니다 - -);;;
어차피 코드 작성할 일이 딱히 없다보니...
그래도 이게 어떤면에선 오히려 tagging보다 낫지 싶습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.