시스템콜 vs 라이브러리 함수

dbsthqkf의 이미지

커널은 user와 hardware간의 연결을 해주는 software라고 알고있습니다.
그렇다면 이러한 일을 해주는 것이 시스템콜인데,

하드웨어와 관련된 작업을 하는 함수가 시스템 콜함수인가요?
하드웨어와 관련되지 않은 작업을 하는 것들이 라이브러리 함수인가요?..

kernel의 기능 중에서 file system management라는 기능이 있는데 이것은 하드웨어와 아무 상관이 없는 것같은데 왜 kernel이 관리하는거죠?
ㅠㅠ

익명 사용자의 이미지

파일 시스템은 디스크나 메모리와 같은 저장 장치 "하드웨어"에 파일을 효율적으로 저장하고 관리하기 위해 필요합니다.

따라서 하드웨어와 관련 되어 있으며 리눅스와 같은 범용 OS가 동작하기 위한 핵심 기능으로 커널에서 관리해야 합니다.

익명 사용자의 이미지

커널 밖으로 빼어내도 됩니다.

그림이 아니라 글로 쓰기 그런데, 말씀하신 그런 류의 특정 기능이 위치할 수 있는 위치는 프로세스에 맵핑된 메모리 공간, 별도 서버, 커널 내부 의 세가지 지점에 위치할 수 있습니다. 세 구현 모두 가능합니다만 구현 용이성, 안정성, 성능 등에서 일장일단이 있습니다.

개인적으로 특정 기능들은 커널 안에 두는 것이 안정성과 성능, 둘 다 잡을 수 있다고 생각합니다. 프로세스 공간에 위치하면 안정성에서, 별도 서버에 두는 것은 퍼포먼스에서 꽝입니다.

최대한 커널을 작게 만들고 별도 서버로 기능을 분산시키자는 게 마이크로커널에서 추구했던 방향인데, 솔직히 학교에서 다루기 좋은 주제였을 뿐이라고 생각합니다. 리눅스, 맥, 윈도우 모두 마이크로커널적인 요소를 찾을 수 있습니다만, 오리지날 마이크로 커널에서 추구했던 것과는 거리가 있습니다.

전통적인 X 윈도우 그래픽 드라이버는 별도 서버로 존재했었는데, 시간이 지나면서 X 의 특정 요소는 커널속으로 들어가고 있고, 또 특정 요소는 유저랜드 라이브러리를 통해 프로세스 메모리 공간으로 이동하고 있습니다.

댓글 달기

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