2011-01-24 5 views
9

나는 운영 체제 교과서를 살펴보고 "메커니즘 및 정책 분리"개념을 접했습니다. 그게 의미하는 바가 확실하지 않아서 내가 인정해야하는 위키피디아를 확인해 봤지만 많은 도움이되지는 않았다.정책 및 메커니즘

기구의 분리 정책 [1] 전산학의 설계 원칙이다. 그것은에있는 작업에 대해 만들어진 하는 결정에 따라 메커니즘 (작업의 권한 부여 및 자원의 할당을 제어하는 ​​시스템의 그 ​​부분 구현)하지 를 결정 합니 (또는 지나치게 제한)해야한다는 정책을 말한다 권한 부여 및 에 할당 할 리소스

누군가가이 말을 듣고 가능하면 몇 가지 예를 들어 설명해주십시오. separation of mechanism and policy은 운영 체제의 맥락에서 무엇을 의미합니까?

답변

12

이것은 X-Windows 시스템에서의 의미입니다.

X-Windows는 기본 수준에서 '창'이라는 화면 영역을 조작하는 방법을 제공합니다. 또한 창 내부에서 발생하는 이벤트를 수신하는 방법을 제공합니다.

그러나 X-Windows는 제목 표시 줄, 메뉴, 스크롤바 또는 그 어떤 것도 말하지 않습니다. 또한 특정 응용 프로그램이 전체 화면을 차지할 수있는 규칙이나 창을 화면 밖으로 이동해야하는 규칙에 대해서는 아무 것도 말하지 않습니다. 한 응용 프로그램이 다른 응용 프로그램이 최상위 창을 사용하기 전에 다른 응용 프로그램에 권한을 요청하도록하지만, 기본 응용 프로그램의 일부로 그러한 응용 프로그램을 제공하지 못하도록하는 방법을 제공합니다.

X-Windows는 정책이 아니라 모든 메커니즘입니다.

정책은 위젯 툴킷, 창 관리자 및 나중에 시스템에 추가 된 다른 항목에 의해 제공됩니다. 예를 들어, 많은 도구 키트는 스크롤바에 대해 겹치는 하위 창 세트를 사용하고 이러한 하위 창에 대한 마우스 이벤트를 요구하므로 클릭 및 드래그 작업을 감지하고 하위 창을 적절하게 응답 할 수 있습니다.

예를 들어 그놈과 KDE가 동일한 디스플레이에 표시 될 수있는 이유와 패널이나 데스크톱에 대해 전혀 모르는 오래된 X-Windows 프로그램이 현대 시스템에서 제대로 작동하는 이유입니다.

+0

그래, 특히 원래 정책은 명령 줄에서 모든 X 응용 프로그램을 시작할 때 기하 검사를 통과했기 때문입니다. – Joshua

4

* nix 운영 체제와 관련하여 일반적인 생각은 보안 시스템이 커널에 의해 구현되고 권한 시스템이 사용자 공간에 의해 구현된다는 것입니다.

많은 사람들이 조롱하는 모든 루트와 suid 바이너리가 효과적인 분리에 필요합니다. 보안을 그대로 유지하면서 인증 메커니즘을 완전히 바꿀 수 있습니다 (ssh가이를 수행하므로 Windows에서 문서화되지 않은 API가 사용됩니다).

+0

+1 - 또 다른 훌륭한 원리의 예. 유닉스는 실제로 기능 기반 보안을 구현할 수있는 메커니즘을 거의 갖추고있다. Unix 도메인 소켓을 통해 전달되는 파일 기술자 (file descriptor)는 이것의 매우 중요한 특징 중 하나입니다. 그러나 사용자 프로세스조차도 "exec"하고 결과 프로세스에 더 적은 권한이있는 것처럼 더 많은 것을 필요로합니다. – Omnifarious

+0

@Omnifarious : 실제로 마지막 하나는 쉽습니다. fork()와 exec() 사이의 권한을 삭제하십시오. 그러나 Vista의 샌드 박스에는 해당하지 않습니다. – Joshua

+0

그러나 사용자 프로세스 인 경우 어떻게 권한을 삭제합니까? 예를 들어 'nobody'권한과 소켓을 만들 권한이 없습니다. 그리고 Vista의 샌드 박싱은 파일 설명자 전달을 통해 구현 될 수 있습니다. – Omnifarious