Linux에서 시스템 콜에 관하여 질문드립니다!

saz3000의 이미지

명령라인에 명령 타이핑시 부모 쉘이 자식 프로세스를 fork하고 부모는 wait 하고, 자식 쉘은 exec 시스템 콜로 명령을 호출 한다고 하는데 ..

이해가 잘 안되네요 ..

시스템 콜이라는게 정확하게 어떤 역할을 하는 것이죠?

쉘과 시스템 콜이 관계가 있나요?ㅎㅎ

dontdieych의 이미지

저는 시스템 콜을 '커널을 거쳐서 해야하는 작업, 동작' 정도로 이해하고 있습니다. 커널을 거쳐서 해야만 하는 이유는 권한, 보안 문제를 안전하게 처리하기 위해서라고 알고 있습니다.

파일, 장치 접근이나 프로세스 생성, 관리가 대표적인 시스템 콜입니다.

http://en.wikipedia.org/wiki/System_call#Categories_of_system_calls

그럼 어떤게 시스템 콜이 아닌가? 시스템 콜이 아닌 코드를 userland 코드라고 부르는 것 같은데 외부에 영향을 주지 않는 코드? 그런 것들인 것 같습니다.

3 + 4

이런게 아마 시스템 콜이 아니겠지요.

다음 분이 진짜 설명을 해주실 겁니다.

익명 사용자의 이미지

바쁘신데 소중한 지식 공유 감사합니다^^

크게 보면 말씀하신 게 맞는 것 같아요!

새해 복 많이 받으시구 감기 조심하세요^ㅡ^

ShaYEL의 이미지

리눅스에서 프로그램이 돌아가는 실행 영역은 유저모드와 커널모드로 나뉩니다. 일반 어플리케이션이 실행되는 영역이 유저 모드이고, 커널 모드는 하드웨어를 직접 관리하는 프로그램들의 영역입니다. 말하자면 OS의 영역인 것이죠

실행 영역이 나뉘어져 있는 이유는 일반 어플리케이션이 하드웨어에 직접 접근을 하지 못하게 하기 위함입니다. 하지만 유저모드의 프로그램들이 커널모드에 전혀 접근하지 못한다면 제대로 된 프로그램들을 만들 수 없겠죠.. 그래서 커널은 유저 모드의 프로그램들이 커널에 간접적으로 접근할 수 있도록 하기위해 시스템콜이라는 함수들을 제공합니다.

일반 프로그램들이 하드웨어에 접근하기 위해서는 시스템콜 함수를 이용해 커널에게 하드웨어 사용을 '요청'하고, 커널이 이것을 수락해서 하드웨어를 제어해주는 겁니다

쉘과 직접적인 어떤 관계가 있는건 아닌 것 같습니다. 쉘 역시 일반 유저가 커널에 접근하기 위한 창구같은 것이니까요

말씀하신 fork와 execl 함수역시, 커널이 자식 프로세스를 형성하거나 새로운 프로세스를 실행시키도록 '요청'하는 함수입니다.

+ p.s. '시스템 콜이 무엇인가요'는 구글에 물어봐도 답변이 자세히 나온답니다.

익명 사용자의 이미지

바쁘신데 지식공유 감사합니다!

너무 설명을 쉽고 잘 풀어서 해주셔서 정말 이해가 됬네요!

정말정말 감사합니다^ㅡ^

초보리눅서로서 감사의 말씀을. ..ㅎㅎ

새해 복 많이 받으세요^^

댓글 달기

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