CPU 권한 링 : 링 1과 2가 사용되지 않는 이유는 무엇입니까?


102

x86 CPU 권한 링과 관련된 몇 가지 질문 :

  • 대부분의 운영 체제에서 링 1과 2를 사용하지 않는 이유는 무엇입니까? 다른 아키텍처와의 코드 호환성을 유지하기위한 것입니까, 아니면 더 나은 이유가 있습니까?

  • 실제로 이러한 링을 사용하는 운영 체제가 있습니까? 아니면 완전히 사용되지 않았습니까?


답변:


111

애호가 인 운영 체제 작성자로서 저는 페이징 (현대 보호 모델의 주요 부분)이 특권 (링 0,1,2) 및 비 특권이라는 개념 만 가지고 있기 때문에 링 1과 2에 대한 이점이 크게 줄어든다는 것을 발견했습니다.

링 1과 2를 갖는 인텔의 의도는 OS가 장치 드라이버를 해당 수준에 배치하는 것이므로 권한이 부여되지만 나머지 커널 코드와는 다소 분리됩니다.

링 1과 2는 어떤면에서 "대부분"특권이 있습니다. 감독자 페이지에 액세스 할 수 있지만 권한있는 명령을 사용하려고하면 링 3과 같은 GPF가 사용됩니다. 따라서 인텔이 계획 한 드라이버에게는 나쁜 곳이 아닙니다 ...

즉, 일부 디자인에서 확실히 사용됩니다. 사실, 항상 OS에 의해 직접적으로는 아닙니다. 예를 들어, 버추얼 하는 가상 머신은 , 풋은 나 또한 생각해야합니다 일부 운영 체제는 그들의 메이크업의 사용을 링 1에 게스트 커널 코드는, 난 그냥이 순간에 인기있는 디자인입니다 생각하지 않습니다.


28
누가 VirtualBox가 링 1을 사용합니까?! 그것은 순수한 굉장함입니다 !! 정보를 제공해 주셔서 감사합니다. 훌륭한 답변입니다! +1
user541686 2011-07-15

10
OS / 2는 I / O 코드에 링 2를 광범위하게 사용했습니다. 이것이 가상화가 어려운 이유입니다.
kinokijuf

에서 superuser.com/questions/1402537/... : 반지 1 링 0이 많이 포함의 어느 손님의 특권 명령을 실행 할 수 없습니다로 "실행 링 링 1 0 코드는 추가 명령 오류가 많이 발생합니다 각각. 이러한 오류 중 VMM은 원하는 동작을 달성하기 위해 코드를 실행하고 에뮬레이션해야합니다. 이것이 작동하는 동안 이러한 오류 수천 개를 에뮬레이션하는 것은 비용이 많이 들고 가상화 된 게스트의 성능을 크게 저하시킵니다. "
Dustin Oprea

24

OS 디자인의 관점에서 다중 권한 링을 갖는 것은 x86의 이상합니다. 대부분의 다른 CPU에는 두 가지 모드 (감독자 및 사용자) 만 있습니다. 따라서 여러 권한 모드를 요구하도록 OS를 설계하면 즉시 다른 CPU로 이식되는 것을 방지 할 수 있습니다. 또한 많은 최신 가상화 패키지는 0 및 3 이외의 권한 수준을 올바르게 에뮬레이트하지 않으므로 이러한 수준을 사용하는 OS는 테스트하기가 훨씬 더 어렵습니다.


7

링 보안 에 대한 Wikipedia 페이지에 따르면 링 1과 2는 드라이버 (링 1), 게스트 운영 체제 (링 1) 및 I / O 권한 코드 (링 2)에 사용되며 하이퍼 바이저는 -1/0 (에 따라 하이퍼 바이저) 이전에 언급했듯이 1이 아닙니다.

그러나 여분의 두 개의 링은 실제로 도움이되지 않았기 때문에 거의 사용되지 않았습니다. TBH, 링 1과 2를 사용하는 대부분의 코드는 원래 사용 (예 : 하이퍼 바이저)에서 반 용도로 사용되었습니다. 요즘 대부분의 Windows 코드는 커널 영역에 들어오고 나가는 것과 관련된 오버 헤드로 인해 시스템을 두 수준 (커널과 사용자)으로 만 취급하는 것 같습니다.


1
-어딘가 를 놓친 것 같습니다 . 하이퍼 바이저가 링 1을 사용하고 있습니까?
user541686

훗, 생각하지 않았습니다, -1 하이퍼 바이저와 1 게스트 OS를해야하는 빠른 업데이트됩니다
Necrolis

4
Windows는 두 개만있는 다른 프로세서 (현재는 작동하지 않음)에서 실행되도록 설계 되었기 때문에 두 개의 링만 사용합니다.
David

제 생각에는 모드 전환에 약간의 오버 헤드가 있습니다. 내가 이해 한 바에 따르면 하드웨어 만 CPU에 더 많은 권한을 부여 할 수 있습니다 (예 : IO 종료 인터럽트가 발생한 경우). 이 권한 전환이 하드웨어에서 발생하면 링을 전환하는 것이 사소한 일이 아닌 것 같습니다. Windows, Linux 또는 MacOS는 아키텍처가 OS 호스팅 가상화와 같은 것을 위해 중간 링을 예약하기 때문에 가장 극단적 인 두 개의 링만 사용한다고 생각합니다.
Nate Symer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.