유닉스의 kernel을 설명해보세요.
커널(Kernel)은 유닉스 운영체제의 핵심으로 유닉스의 장치나 메모리, 프로세스, 그리고 데몬을 관리하는 관리 프로그램입니다. 운영체제가 동작할 때 운영체제는 하드웨어를 직접 이용하여 사용자 프로그램에 서비스를 제공하게 됩니다. 따라서 사용자 프로그램은 하드웨어에 관한 자세한 사항을 전혀 알 필요가 없으며 하드웨어와 연관된 내용은 운영체제에 의해 제어됩니다. 사용자는 단순히 커널과 대화하는 법만 알면 되고 원하는 서비스를 제공하는 일은 커널이 알아서 제공해줍니다. 커널은 사용자 프로그램과 하드웨어 사이에 위치하면서 사용자 프로그램과 하드웨어 사이의 정보전송을 통제하는 역할을 합니다. Swap 영역이나 데몬, 파일시스템을 관리하는 역할로서 사용자 프로그램에게 메모리를 할당하거나 Swap 영역 등을 할당하고 일 시스템을 관리하는 역할을 합니다. 유닉스에서는 사용자 프로그램이 커널을 직접 제어할 수 없고 반드시 시스템 콜을 이용하여 커널에 서비스를 요청하여야 한다. 그러므로 파일에 접근 한다거나 계정관리를 한다거나 파일 혹은 디렉토리의 소유자를 변경한다거나 하는 등의 작업을 수행하기 위해서는 시스템 콜을 이용하여 커널에 작업을 요청하여야 한다.
Unix 시스템이 프로그래머들에 의해 호응을 얻게 된 큰 이유 중의 하나가 바로 잘 작성된 사용자 프로그램은 하드웨어에 독립적으로 수행될 수 있다는 점이며, 따라서 새로운 시스템에 쉽게 이식할 수 있기 때문이다.
시스템콜(System Call)
응용프로그램 혹은 유저가 오퍼레이팅 시스템(OS)의 기능을 호출하기 위해 사용되는 구조를 말한다.
참고) 유닉스의 시스템 구조
커뮤니티 Q&A
위 이론과 관련된 게시글이에요.
이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!
게시글 작성하기