링과 런레벨

링과 런레벨

아래 질문은 기술적으로 잘못된 부분(오해)이 있을 수 있으니, 오해도 해소해주시면 좋을 것 같습니다.

어느반지레벨에 따라 *nix가 다릅니다.런레벨운영 중이신가요?

링 라벨을 사용할 수 없습니다.

답변1

Unix 런레벨은 가드 링과 직교합니다("관련되지 않음", "독립적"이라는 의미 - 참고 참조).

런레벨은 기본적으로 전체 운영 체제의 런타임 구성/상태이며, SSH 액세스, MTA, 파일 서버, GUI와 같은 사용 가능한 서비스("사용자에게")를 설명합니다.

반지는하드웨어 지원개념을 사용하면 하드웨어에 대한 보다 세밀한 제어가 가능합니다(링크된 Wikipedia 페이지에 설명되어 있음). 예를 들어, 상위 링에서 실행되는 코드는 특정 CPU 명령을 실행하지 못할 수 있습니다.

x86 아키텍처의 Linux는 일반적으로 커널(장치 드라이버 포함)에 Ring0을 사용하고 사용자 공간 응용 프로그램(루트 또는 다른 일반 또는 권한 있는 사용자에 의해 실행되는지 여부)에 Ring3을 사용합니다.

따라서 런레벨이 특정 링에서 실행되고 있다고 실제로 말할 수는 없습니다. 항상 링 3과 커널(Ring0)에서 실행되는 1개의 사용자 공간 애플리케이션(최소 PID 1 - )이 있습니다.init


1 항상 그렇듯이 "항상"은 실제로 "거의 항상"을 의미합니다. 왜냐하면 Ring0에서 "일반" 프로그램을 실행할 수 있지만 실제 생활에서는 이를 볼 가능성이 거의 없기 때문입니다(HPC에서 작업하지 않는 한).

답변2

이 두 개념은 전혀 관련이 없습니다. 시스템 실행 수준은 GUI 데스크탑 환경이 실행 중인지 여부와 같이 시스템에서 실행되는 서비스 세트를 나타냅니다. 링 수준은 코드를 다양한 권한 수준으로 나누는 Intel x86 프로세서의 하드웨어 보호 메커니즘입니다. Linux는 커널 및 사용자 모드 코드에 각각 링 0과 링 3만 사용합니다. 따라서 시스템이 실행 수준에 있을 때 실행되는 모든 사용자 모드 프로세스는 커널 코드를 호출할 때까지 링 3에서 실행되어 CPU를 링 0으로 전환합니다.

답변3

자신의 링크에서:

모놀리식 커널에서 운영 체제는 감독자 모드에서 실행되고 응용 프로그램은 사용자 모드에서 실행됩니다. 엑소커널이나 마이크로커널이 있는 운영 체제와 같은 다른 유형의 운영 체제는 반드시 이런 방식으로 동작하지는 않습니다.

PC 세계의 몇 가지 예:

Linux와 Windows는 관리자/사용자 모드를 사용하는 두 가지 운영 체제입니다. 특수 기능을 수행하기 위해 사용자 모드 코드는 하이퍼바이저 모드 또는 커널 공간에서 시스템 호출을 실행해야 합니다. 여기서 운영 체제의 신뢰할 수 있는 코드는 필요한 작업을 수행하고 이를 사용자 공간으로 반환합니다.

그래서 당신의 대답은 2입니다. 감독자(0)와 사용자(1).

관련 정보