리눅스 커널 분석.... 좀 용이하게 할수 있는 방법은 정녕 없는걸까요?

nixon4545의 이미지

리눅스 커널 분석을 하고 있습니다.

제가 어떤 프로그램을 실행했을때 어떤 함수를 거치는지를 보려고 하는데요

분석 자체가 처음이라
그냥 프로그램 실행한후 dmesg명령어를 통해 확인하고

커널소스를 조정하면서 또 컴파일하고 재부팅해서 보고 이런식으로 반복하고 있는데

상당히 고역이네요...
특히 모듈부분을 건들면 또 긴시간동안 컴파일을 해야 코드가 적용이 되더군요...

혹시 제가 하는 방법외에 다른 방법으로 하시는 분이 있는지 궁금하네요 ㅎㅎ

세벌의 이미지

http://www.kernel.bz/ 에 물어보시면 어떨까요? 오랫동안 커널 관련 일을 하는 걸로 알고 있습니다.

익명 사용자의 이미지

거기는 교육사업을 하는 상업회사입니다.
더군다나 유료수업 퀄리티도 떨어집니다.

익명 사용자의 이미지

모듈 프로그래밍 하시는 건가요?
커널 분석이라기 보다는 모듈 디버깅을 원하시는 것 같은데,
저 같은 경우 qemu 에 커널을 올리고 gdb 로 원격 디버깅합니다.
물론 동적으로 로드하는 모듈 역시 디버깅 가능합니다.

모듈이 아니라 지금 커널 소스 자체를 수정해서 하시는 거라면
사실 매번 수정하고 컴파일하고 다시 하고 를 반복하는 수 밖에 없겠죠.
이건 분석이 아니라 개발이 되겠습니다만.

그냥 커널 분석이면 위에서 얘기한대로 qemu + gdb 원격 디버깅만으로
충분히 동작 분석은 쉽게 할 수 있습니다. 특히 cgdb 와 조합해서
반(半) 소스 레벨 디버깅 수준으로 할 수 있어서 더 편하죠.

msshinok의 이미지

커널소스중에서 SELINUX쪽으로 보시면, 어떨까요?
보안관련된부분들이 이외로 프로그램실행시에 커널에 일어나는일에 대한 것들이니깐요...

The die is cast!

bushi의 이미지

모지리의 이미지

커널뿐만 아니라 우선 개발 환경을 편하게 세팅 해놓고 하시는게 우선일겁니다. 그런데 모듈을 테스트 하신다면 그 해당 모듈만 컴파일 해서 테스트 해볼수가 있습니다. 가장 좋은것은 각 커널 파트별로 구분을 해놓고 간단한 테스트 프로그램을 하나 만드는 프로젝을 해보시는건 어떨까 생각해봅니다.

커널이 좀 어렵고 복잡하고 왜 이럴까 하는 생각도 많이 들지만 공부해나갈수록 참 멋지게 잘 만들어 놓았다 하는 생각에 감탄하게 될겁니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.