리눅스 시스템의 부팅 |
- PC의 전원을 켜는 순간 부터 리눅스가 완전히 동작하여 로그인 프롬프트가 출력될 때까지의 과정 |
1) 바이오스 단계 - PC에 장착된 기본 하드웨어를 검사하고, MBR과 부트 로더를 로딩 2) 부트 로더 단계 - 대표적인 부트 로더는 GRUB이며, 리눅스 커널을 메모리로 로딩 3) 커널 초기화 단계 - 시스템에 연결된 장치를 검사하고, 커널 쓰레드를 생성 4) init 실행 단계 - 다양한 서비스 데몬을 시작 5) 로그인 프롬프트 출력 - 모든 데몬을 동작시키고 끝으로 로그인 프롬프트를 출력 |
init 프로세스 |
- init 프로세스는 PID가 1번인 프로세스로 부팅 과정에서 커널에 의해 실행. 각종 서비스를 제공하는 다른 프로세스들을 동작시키는 역할 - 유닉스나 리눅스 대부분이 스크립트를 순차적으로 실행하는 기존의 방식을 바꿔 이벤트 기반으로 동작하는 방식으로 init을 대체. 우분투는 자체적으로 개발한 'upstart' 를 init 대신 사용 - 'upstart' 관련 파일과 디렉터리 ; /etc/init/작업명.conf - 'upstart' 스크립트 실행 방법 * initctl [start | stop | restart | reload | status] 작업명 * [start | stop | restart | reload | status] 작업명 - 기존 init 형식의 스크립트 파일은 '/etc/init.d' 디렉터리에 있음 - 기존 init 스크립트 실행 방법 * service 스크립트명 [start | stop | restart | status] * '/etc/init.d/스크립트명 [start | stop | restart | status]' |
런레벨 |
||
- init은 시스템의 단계를 일곱개로 구분하여 정의 - 단계에 따라 쉘 스크립트를 실행. 이 단게들을 런레벨 |
||
우분투의 런레벨 |
||
런레벨 |
의미 |
관련 스크립트의 위치 |
0 |
시스템 종료 |
/etc/rc0.d |
1, S, s |
단일 사용자 모드 |
/etc/rc1.d, /etc/rcS.d |
2 |
그래피컬 다중 사용자 모드+네트워킹(기본 값) |
/etc/rc2.d |
3 |
런레벨 2와 동일 |
/etc/rc3.d |
4 |
/etc/rc4.d |
|
5 |
/etc/rc5.d |
|
6 |
시스템 재시작 |
/etc/rc6.d |
리눅스 시스템의 종료 |
1) shutdown 명령 사용 - shutdown -h now : 즉시 시스템 종료 - shutdown -h +1 "System down" : 사용자들에게 메시지를 송신 후 1분 뒤에 시스템 종료 - shutdown -r +1 : 1분 후에 시스템 재시작 - shutdown -c : shutdown 명령 취소 - shutdown -k 1 : 사용자들에게 메시지만 송신 |
2) 런레벨 변경 - telinit 0 : 런레벨 0(시스템 종료)으로 변경 - telinit 6 : 런레벨 6 (시스템 재시작)으로 변경 |
3) 기타 변경 - halt, poweroff, reboot - hlat, poweroff 는 reboot 의 링크 파일 |
데몬 프로세스 |
- 데몬은 백그라운드에서 동작하면서 특정한 서비스를 제공하는 프로세스 - 동작방식 : 독자형, 슈퍼 데몬에 의한 호출형 - 슈퍼 데몬 : 다른 데몬을 관리하는 데몬(ineted, xineted) - 네크워킹 관련 데몬만..(?) - 조상 데몬 * init : 프로세스 대부분의 조상 데몬(PID 1번) * kthreadd : 커널 쓰레드 데몬으로 커널 관련 프로세스의 조상(PID 2번) - 주요 데몬 : atd, crond, dhcpd, httpd, lpd, named, routed 등 |
부트 로더 |
- 커널을 메모리에 로딩하는 역할을 함 - 리눅스 부트 로더 : LILO와 GRUB - GRUB : LILO의 단점을 개선한 것으로 많은 리눅스의 기본 부트 로더로 사용 - GRUB 관련 디렉터리와 파일 * '/boot/grub/grub.cfg' 파일 : GRUB 기본 설정 파일 * '/etc/grub.d' 디렉터리 : GRUB 스크립트들의 위치 * '/etc/default/grub' 파일 : GRUB 메뉴 설정 내용 저장 - 단일 사용자 모드로 부팅 : 시스템을 검사하고, 계정의 암호를 분실하여 복구할 때 사용 - 복구 모드 : 시스템이 부팅되지 않는 경우에 시스템을 복구할 때 사용 |