[CS/운영체제] 리눅스 프로세스 관리 - 2부

황제연·2025년 5월 19일
0

CS학습

목록 보기
79/193
post-thumbnail

부팅(Booting)

부팅은 컴퓨터의 전원이 켜진 후 운영체제가 가동되어
사용자가 컴퓨터를 사용할 수 있게 만들어주는 과정을 말합니다

부트는 시스템에 장착된 하드웨어를 인식하고 점검하는 하드웨어적 단계와
사용자가 운영체제와 응용 프로그램을 사용할 수 있도록 메모리에 올리는
소프트웨어적 단계로 나눌 수 있습니다

하드디스크에 설치된 운영체제의 부팅과정

  1. 컴퓨터 전원을 켜면 바이오스는 컴퓨터에 장착된 하드웨어를 점검합니다
  2. 바이오스는 하드웨어의 검사가 끝나면 CMOS에 설정된 첫번째 부팅 디스크를 확인합니다
  3. 첫번째 하드디스크의 MBR 영역에 있는 부트 매니저 프로그램을 실행합니다
  4. 부트 매니저 프로그램은 관련 환경설정파일을 참고해서 운영체제 부팅을 시작합니다

리눅스 부트 프로세스의 변화

초창기 리눅스는 init 프로세스를 사용해서 부팅했습니다
init 프로세스 체제는 부팅과 관련된 모든 작업을 init 프로세스에 위임하는 방식입니다

전원이 켜지고 BIOS 점검을 마치면 커널이 로드되고,
커널이 우선 루트파일 시스템(/)을 읽기 전용(read-Only) 형태로 마운트하고
검사후에 이상이 없으면 쓰기 가능(read-Write)형태로 다시 마운트합니다

이후에 커널은 init 프로세스를 발생시키며 리눅스 부팅과 관련된 소프트웨어 구동은
init 프로세스에 위임됩니다

init 프로세스

init 프로세스는 리눅스 시스템 내부의 최초 프로세스로서 PID가 1번이 할당되고
그 이후에 생성되는 프로세스는 모두 fork 방식으로 생성됩니다

부팅 후에 생성되는 프로세스들은 전부 init프로세스의 자식 프로세스 형태로 종식되면서
시스템 종료 및 재부팅이 편하도록 설계되었습니다

하지만 CentOS는 6버전까지 init프로세스를 사용하다가
CentOS7버전은 시스템 부팅 및 서비스 관리 프로그램으로 init 대신에 systemd를 사용합니다

참고

  • CentOS 7로 이해하는 리눅스 관리 및 시스템 보안 - 도서
profile
Software Developer

0개의 댓글