시스템콜 vs 라이브러리 함수
글쓴이: dbsthqkf / 작성시간: 목, 2014/01/09 - 5:32오후
커널은 user와 hardware간의 연결을 해주는 software라고 알고있습니다.
그렇다면 이러한 일을 해주는 것이 시스템콜인데,
하드웨어와 관련된 작업을 하는 함수가 시스템 콜함수인가요?
하드웨어와 관련되지 않은 작업을 하는 것들이 라이브러리 함수인가요?..
kernel의 기능 중에서 file system management라는 기능이 있는데 이것은 하드웨어와 아무 상관이 없는 것같은데 왜 kernel이 관리하는거죠?
ㅠㅠ
Forums:
파일 시스템은 디스크나 메모리와 같은 저장 장치
파일 시스템은 디스크나 메모리와 같은 저장 장치 "하드웨어"에 파일을 효율적으로 저장하고 관리하기 위해 필요합니다.
따라서 하드웨어와 관련 되어 있으며 리눅스와 같은 범용 OS가 동작하기 위한 핵심 기능으로 커널에서 관리해야 합니다.
커널 밖으로 빼어내도 됩니다. 그림이 아니라 글로
커널 밖으로 빼어내도 됩니다.
그림이 아니라 글로 쓰기 그런데, 말씀하신 그런 류의 특정 기능이 위치할 수 있는 위치는 프로세스에 맵핑된 메모리 공간, 별도 서버, 커널 내부 의 세가지 지점에 위치할 수 있습니다. 세 구현 모두 가능합니다만 구현 용이성, 안정성, 성능 등에서 일장일단이 있습니다.
개인적으로 특정 기능들은 커널 안에 두는 것이 안정성과 성능, 둘 다 잡을 수 있다고 생각합니다. 프로세스 공간에 위치하면 안정성에서, 별도 서버에 두는 것은 퍼포먼스에서 꽝입니다.
최대한 커널을 작게 만들고 별도 서버로 기능을 분산시키자는 게 마이크로커널에서 추구했던 방향인데, 솔직히 학교에서 다루기 좋은 주제였을 뿐이라고 생각합니다. 리눅스, 맥, 윈도우 모두 마이크로커널적인 요소를 찾을 수 있습니다만, 오리지날 마이크로 커널에서 추구했던 것과는 거리가 있습니다.
전통적인 X 윈도우 그래픽 드라이버는 별도 서버로 존재했었는데, 시간이 지나면서 X 의 특정 요소는 커널속으로 들어가고 있고, 또 특정 요소는 유저랜드 라이브러리를 통해 프로세스 메모리 공간으로 이동하고 있습니다.
댓글 달기