유닉스 커널 (UNIX Kernel)

2022. 7. 11. 16:53Linux Kernel

유닉스 커널은 애플리케이션이 동작할 수 있는 실행 환경을 제공함. 따라서 커널은 일련의 서비스와 이에 상응하는 인터페이스를 구현해야 함. 애플리케이션은 이러한 인터페이스를 사용하며, 대개 하드웨어 자원과 직접 상호작용하지 않음. 표준 유닉스 커널은 커널모드와 사용자 모드만 사용함. 사용자 모드에서 동작 중일 때, 프로그램은 커널 자료 구조나 커널 프로그램에 직접 접근할 수 없음. 그러나 애플리케잇녀이 커널 모드에서 동작 중일 때는 이러한 제한이 적용되지 않음. 

 커널은 프로세스가 아닌 프로세스 관리자임. 프로세스/커널 모델에서는 프로세스가 커널 서비스를 필요로 할 때 시스템 콜(system call)이라는 특별한 프로그래밍 구조를 활용하도록 함. 각 시스템 콜은 프로세스가 제기하는 요청을 나타내는 매개 변수 그룹을 설정한 후, 사용자 모드에서 커널 모드로 전환하는 하드웨어 고유의 CPU 명령어를 실행함.