728x90
반응형
유닉스와 리눅스 부팅 및 런레벨

유닉스 부팅 순서
순서
부팅 과정
정의
01
Power On
 
02
Boot PROM
POST(Power On Self Test) - 디바이스 정보와 장치 점검
부팅장치 설정
VTOC 확인
※ VTOC :디스크 섹터0번에 Partition Table을 확인한다.
1~15 Sertor에는 bootblk 프로그램의 위치를 가르키는 포인터가 있는데, 로더 시킨다. bootblk는 유닉스에서 쓰는 boot loder중 하나이다.
03
Boot Program
ufs boot : 커널에서 모듈을 읽을 수 있게 하는 boot 파일이다. 이 과정에서 메모리에 적재한다.
genunix, unix : 두 개를 합쳐 커널을 생성하고, 메모리에 적재한다.
04
커널 초기화
/etc/system 디렉토리를 참조하여 초기화를 시킨다.
※ /etc/system 디렉토리는 커널의 파라미터와 정보값이 저장되어 있다.
ufsboot를 이용한 장치 초기화
PID 0번인 sched가 로드되고, sched가
PID 1번인 init 프로세스를 메모리에 로더 시킨다.
05
init 프로세스 동작
svc.startd 에 정의되어 동작
06
svc.startd
milestone에서 해당 레벨로 부팅




리눅스 부팅 순서
순서
부팅 과정
정의
01
Power On
 
02
ROM BIOS
POST(Power On Self Test) - 디바이스 정보와 장치 점검
부팅장치 설정
VTOC, MBR(Master Boot Recode) 확인
※ 디스크 섹터0번에 VTOC, MBR의 위치가 들어있다.
03
GRUB
커널의 이미지를 선택하여 메모리에 적재시킨다.
GRUB의 위치는 /etc/vmlinuz버전.img 에 정의되어 있다.
04
커널 이미지 적재
‘/ ’파일시스템을 Read Only로 마운트하여 테스트 과정을 거치고 난 뒤
정상적으로 Read/Wirte 권한으로 마운트하여 장치 드라이버를 설정한다.
05
Swapper 생성
커널에 의해서 PID 0번인 Swapper 프로세스가 생성된다.
06
init 생성 및 커널부팅, 초기화
Swapper 프로세스가 PID 1번인 init 프로세스를 생성시키고, init 프로세스는 /etc/inittab 파일에 default 런레벨이 정의되어 있고 해당 런 레벨로 부팅 시 /etc/rc.d/rc.sysinit 스크립트가 실행되어 커널을 초기화 시킨 다음 정상적으로 부팅 완료된다.

일반적인 OS 기본적 부팅 순서
순서
부팅 과정
정의
01
Power On
 
02
BIOS
PROM 안에 들어있는 POST(Power On Self Test): 하드웨어 자가 테스트 실행한다. BIOS에서 지정된 부팅장치에서 부트 프로그램을 메모리 상에 적재한다.
03
Boot Program
(Boot Loader)
운영체제가 동작하기 전 반드시 동작하여야하고, 디스크 앞쪽에 반드시 있어야한다. 역할은 커널의 위치를 메모리에 적재시킨다. 대표적으로 리눅스는 GRUB, 윈도우는 NTLDR, WINLOAD이 있다.
04
Kernel 초기화
초기화를 시키고, 커널이 어떻게 동작할 것인지를 결정한다.
05
서비스 동작
해당 런레벨에 따라 어떤 서비스를 동작시킬 것인지를 결정하고 백그라운드로 동작시킨다.


유닉스 런레벨 정의
실행레벨
의미
0
시스템을 BIOS 상태로 부팅, 종료
1
single mod로 부팅되는데 모든 파일시스템을 마운트
S
중요한 파일시스템만 마운트
2
NFS를 지원하지 않는 다중 사용자 모드
3
네트워킹을 지원하는 다중 사용자 모드
4
사용자가 정의해서 쓸 수 있는 실행레벨
5
시스템 종료
6
시스템을 재부팅시키도록 정의된 실행레벨


리눅스 런레벨 정의(cat /etc/inittab)
실행레벨
의미
0
시스템 종료
1
single mod로 부팅
2
NFS를 지원하지 않는 다중 사용자 모드
3
네트워킹을 지원하는 다중 사용자 모드
4
사용자가 정의해서 쓸 수 있는 실행레벨
5
X를 실행시키기 위한 실행레벨(GUI지원)
6
시스템을 재부팅시키도록 정의된 실행레벨

  


728x90
반응형

+ Recent posts