부팅 관련 용어 정리
1. 런 레벨(Run Level)
- 시스템에서 런 레벨의 의미는 시스템의 운영 상태를 숫자나 문자로 표현 한 것
* 런 레벨(Run Level)
유닉스 시스템 관리자가 시스템 관리의 편의성을 증대하기 위해서 사용되는 것으로 필요시에는 유닉스 부팅을 변경하여 네트워크를 사용하지 못하게 하거나, 다른 사용자가 접근하지 못하게 하는 역할을 수행할 수 있음
1) /etc/inittab 파일
- init 프로세스: 모든 프로세스의 부모 프로세스, /etc/inittab 파일에 저장 되어 있는 스크립트 대로 프로세스들을 생성
- /etc/inittab 파일에 정의된 런 레벨에 따라 /etc/rc.d/rc[x].d ([x]는 런 레벨) 디렉터리에 나열된 스크립트를 실행하여 시스템의 운영상태를 구성
(* 참고: /etc/inittab파일에서는 /etc/init.d/rc [x]가 실행되는 것 같은데... 그리고 rc[x].d는 /etc에 있음..모르겠음 ㅠㅠ)
2) 유닉스의 런 레벨
런 레벨 |
상 태 | 설 명 |
0 |
PROM(Programmable Read-Only Memory) 모드 |
|
1 |
부팅 직후 상태 | 시스템 싱글 유저 모드, 로컬 파일 시스템이 마운트 되지 않은 상태 |
2 |
정상 상태 | 멀티 유저 모드(NFS 클라이언트 모드) |
3 |
멀티 유저 모드(NFS 서버 모드), UNIX 기본 Run Level |
|
4 |
| 사용 안함 |
5 |
(유닉스)종료 상태 | 시스템 power off 모드 |
(리눅스)정상 상태 | 멀티 유저 모드 (x윈도우 환경으로 실행) | |
6 |
재부팅 | 시스템 리부팅 |
S, s |
| 시스템 싱글 유저 모드, 로컬 파일 시스템이 마운트 된 상태 |
* 참고
1. PROM(Programmable Read-Only Memory) 모드
PROM은 시스템이 부팅되기 전에 이용되며 self-test 절차로 시스템과 H/W와의 무결성 여부를 진단, 에러가 없으면 자동으로 boot process 수행
2. PROM 역할
하드웨어 테스트 및 초기화, 하드웨어 설정 확인, OS부팅, 대화형 인터페이스 지원, 하드웨어 검사, CPU검사, 메모리 검사, 버스 장치 검사, 드라이버 점검, 장치 트리 구성 등
3. Boot PROM이 가지고 있는 정보
- 기본적인 하드웨어 점검
- Flash ROM에 저장되어 존재하며, 소켓 형식으로 제공
- Defaults 값만 저장되어 있고 변경된 값은 NVRAM에 저장
- 인텔 PC의 CMOS와 유사
- 서버용 UNIX 시스템: 3 또는 5의 런레벨로 운영
3) 현재 운영중인 시스템의 런 레벨 확인
- who -r(--runlevel) 또는 runlevel 명령을 사용하여 확인
2. INIT 상태(INIT State)
- INIT 상태 = 런 레벨
- init 명령: 시스템이 런 레벨을 이동할 때 사용
- 예: 현재 런 레벨이 멀티 유저 모드 3번에서 싱글 유저 모드로 이동 - init S 명령어 이용
3. 시스템 런 레벨 단계 구성
- INIT의 상태는 런 레벨을 옮겨 다니며 각 레벨마다의 역할을 수행함
- init 명령어 다음에 런 레벨을 쓰면 해당 런 레벨로 이동 가능
- UNIX 시스템의 부팅 과정
- ok boot: PROM 환경에 설정된 값으로 부팅
- ok boot-s: single user mode로 부팅
시스템 시작
1. UNIX 시스템의 부팅 과정
1) 바이오스(Bios) 과정
- 시스템에 전원이 들어오면 바이오스는 시스템의 기본적인 하드웨어 이상 유무를 점검
- 시스템의 하드웨어 정보를 수집
2) 부트(Boot) 프로그램 과정
- 하드 디스크에서 커널을 읽어 들여 메모리 상에 적재, 시스템 제어권을 커널에 넘김
3) 커널(Kernel) 과정
- 커널이 메모리상에 적재되면 운영체제 구동 시작
- 하드웨어 점검을 완료
- 내부 자료구조를 초기화
- 시스템을 운영하기 위한 부가적인 커널 모듈을 하드디스크에서 메모리 상으로 적재
4) init 프로세스 과정
- init 프로세스: 커널에 의해 생성되는 첫 번째 프로세스
- 커널의 실행으로 운영체제가 하드웨어의 모든 기능을 제어하게 되었을 때 PID가 1인 init 프로세스가 실행
- init 프로세스 정보 확인
- init 프로세스는 모든 프로세스의 부모 프로세스
- 부팅 과정에서 사용자가 시스템을 사용 할 수 있게 초기화 작업을 담당
- BSD 계열: 싱글 유저 모드와 멀티 유저 모드 두가지를 지원
- System V계열: 더 많은 단계로 시스템 운영 상태를 분류(런레벨, /etc/inittab 파일에 정의)
시스템 종료
- 시스템 종료: 운영 중인 UNIX 시스템의 정기 점검, H/W 및 S/W의 추가, 변경, 기타 관리 작업 등을 위해 필요
- shutdow, halt, poweroff 명령을 통해 종료 가능
- Ctrl + Alt + Delete를 입력하여 시스템 종료 후 재시작 가능
1. UNIX 시스템 종료시 주의 사항
- 접속 중인 사용자에게 시스템의 종료를 공지하여 작업을 마무리 하도록 해야 함
- 운영중인 서비스(프로세스)를 안전하게 종료해야 함
- 하드 디스크를 갱신하여 파일 시스템의 무결성을 유지
2. shutdown 명령
- shutdown 명령: 시스템을 안전하게 종료할 때 사용, 시스템의 런레벨을 변경 할 때도 사용
1) shutdown 명령어 도움말 (리눅스 계열)
- 주요 옵션
옵 션 |
설 명 |
-h |
Halt, 부트 PROM상태로 전환(디폴트 값) |
-r |
Reboot, 시스템 재부팅 |
-k |
경고, 사용자에게 메시지만 전달, 시스템을 가짜로 종료 |
-f |
Fast Reboot, 빠른 재시작(fsck skip) |
- 예문
명 령 |
설 명 |
shutdown +10 "server reboot" |
10분후 접속중인 사용자에게 "server reboot" 메시지를 보여준 후 시스템 종료 |
shutdown now |
즉시 시스템을 종료 |
shutdown -r 20:00 |
20:00시에 시스템을 종료후 재시작 |
shutdown -r |
시스템을 종료 후 재시작 |
halt |
"The system is halted." 메시지가 나온 후에 시스템 전원을 종료 |
하드 디스크 동기화(Sync)
- UNIX 시스템은 하드 디스크의 입,출력에 대한 효율성을 높이기 위하여 버퍼를 운영함
- 시스템이 비정상적으로 종료: 버퍼에 있는 데이터가 하드디스크에 반영되지 않아 파일 시스템에서 무결성 문제 발생
- 하드 디스크 동기화는 시스템을 종료하는 중에 해야할 가장 중요한 작업
- 유닉스나 리눅스 종료시 sync 명령을 내리는 이유: 버퍼의 내용을 하드 디스크로 옮김
'보안 > System' 카테고리의 다른 글
[UNIX / Linux] 특수 권한(setuid, setgid, sticky bit) (18) | 2015.06.27 |
---|---|
[UNIX / Linux] 프로세스 응용 (0) | 2015.05.10 |
[UNIX / Linux] 디렉토리 및 파일 관련 명령어 (1) | 2015.05.02 |
[UNIX / Linux] 파일 검색(find) (0) | 2015.05.02 |
[UNIX / Linux] 권한 관리(chmod, chown, chgrp, umask) (13) | 2015.04.30 |
[UNIX / Linux] 디렉토리 관리 (5) | 2015.04.29 |
[UNIX / Linux] 특수 문자(Shell Metacharacter) (0) | 2015.04.28 |
[UNIX / Linux] 파일링크(ln) (0) | 2015.04.27 |
[UNIX / Linux] 입출력 재지정, 파이프 (1) | 2015.04.26 |