부트로더?
부트로더란 운영체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영체제를 시동시키기 위한 목적을 가진 프로그램
BIOS -> 1차 부트로더 -> 2차 부트로더 -> 커널 -> 운영체제
컴퓨터가 실행되면 BIOS가 로드되고 BIOS에 연결된 저장 매체에서 설정된 부팅 순서대로 부트로더들을 불러온다.
BIOS는 MBR에 존재하는 하드디스크 파티션 테이블을 읽은 후 활성화되어있는 파티션의 PBR을 읽어 그 데이터로 부팅하게 된다. 여기서 MBR, PBR이 바로 1차 부트로더이다.
윈도우와 같은 큰 용량이 필요한 운영체제는 2차 부트로더가 필요하며 1차 부트로더가 2차 부트로더를 로드하고 다시 2차 부트로더가 커널을 로드하는 방식이다.
2차 부트로더에는 GRUB(리눅스, 윈도우), SYSLINUX(리눅스), LILO(리눅스) 등이 있다.
커널?
커널은 컴퓨터의 운영체제의 핵심이 되는 컴퓨터 프로그램의 하나로 운영체제의 전체적인 시스템을 통제하고 시스템 자원을 효율적으로 관리하여 응용 프로그램 수행에 필요한 서비스를 제공
커널이 하는 일
프로세스 관리 : 프로세스에 CPU를 배분하고 작업에 필요한 환경 제공
메모리 관리 : 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공
파일 시스템 관리 : 데이터를 저장하고 접근할 수 있는 인터페이스 제공
입출력 관리 : 필요한 입력과 출력 서비스 제공
프로세스 간 통신 관리 : 공동 작업을 위한 각 프로세스 간 통신 환경 제공
포팅?
어느 한 운영체제에서 작동하는 프로그램을 다른 운영체제에서 작동하도록 프로그램을 변경하는 것 또는 운영체제 자체를 이식하는 것
한 운영체제에서 작동하는 프로그램을 크로스 컴파일러를 통해 타겟 운영체제에서 실행될 수 있는 실행파일을 생성할 수 있다.
CPU나 메모리, 기타 장치가 탑재된 시스템에는 포팅과정을 통해 OS를 설치하여야 한다.
예를 들어, 리눅스를 보드에 포팅한다고 하면 부트로더를 통해 4개의 파일(응용 프로그램, 파일 시스템, 램 디스크, 커널)로 분할하여 플래시 메모리에 저장해 주어야 한다.
이후, 보드를 부팅시키면 플래시 메모리에 저장되어 있는 시스템 파일을 모두 RAM으로 불러와 저장되고 OS를 이용할 수 있게 된다.
'Linux' 카테고리의 다른 글
파일 시스템 / 파티션 (0) | 2020.04.11 |
---|