Linux 시스템 시작 프로세스


Linux가 시작되면 많은 시작 정보를 보게 됩니다.

Linux 시스템의 시작 프로세스는 모두가 생각하는 것만큼 복잡하지 않습니다. 프로세스는 5단계로 나눌 수 있습니다:

  • 커널 부팅.

  • 초기화를 실행하세요.

  • 시스템 초기화.

  • 터미널을 만듭니다.

  • 사용자가 시스템에 로그인합니다.


커널 부팅

컴퓨터 전원이 켜지면 첫 번째 단계는 BIOS에 설정된 부팅 장치(일반적으로 하드 디스크)에 따라 시작되는 BIOS 전원 공급 자체 테스트입니다.

운영 체제가 하드웨어를 인수한 후 먼저 /boot 디렉터리에서 커널 파일을 읽습니다.

1030.png

Run init

init 프로세스는 시스템의 모든 프로세스의 시작점입니다. 이 프로세스가 없으면 시스템의 어떤 프로세스도 시작되지 않습니다.

init 프로그램은 먼저 /etc/inittab 구성 파일을 읽어야 합니다.

1031.png

실행 수준

부팅 시 많은 프로그램을 시작해야 합니다. Windows에서는 "서비스"라고 하고 Linux에서는 "데몬"이라고 합니다.

init 프로세스의 주요 작업은 부팅 시 시작되는 이러한 프로그램을 실행하는 것입니다.

그러나 상황에 따라 다른 프로그램을 시작해야 합니다. 예를 들어 서버로 사용할 경우 Apache를 시작해야 하지만 데스크톱으로 사용할 경우에는 필수가 아닙니다.

Linux에서는 "런레벨"이라고 불리는 다양한 경우에 다양한 부팅 프로그램을 할당할 수 있습니다. 즉, 시작 시 "실행 수준"에 따라 어떤 프로그램이 실행될지 결정됩니다.

1032.png

Linux 시스템에는 7개의 실행 수준이 있습니다.

  • 실행 수준 0: 시스템 종료 상태, 시스템 기본 실행 수준을 0으로 설정할 수 없습니다. 그렇지 않으면 정상적으로 시작할 수 없습니다.

  • 실행 수준 1: 단일 사용자 작업 상태, 루트 권한, 시스템 유지 관리에 사용되며 원격 로그인이 금지됩니다

  • 실행 레벨 2: 다중 사용자 상태(NFS 없음)

  • 실행 레벨 3: 다중 사용자 상태 완료(NFS 포함), 데스크 명령 로그인 후 제어 입력 라인 모드

  • 실행 레벨 4: 시스템이 사용되지 않음, 예약됨

  • 실행 레벨 5: X11 콘솔, 로그인 후 그래픽 GUI 모드로 진입

  • 실행 레벨 6: 시스템이 종료되고 다시 시작됩니다. 일반적으로 기본값 실행 수준을 6으로 설정할 수 없습니다. 그렇지 않으면 정상적으로 시작되지 않습니다


시스템 초기화

init 구성 파일에 다음 줄이 있습니다: si::sysinit:/etc/rc.d/ rc.sysinit /etc/rc.d/rc.sysinit를 호출하고 실행하며, rc.sysinit는 주로 일부 시스템 초기화 작업을 완료하는 bash 쉘 스크립트입니다. rc.sysinit는 매번 먼저 실행해야 하는 중요한 스크립트입니다. 실행 수준.

완료되는 주요 작업은 스왑 파티션 활성화, 디스크 확인, 하드웨어 모듈 로드 및 먼저 수행해야 하는 기타 작업입니다.

l5:5:wait:/etc/rc.d/rc 5

이 줄은 5를 매개변수로 사용하여 /etc/rc.d/rc를 실행한다는 의미입니다. /etc/rc.d/rc는 /etc/rc.d/rc5를 실행하기 위한 매개변수로 5를 허용하는 쉘 스크립트입니다. d/ 디렉토리에 있는 모든 rc 시작 스크립트와 /etc/rc.d/rc5.d/ 디렉토리에 있는 이러한 시작 스크립트는 실제 rc 시작 스크립트가 아닌 실제로 연결 파일입니다. /etc/rc.d/init.d/ 디렉토리.

이 rc 시작 스크립트는 사용법이 비슷합니다. 일반적으로 시작, 중지, 다시 시작, 상태 및 기타 매개변수를 허용합니다.

/etc/rc.d/rc5.d/의 rc 시작 스크립트는 일반적으로 K 또는 S로 시작하는 연결 파일입니다. S로 시작하는 시작 스크립트의 경우 시작 매개변수로 실행됩니다.

K로 시작하는 해당 스크립트와 연결이 있고 이미 실행 중인 상태인 경우(/var/lock/subsys/ 아래의 파일을 기호로 사용) 먼저 중지를 다음과 같이 사용합니다. 이미 시작된 데몬을 중지한 다음 다시 실행하는 매개변수입니다.

이 작업은 init가 실행 수준을 변경할 때 모든 관련 데몬이 다시 시작되도록 하기 위해 수행됩니다.

각 실행 수준에서 어떤 데몬이 실행될지는 사용자가 chkconfig 또는 설정의 "시스템 서비스"를 통해 직접 설정할 수 있습니다.

1033.png

터미널 생성

rc가 실행된 후 init으로 돌아갑니다. 이때 기본 시스템 환경이 설정되었으며 다양한 데몬 프로세스가 시작되었습니다.

