[질문]커널에서 ls명령으로 인하여 수행되는 과정?

익명 사용자의 이미지

개발자여러분들 부탁이 있습니다.
저는 초보적으로 커널을 건드려 보려고 하려는 사람인데요. 영 감이 안잡
혀서요. 급하거든요. 간단히라도 좀 알려 주세요.
커널에서 ls명령을 주었을때 os상에서 이루어지는 과정들이 무엇이 있습니
까? 대충이라도 알면 좋겠습니다.
부탁드립니다.

익명 사용자의 이미지

질문이 참으로 광범위 하네여 ^^ 질문에 이해가 되지 않고..
ls명령어를 입력하였을때 어떤 현상으로 출력이 되나를 물으시는건지..
아니면 쉘커맨드를 입력했을때 커널이 어떤 작동을 하는지 묻는건지..

재가 실력이 없어서 그런지 개괄적으로 설명하긴 힘드네여..
스티븐 아저씨가 쓴 Advances programming in the unix environment
라는 택을 참조하세요..
file system에 관련된 스트럭쳐들이 설명되어있지여..
재가 아는봐로는 ls는 file system의 정보에서 inde로 찾는것으로 알고있
슴다 ^^

익명 사용자의 이미지

질문에 답해주셔서 감사합니다.
근데 제 질문이 표현이 잘 안되었나보죠?
두번째 경우인 쉘커맨드를 입력했을때 커널이 어떤 작동을 하는지를 물어
본것이거든요.
수고스럽지만 다시 한번만 더 알려주시면 감사드리겠습니다.

익명 사용자의 이미지

답해 주신것에 대해 정말로 감사드립니다.
그런데 제 질문이 어려웠었나요?
제 질문은 두번째의 경우인 쉘커맨드를 입력했을때 커널이 어떤 작동을 하
는지를 묻는 것이었거든요.
제발 아신다면 알려 주세요.
알려주신것을 찾아봐도 찾을 수가 없어서요.
다시 한번만 알려주신다면 감사드리겠습니다.

익명 사용자의 이미지

쉘커맨드를 실행되는 순서는..
쉘에서 커맨드를 입력받으면
fork를 시키고 exec()를 호출하여 exec을 하지요...
그리면 execve()라는 시스템콜이 이루어지지요..
이렇게 해서 쉘커맨드 실행화일이 실행 되는것입니다.

충분한 답변이 되었는지 모르겠지만..
좀더 상세히 알고자 하면...

위에 말씀드린 스티븐 아저씨 책에서 프로세스 관련을 보시면
어느정도 이해가 되리라 생각이 듭니다.

그럼...

익명 사용자의 이미지


strace ls

해보면 됩니다. 시스템 콜에 대한 궁금증은

man 2 open

이런 식으로...

익명 사용자의 이미지

www.lids.org 에 가시면
lids hacking howto 문서가 있습니다.
커널 보안 관련 문서인데, 위의 문서를읽어 보시면
대충 어떤식으로 작동이 되는지 감을 잡으실수
있을겁니다.

댓글 달기

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