끌림

리눅스 커널과 모듈 본문

Programming/Linux

리눅스 커널과 모듈

소닉럽 2010. 1. 26. 14:06

커널이란?

- 운영체제에서 가장 핵심적인 역할인 자원(메모리, 프로세서 등) 등을 관리하며 시스템이 원활히 돌아 갈 수 있도록 제어 해 준다.

- 커널은 프로세서, 파일, 시스템, 메모리, 네트워크의 관리를 받는다.

- 사용자 프로그램은  이러한 기능들은 정해진 규칙에 따라서 커널에 요구하게 되며 커널은 이러한 요구들을 만족시켜 주도록 구성되어 있다.

- 커널은 대부분이 c 코드로 작성되어 있으며 프로세스의 구제에 의존적인 부분들과 속도를 요구하는 부분들만 기계코드로 작성되어 있다.

- 커널은 운영체제에 핵심에 해당된다.

- 특징으로는?     사용자 스스로가 커널은 만들고 수정 할 수 있다는 것이다.


모듈?
-  리눅스에서는 동적 커널 모듈 또는 간단히 모듈이라고 불리는 매커니즘을 제공한다. 커널 대부분의 기능은 모듈 구현 될 수 있다. 예를 들어, 파일 시스템, 디바이스 시스템, 통신 프로토콜 패밀리, 새로운 시스템 호출 등이 모듈로 구성 될 수 있다. 모듈은 필요할 때 동적으로 메모리에 적재되어 사용된다. 따라서 특정 커널 기능을 필요할 때만 메모리에 적재함으로써 메모리를 효율적으로 사용 할 수 있다. 모듈기능은 커널은 작게 만들 수 있게 해주며, 이는 매우 중요한 커널의 장점이 된다.

커널 모듈이란?
- 필요에 따라 커널에 로드하거나 언로드 할 수 있는 특정한 기능을 수행하는 코드(프로그램) 이다.
이렇게 함으로 써 쉽게 커널의 기능을 확장할 수 있을 뿐만 아니라 운영체제를 리붓하지 않고도 원하는 기능을 수행 할 수 있도록 만들 수 있다.

커널의 특징?

모놀리식 커널 - 리눅스 커널은 대부분 유닉스 커널과 같은 모놀리식(monolithic)이다. 모놀리식이기 때문에 논리적으로 구분되는 여러 구성요소들이 상호간에 연결되어 동작한다.

비선점형(커널 2.4)과 선점형(커널2.6) - 비선점형 커널은 프로세스의 동작 상태가 사용자 모드에서 커널 모드로 진입하면 외부에서 해당 프로세스를 중지시키지 못한다. 반대로 프로세스가 커널 모드로 동작하더라도 스케줄링 정책이나 다른 외부적인 접근을 통해 프로세스를 강제로 중지시킬 수 있는 경우를 선점형이라고 한다. 2.6커널은 선점형과 비선점형을 선택할 수 있다.

가상 메모리 시스템(VM) - 리눅스 커널은 다양한 플랫폼에서 동작하는 운영체제이므로 i386에서 동작되던 메모리 관리 시스템을 표준화 하여 다양한 MMU 디바이스에 적용할 수 있도록 구성되어있다.

No MMU 지원 - 리눅스 커널은 주로 MMU를 이용한 메모리 관리를 수행하지만 임베디드 시스템에서 사용하는 프로세서의 경우는 MMU디바이스가 없는 경우도 있다. 커널 2.6에서는 MMU가 없는 시스템도 지원한다.

가상 파일 시스템(VFS) - 리눅스에서는 ext2를 비롯 다양한 파일 시스템을 사용할수 있고, 윈도우에서 동작하는 NTFS파일 시스템과 FAT32도 처리할 수 있다.

모듈을 이용한 커널 확장 - 운영 체제가 동작하는 중에도 커널 코드를 추가하거나 삭제할수 있다.

커널 스레드 - 커널 2.4이전에는 매우 제한된 커널 스레드를 지원했지만, 2.6에서부터는 NPTL(Native POSIX Threading Libray)과 NGPT(Next Generation POSIX Threading Package)를 지원한다.

멀티스레드 지원, 멀티 프로세서 지원, GPL 라이센스 


Comments