1. 윈도우 부팅 과정
위 그림은 윈도우 부팅과정을 순차적으로 나타낸 그림이다.
참고로, 부팅 과정에서는 어느것 하나도 빼먹으면 올바르게 부팅이 되지 않음
이 과정을 진행하면 GINA(Graphic Identification and Authentication) 즉, 윈도우 로그인 화면 까지 진행된다.
2. 유저모드와 커널모드
윈도우는 왜 유저모드와 커널모드를 나누어 두었을까.
일단 운영체제의 가장 큰 목적은, 각각의 사용자가 다른 제조사의 하드웨어를 사용하지만 동일한 동작을 하도록 공통된 환경을 제공하는 것이다. 이 작업을 사용자가 굳이 따로 제어해주지 않아도 사용자가 요구하는 자원을 커널 단에서 알아서 분배와 관리를 해준다.
또한 다양한 개발 환경에서 만들어진 응용 프로그램들을 유저모드에서 커널모드로 연결되는 통일된 인터페이스
(NTDLL.dll과 같은 서브시스템)를 제공하여 커널 모드에서 응용프로그램의 요청을 정확히 이해할 수 있도록 만든 것이라 보면 된다.
다시 말해, 운영체제의 목적인 확장성, 이식성, 안정성, 호환성을 만족하면서 성능 저하도 없도록 설계한 것이 커널과 유저모드이다.
그럼 또 그림, 그림을 보자. 이해력이 딸리는 우리같은 돌머리들은 무조건 그림을 봐야한다.
유저모드와 커널모드가 나뉘어져 있고 거기에 Ring0 과 Ring3이 보일거다.
이건 인텔 프로세서의 특권 레벨이다. 0~3까지 사용되고, 0은 최고 권한인 커널 모드, 3은 유저모드 이다.
커널모드에서는 시스템 자원을 통제없이 마음대로 사용가능하다.
반대로 유저모드에서는 Ring3을 주어 하드웨어에 지맘대로 접근 못하게 만들었다.
유저모드는 총 4가지의 서브시스템을 제공하고 ( 시스템 서비스, 서비스, 어플리케이션, 환경 서브시스템 )
얘네들이 개발된 응용 프로그램들이 커널과 소통할 수 있도록 해준다.
이렇게 커널과 유저모드는 메모리 영역을 나누어 통제하게 된다
출처 : 리버싱 윈도우 - 로드북
'IT 그리고 정보보안 > Knowledge base' 카테고리의 다른 글
윈도우 서브시스템 (0) | 2021.04.13 |
---|---|
윈도우 커널 생성 (Ntos****.exe) (0) | 2021.04.13 |
MintOS 32-bit 보호모드 전환 (0) | 2021.04.12 |
MintOS 부트 로더 제작 (0) | 2021.04.12 |
MintOS 부팅 과정 (0) | 2021.04.12 |