부트로더

반응형


  부팅이란 운영체제가 적재되는 과정을 의미한다. 부팅은 다른 말로 부트스트래핑(bootstraping)이라고도 한다. 이 부팅을 수행하는 것을 부트스트랩 로더 혹은 부트로더(Boot loader)라고 한다. 부트로더는 디스크 트랙 0에 적재되며, 운영체제가 동작을 시작하기 전에 미리 실행되는 것으로 커널이 올바르게 시동되기 위해 필요한 모든 작업들을 마무리한다. 네트워크, 직렬 포트, 인터럽트 등의 하드웨어들을 초기화하고 메모리를 초기화한다. 그리고 커널과 루트 파일 시스템을 RAM 플래시 메모리에 적재하여 구동시킨다. 부트로더의 종류에는 U-BOOT, BLOB, LILO, GRUB 등이 있다.

  이번에는 대표적인 운영체제의 구조를 정리해보도록 하겠다. 운영체제의 구조 중에 모놀리식(monolithic) 구조는 가장 단순한 구조로서, 단일형 커널이라고도 하며 전통적인 유닉스 시스템의 구조이다. 입출력 기능, 네트워크 기능 등의 운영체제의 기능들을 커널과 동일한 메모리 공간에 적재하여 실행시킨다. 운영체제의 대부분의 기능이 단일 메모리 공간에서 수행되기 때문에, 문맥 교환이니 프로세스 통신과 같은 것들의 오버헤드가 상대적으로 적어서 성능 면에서 장점을 갖는다는 특징이 있다. 이렇게 시스템 제어의 모든 기능들을 커널 내부에 가지고 있지만, 필요 기능을 추가할 경우에는 전체 커널 코드를 재컴파일하고 테스트해야 한다는 확장성이 떨어지는 문제가 있다. 또 다른 운영체제의 구조로는 계층적 구조가 있다. 비슷한 기능끼리 모아서 계층으로 구분하여, 계층끼리 인터페이스를 통해 상호 작용한다. 이 계층적 구조는, 운영체제가 점점 복잡해지고 기능이 다양해짐에 따라 모놀리식 구조로만 설계하기가 어려워졌기 때문이다. 계층적 구조의 각 계층들은 자신의 구현을 숨기고 인터페이스만을 통해서 다른 계층과 상호 작용한다. 계층적 구조의 계층들의 예로는, 하드웨어 - 프로세서 관리 - 메모리 관리 - 프로세스 관리 - 주변 장치 관리 - 파일과 데이터 관리 등의 계층 형태가 있다. 그리고 마이크로 커널이란 카네기 멜론 대학교의 연구진들이 개발한 운영체제로서, 보다 더 작은 커널을 만들기 위해 탄생시킨 운영체제 구조이다. 중요하지 않은 요소들은 모두 커널로부터 제거하여 시스템 및 사용자 수준 프로그램으로 만듦으로써 가볍고 작은 커널의 모습을 갖게 된다. 모놀리식 커널 구조가 시스템 관리에 필요한 모든 기능들을 커널 레벨에서 동작시키는 것과는 달리, 마이크로 커널 구조는 가장 기본적인 요소들만 핵심 커널에 포함시킨다. 따라서 마이크로 커널 구조에서 기능을 추가하게 되면 해당 기능을 갖고 있는 프로세스만 재컴파일하고 테스트하면 된다.

반응형

+ Recent posts