Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Azure
- aws사용자모임
- 파이썬
- dockerfile
- 리눅스
- jenkins
- AI챗봇
- 변수
- awskrug
- open ai
- 사용자 계정 관리
- AI
- 애저
- GIT
- Linux
- 프로세스 관리
- python
- git hub
- maven
- 표준 라이브러리
- go
- 명령어
- 3티어 아키텍처
- docker
- it기사
- 클라우드
- AWS
- terraform
- nexus
- 함수
Archives
- Today
- Total
We are Architect
12. 리눅스 시스템의 부팅(1) 본문
* 리눅스 시스템의 부팅 과정
* 바이오스 단계
- 바이오스 란 PC 전원이 켜진 뒤에 시작되는 프로그램으로 하드웨어를 점검하고 운영체제를 실행하게 돕는다.
- 즉 하드웨어와 소프트웨어를 연결하는 다리로써 PC부팅 시 반드시 실행되어야 한다.
- 펌웨어의 한 종류이다.
- /boot/vm* 파일중에 커널을 하나 선택해서 커널설정을 한다.
- vmlinuz - 0 - rescure는 응급 복구 모드 커널이다.
- MBR(Master boot record)은 하드디스크나 SSD의 가장 첫 번째 섹터(0번 섹터)에 위치하며, 컴퓨터가 운영 체제를 실행하기 위한 시작점.
- 부트로더는 MBR에 저장된 코드를 기반으로 운영 체제를 실행하는 프로그램.
* 부트 로더 단계
- 운영체제의 커널을 로드하는 단계로 부트로더 프로그램이 주도한다.
- 하드웨어 초기화 정보 수집하여 운영체제를 실행할 준비를 한다.
- 하드 디스크에서 운영체제가 설치된 곳을 찾아서 커널을 메모리에 로드한다.
- 커널로 커널 제어권을 넘긴다.
- 대표적인 부트로더는 GRUB, LILO, SYSLINUX/ISOLINUX 등이 존재한다.
* 커널 초기화 단계
- 커널이 실행을 시작하여 컴퓨터 시스템을 실행하는 과정.
- 하드웨어 초기화, 장치 트리 설정, 메모리 관리 초기화와 같은 과정을 거친다.
- 커널은 루트 파일 시스템을 마운트 한다. 마운트를 통해 디스크에서 읽고 쓰기가 가능해진다.
- 커널은 또한 프로세스를 실행하고 관리할 준비를 한다. (systemd를 실행)
- 스케줄러 초기화 및 네트워크 인터페이스 초기화를 진행한다.
- 커널 초기화 단계가 끝나면 systemd에게 제어권을 넘긴다.
* systemd 초기화 단계
- systemd는 시스템을 초기화 하고 사용자 공간을 준비하는 과정이다.
- PID 1 프로세스 시작을 하여 프로세스 관리를 시작한다.
- 루트 파일 시스템 재마운트를 하여 무결성 검사를 실시
- 부팅 모드 결정
- UNIT단위 결정
- systemd 유닛의 결정
유닛 | 기능 | 예 |
service | 가장 명백한 유닛으로 데몬 시작, 종료, 재시작, 로드 한다. | atd.service(예약 작업 실행 데몬) |
socket | 네트워크 소켓 이나 파일 디스크립터 기반 통신을 관리하는 유닛. | dbus.socket(D-Bus에 대한 소켓) |
device | 리눅스 장치 트리에 있는 장치를 관리한다. | sys-module-fuse.device( FUSE 관련 장치를 관리.) |
mount | 디렉토리 계층 구조의 특정 지점을 파일 시스템에 연결(마운트)하는 유닛. | boot.mount(부팅 시 /boot 디렉토리를 마운트) |
automount | 특정 경로에 접근할 때 파일 시스템을 자동으로 마운트하는 유닛. | proc-sys-fs-binfmt_misc.automount( 파일 시스템 자동 마운트.) |
target | 관련된 여러 유닛을 그룹화하는 유닛. | multi-user.target(CLI 기반 멀티유저 환경.) |
swap | 스왑 공간(메모리가 부족할 때 디스크를 임시 메모리로 사용하는 공간)을 관리하는 유닛. | dev-mapper-fedora-v2d-swap.swap(특정 스왑 공간 관리.) |
path | 파일 시스템 경로를 감시하고, 특정 조건이 충족되었을 때 유닛을 트리거하는 역할을 한다. | cups.path (프린터 작업 대기열(CUPS) 경로 감) |
timer | 특정 시간에 유닛(주로 서비스)을 실행하는 역할을 한다. | dnf-makecache.timer( dnf 캐시를 갱신하는 타이머) |
slice | 프로세스 그룹의 자원을 계층적으로 관리. | system-getty.slice( 로그인 터미널 프로세스 그룹.) |
scope | systemd 외부에서 생성된 프로세스를 관리. | init.scope(초기화 관련 스코프.) |
* systemd 관련 명령
- systemd를 제어한다.
- 사용 형식은 다음과 같다.
systemctl [옵션] [명령] [유닛명-프로그램 명]
명령어 | 기능 |
systemctl start [유닛명] | 유닛을 시작. |
systemctl stop [유닛명] | 유닛을 중지. |
systemctl reload [유닛명] | 지정한 종류의 유닛만 츌력한다. |
systemctl restart [유닛명] | 유닛을 재시작한다. |
systemctl status [유닛명] | 유닛의 상태를 확인한다. |
systemctl enable [유닛명] | 부팅 시 유닛이 시작 하도록 설정한다. |
systemctl disable [유닛명] | 부팅 시 유닛이 시작하지 않도록 설정한다. |
systemctl is-active [유닛명] | 유닛이 동작하고 있는지 확인한다. |
systemctl isolate [유닛명] | 지정한 유닛 및 관련된 유닛만 시작하고 나머지는 정지한다. |
systemctl kill [유닛명] | 유닛에 kill 시그널을 전송한다. |
'운영체제 > Linux' 카테고리의 다른 글
14. RPM 패키지 설치 (0) | 2024.12.05 |
---|---|
13. 리눅스 시스템의 부팅(2) (0) | 2024.12.02 |
11. 파일 시스템 검사하기 (1) | 2024.11.29 |
10. 파일시스템 구축(LVM) (0) | 2024.11.27 |
9. 파일시스템의 종류와 구조 & 파일 시스템 마운트 (0) | 2024.11.26 |