솔라리스 부팅과정
작성자 관리자 작성시간 2003-10-07 19:12:21
 

솔라리스 역시 서로 리눅스나 프비나 비슷한 형제(?)이기 때문에 부팅과정 역시 비슷하다.
솔라리스의 부팅순서는 크게 4가지로 다음과 같이 구분할 수 있겠다.

부트 PROM 단계 -> 부트 프로그램 단계 -> 커널초기화 단계 -> init 단계

그럼 먼저 첫번째 단계인 부트 PROM 단계부터 알아보겠다. 먼저 시스템에 전원을 넣으면
부트 PROM(Program Read-Only Memoly)이 POST 과정을 실행한다. POST 과정이란
PROM에 저장되어 있는 프로그램 절차에 따라 시스템의 하드웨어를 진단한다.
이를 POST(Post On Self Test)라 한다. POST 과정이 진행된 후 Disk, Network 등 부트 디바이스로
사용될 수 있는 디바이스를 검색하여 부트 디바이스를 결정한다. 그런 다음 PROM에 정의된
부트 디바이스에서 시스템의 첫번째 부트 프로그램인bootblk(1~15 섹터에 위치함)를 Load 한다.

다음은 두번재 단계인 부트 프로그램 단계에 알아보겠다.
로드된 bootblk 프로그램은 부트 디바이스로 부터 두번재 부트 프로그램인 ufsboot를 로드한다.
ufsboot 프로그램은 32bit 또는 64bit 커널을 로드한다. Solaris 7 버전 이상부터는 여기서 로드할
32bit 또는 64bit 커널을 결정한다. 32bit 시스템에서의 커널 디렉토리는 /platform/`uname -m`/kernel 이고
64bit 를 처리하는 시스템의 커널디렉토리는 /platform/`uname -m`/sparcv9 이다.
현재 운영중인 커널을 확인하는 방법은 다음과 같다.
#isainfo -kv
만약 커널디렉토리에서 모듈을 찾으려면
/kernel, /usr/kernel, /platform/`uname -m`/kernel 또는 /platform/`uname -i`/kernel 디렉토리에서 찾는다.

다음은 세번째 단계인 커널 초기화 단계에 대해 알아보겠다.
로드된 커널은 스스로 자신을 초기화하고 ufsboot 프로그램을 이용하여 모듈을 로드한다.
커널이 / (루트) 파일시스템을 마운트하기 위한 모듈을 읽고나면 ufsboot 프로그램은
메모리에서 제거되고 계속해서 커널 자신의 자원을 이용하여 초기화 한다.
초기화 과정이 끝나면 커널은 커널 설정파일인 /etc/system 을 읽어들인다.
/etc/system 파일은 부팅 할 때 커널에 의해 로드되는 모듈들과 파라미터를 정의하는 파일이며,
이 파일의 내용은 기본적으로 모두 *을 이용하여 주석처리 되어 있다.

마지막으로 init 단계에 대해 알아보겠다.
이제 커널은 /sbin/init 프로세스를 실행시키고, /sbin/init 프로세스는 /etc/inittab 파일의
등록된 정보를 참고로하여 rc script 또는 실행가능한 다른 script들을 차례로 실행시킨다.
init 단계가 성공적으로 수행되고 나면 시스템 화면에 login 프롬프트를 보여준다.


목록 | 입력 | 수정 | 답변 | 삭제