Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
  Windows Internals 다시보기 16 
작성일시 : 2010. 3. 11. 00:53 | 분류 : Windows Server/Kernel

* 아직은 많이 부족하기 때문에 제가 자신이 생길 때 까지 본 글은 제 블로그에 대한 링크만 허용합니다.

드디어 돌고 돌아 커널에 대한 설명을 시작합니다. 아직도 절반을 못 왔군요…ㅜㅜ

Privilege Level

윈도상에서 동작하는 모든 실행 코드들은 Privilege Level 을 할당 받습니다. 이 Privilege Level 이란 컴퓨터의 안정성을 위하여 임의로 설계 해 놓은 권한으로써 0레벨이 가장 높은 권한에 해당합니다. 실제로 CPU가 메모리를 참조하는 단위인 세그먼트에는 이 권한을 명시해 놓은 DPL flag가 있습니다.

그래서 어떤 메모리를 참조하게 되면 우선은 DPL을 검사한 다음 PDE 및 PTE의 User/Supervisor bit를 검사하게 됩니다.
하지만 윈도우즈의 경우 가상 메모리 상에서 커널레벨과 유저레벨이 분리가 되어 있어 DPL 검사는 생략하고 PDE와 PTE의 User/Supervisor bit 검사를 통해 해당 메모리의 접근 가능 유무를 판단하게 됩니다.

image

앞에서 설명한 것과 같이 0 레벨은 가장 권한이 높습니다. 이는 가장 신뢰를 할 수 있다는 의미로써, OS Kernel의 실행 영역이며, 레벨 3은 가장 신뢰가 낮은 영역으로 이 영역에서 동작하는 Application의 문제로 인한 영향의 정도를 줄일 수 있습니다.

이와 같은 신뢰성 확보를 위해 3레벨에서는 실행 가능한 명령어를 제한 하고 있습니다.
이렇게 커널에서만 실행 되는 명령어는 시스템과 관련된 명령어들 (예 : 인터럽트 처리 / cli, sti , IO 처리 / in, out ) 등이 있으며, 이를 통해 우리는 커널의 가장 중요한 역활은 인터럽트 처리라는 것을 확인 할 수 있습니다.

|