커널의 동작방식은 유저모드의 프로세스에서 시스템콜 인터페이스를 통해,커널영역의 함수를 호출한다. 커널영역의 함수를 통해 하드웨어를 제어하는 흐름으로 동작한다.위에 그림에선 나타나 있진 않지만, 타이머도 들어가 있다.
크게 Filesystem Manager , Device Manager , Memory Manager , Process Manager , Network Manager로 나누어진다.
커널 프로그래밍을 하려면, 커널의 동작방식을 주관하는 기능에 대해서 알아야 한다.
프로세스 스케쥴러 - 복수의 프로세스에 대해 제어 권한을 교대로 부여해서, 동시에 프로세스가 실행하고 있는것처럼 보이는데, 이러한 프로세스를 관리하는 기능을 말한다.
인터럽트 처리와 지연 처리 - 하드웨어의 이벤트는 인터럽트라는 형태로 리눅스 커널에 전달하게 되는데, 인터럽트가 발생하면, 커널에서 실행중인 처리를 중단하고, 인터럽트를 처리하게 된다.
타이머 - 하드웨어로부터 발생하는 인터럽트를 잡아 타이머를 작동시키는데, 인터럽트 처리가 끝난 후에, 지정된 처리를 할수 있도록 한다.
시스템 콜 - 응용프로그램이 커널에 어떤 처리를 요청할때 유일하게 이용할수 있는 수단이다. 유저모드와 커널모드의 중계자로 이해하면 쉽다.
더 자세한 커널구조 보려면 :
http://www.makelinux.net/kernel_map