init는 사용자가 시스템에 로그인할 수 있도록 6개의 터미널을 엽니다. inittab의 다음 6개 라인은 6개의 터미널을 정의합니다:

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

위에서 볼 수 있듯이 mingetty 프로그램은 실행 레벨 2, 3, 4 및 5의 respawn 모드에서 실행됩니다. mingetty 프로그램은 터미널을 열 수 있습니다. 세트 모델.

동시에 텍스트 로그인 인터페이스가 표시됩니다. 이 인터페이스는 우리가 자주 보는 로그인 인터페이스입니다. 이 로그인 인터페이스에서는 사용자 이름을 입력하라는 메시지가 표시되며 사용자가 입력한 사용자는 다음과 같습니다. 사용자 신원을 확인하기 위해 로그인 프로그램에 매개변수로 전달됩니다.


사용자 로그인 시스템

일반적으로 사용자가 로그인하는 방법에는 세 가지가 있습니다.

  • (1) 명령줄 로그인

  • (2) SSH 로그인

  • (3) 그래픽 인터페이스 로그인

1034.png

실행 레벨 5를 사용하는 그래픽 사용자의 경우 그래픽 로그인 인터페이스를 통해 로그인합니다. 로그인에 성공하면 KDE, Gnome 등의 창 관리자에 직접 들어갈 수 있습니다.

이 기사에서는 주로 텍스트 로그인에 대해 설명합니다. Mingetty 로그인 인터페이스를 보면 사용자 이름과 비밀번호를 입력하여 시스템에 로그인할 수 있습니다.

Linux의 계정 확인 프로그램은 로그인입니다. 로그인은 mingetty가 사용자 이름 매개변수로 보낸 사용자 이름을 받습니다.

그러면 로그인이 사용자 이름을 분석합니다. 사용자 이름이 루트가 아니고 /etc/nologin 파일이 존재하는 경우 로그인은 nologin 파일의 내용을 출력한 다음 종료됩니다.

이는 일반적으로 시스템 유지 관리 중에 루트가 아닌 사용자가 로그인하는 것을 방지하는 데 사용됩니다. /etc/securetty에 등록된 터미널만 루트 사용자로 로그인할 수 있습니다. 이 파일이 없으면 루트는 모든 터미널에 로그인할 수 있습니다.

/etc/usertty 파일은 사용자에게 추가 액세스 제한을 적용하는 데 사용됩니다. 이 파일이 존재하지 않는 경우에는 다른 제한이 없습니다.


그래픽 모드와 텍스트 모드 간 전환 방법

Linux는 기본적으로 로그인할 수 있는 6개의 명령 창 터미널을 제공합니다.

기본적으로 첫 번째 창인 tty1에 로그인합니다. 6개의 창은 tty1, tty2...tty6을 눌러 전환할 수 있습니다.

그래픽 인터페이스를 설치한 경우 기본적으로 그래픽 인터페이스로 들어갑니다. 이때 Ctrl + Alt + F1 ~ F6을 눌러 명령 창 인터페이스 중 하나로 들어갈 수 있습니다.

명령 창 인터페이스에 들어갔다가 그래픽 인터페이스로 돌아갈 때 Ctrl + Alt + F7을 누르면 다시 돌아옵니다.

vmware 가상 머신을 사용하는 경우 명령 창 전환 단축키는 Alt + Space + F1~F6입니다. 그래픽 인터페이스인 경우 Alt + Shift + Ctrl + F1~F6을 눌러 전환하세요. 명령 창.

1037.png

Linux 종료

는 Linux 분야의 서버에서 주로 사용되며 종료 작업은 거의 발생하지 않습니다. 결국, 서버에서 서비스를 실행하는 것은 끝이 없습니다. 특별한 경우가 아니면 최후의 수단으로 서비스를 종료하게 됩니다.

올바른 종료 프로세스는 다음과 같습니다: sysnc > shutdown >

예를 들어 다음 명령을 실행하여 종료할 수 있습니다.

sync는 메모리의 데이터를 하드 드라이브로 동기화합니다.

shutdown shutdown 명령을 사용하면 수동으로 종료하여 도움말 문서를 읽을 수 있습니다. 예를 들어 다음 명령을 실행하여 종료할 수 있습니다.

shutdown –h 10 '이 서버는 10분 후에 종료됩니다.' 이 명령은 모든 사람에게 컴퓨터가 10분 후에 종료되고 현재 화면에 표시됨을 알려줍니다. 로그인한 사용자.

Shutdown –h now 즉시 종료

Shutdown –h 20:25 오늘 20시 25분에 시스템이 종료됩니다

Shutdown –h +10 10분 후 종료

Shutdown –r now 시스템이 즉시 다시 시작됩니다

Shutdown –r + 10 10분 후에 시스템이 다시 시작됩니다.

reboot는 다시 시작한다는 의미이며, 이는 shutdown –r now

halt 시스템 종료와 동일합니다. 이는 shutdown –h now 및 poweroff

마지막으로 요약하자면, 시스템을 다시 시작하든 시스템을 종료하든 먼저 sync 명령을 실행해야 합니다. 메모리의 데이터를 디스크에 기록합니다.

종료 명령에는 shutdown –h now quit poweroff 및 init 0이 포함됩니다. 시스템을 다시 시작하는 명령에는 shutdown –r now restart init 6이 포함됩니다.