Windows에서 사용자 모드와 커널 모드 란 무엇입니까?

"커널" 또는 "사용자" 모드에서 실행되는 애플리케이션에 대해 들어본 적이 있을 것입니다. 운영 체제가 작업을 수행할 때 작동하는 방식에 따라 다릅니다. 이것을 이해하면 사용자 모드와 커널 모드의 차이점을 쉽게 파악할 수 있습니다.

운영 체제의 기능 이해(Does)

컴퓨터는 하드웨어, 전자 부품 및 소프트웨어로 구성되며 해당 하드웨어에 의해 실행되는 컴퓨터 코드입니다. 그러나 덜 명확할 수 있는 것은 이들이 함께 일하는 방식입니다.

컴퓨터의 가장 필수적인 요소는 비트 또는 "2진수"입니다. "(” Everything) 컴퓨터가 하는 모든 일은 1과 0으로 표현됩니다. 다른(Different) 컴퓨터 구성 요소는 다른 방식으로 비트를 나타냅니다. CPU 에서 미세한 트랜지스터는 켜짐 또는 꺼짐으로 1과 0을 나타냅니다. 이러한 트랜지스터는 논리 게이트라고 하는 논리 구조로 배열됩니다.

전자 컴퓨터 메모리에서 비트는 특정 임계값보다 높거나 낮은 전하를 갖는 메모리 셀로 표시됩니다. 기계식 하드 드라이브에서 비트는 회전하는 플래터에서 측정된 자기 변동으로 표시됩니다. 광 디스크에서 레이저 광을 반사하거나 반사하지 않는 피트와 랜드는 동일한 역할을 합니다. 

이진 코드의 물리적 표현 방법에 관계없이 결국 모든 소비자 컴퓨터 구성 요소를 이 원시 기계 코드로 줄일 수 있습니다.

그렇다면 컴퓨터의 인간 친화적인 인터페이스에서 컴퓨터 자체의 원시 저수준 프로세스로 어떻게 이동합니까? 그것이 운영 체제가 들어오는 곳입니다. 컴퓨터의 하드웨어를 직접 제어합니다. 

이 소프트웨어는 응용 프로그램(따라서 사용자)이 원하는 모든 것을 CPU 및 기타 구성 요소가 이해할 수 있는 기계어 코드 명령으로 변환합니다. 이 과정에서 가장 중요한 소프트웨어는 커널입니다.

커널이란 무엇입니까?

커널은 이름에서 알 수 있듯이 운영 체제의 핵심입니다. 커널은 RAM 에 상주 하고 컴퓨터가 하는 모든 일을 지시하는 소프트웨어입니다. 무언가가 메모리에 기록될 때 실행을 지시하는 것은 커널입니다.

커널은 GPU(GPUs) 및 네트워크 카드 와 같은 하드웨어와 인터페이스하는 방법을 알고 있지만 컴퓨터 산업의 일반 표준에 의존하여 최대한으로 작동하는 방법을 모를 수 있습니다.

여기서 하드웨어 드라이버가 작동합니다. 드라이버는 운영 체제에 특정 구성 요소로 작업하는 방법을 알려주므로 예를 들어 NvidiaAMD GPU(AMD GPUs) 에 대해 다른 드라이버가 필요합니다.

올바른 드라이버가 장착된 커널은 데이터를 치명적으로 파괴할 수 있는 작업을 포함하여 컴퓨터 내에서 궁극적인 권한입니다.

API(APIs) ( 응용 프로그래밍 인터페이스(Application Programming Interfaces) ) 의 역할(Role)

MS-DOS 시대에 소프트웨어 개발자는 사용자의 하드웨어를 위해 특별히 소프트웨어를 작성해야 했습니다. MS-DOS 시스템 에서 이것의 가장 악명 높은 예 는 사운드 카드 드라이버였습니다.

주어진 비디오 게임은 가장 인기 있는 카드( Sound Blaster , Ad-lib , Gravis Ultrasound 등)를 지원해야 하며 대부분의 플레이어가 지원되기를 바랍니다. 오늘날 API(APIs) 덕분에 상황이 매우 다르게 작동합니다 .

Microsoft DirectX 가 좋은 예입니다. 자세한 설명이 필요하면 DirectX란 무엇이며 왜 중요한가요? 를 확인하세요. (What Is DirectX and Why Is It Important?)그러나 알아야 할 가장 중요한 점은 API 가 소프트웨어 개발자가 (API)GPU 와 같은 구성 요소에서 하드웨어 리소스를 요청할 수 있는 표준 방법을 제공 한다는 것 입니다. 또한 하드웨어 제조업체는 해당 제품이 DirectX 를 준수하여 유사하게 호환되는 소프트웨어와의 완전한 호환성을 보장해야 합니다.

API(APIs) 는 소프트웨어 응용 프로그램과 하드웨어 드라이버가 있는 저수준 커널 간의 변환 계층을 제공합니다. 예, 약간의 성능 저하가 있습니다. 그래도 최신 컴퓨터에서는 무시할 수 있는 수준이며 다양한 이점이 있어 결국 사용자 모드와 커널 모드에 도달하게 됩니다.

사용자 모드 대 커널 모드

최신 운영 체제는 수백 또는 수천 개의 "프로세스"를 동시에 실행 하여 우선 순위 및 계산 능력 요구 사항에 따라 필요에 따라 CPU 시간을 동적으로 제공합니다.(CPU)

애플리케이션을 시작하면 프로세스가 생성되고 CPU 는 사용자 모드나 커널 모드에서 프로세스를 실행할 수 있습니다.

사용자 모드에서 실행 되는 Windows 프로세스는 자체 개인 가상 메모리 주소 공간과 핸들 테이블에만 액세스할 수 있습니다. 소프트웨어는 이러한 테이블을 사용하여 데이터를 RAM 에 저장 하고 리소스를 요청합니다. 메모리 또는 기타 하드웨어에 직접 액세스할 수 없으며 이러한 가상 공간을 컴퓨터의 실제 하드웨어에 매핑하는 것은 운영 체제에 달려 있습니다.

이는 여러 가지 이유로 유용하지만 가장 중요한 이점은 응용 프로그램이 가상 메모리 주소 공간 외부의 데이터를 덮어쓰거나 변경할 수 없다는 것입니다. 또한 특정 기능은 사용자 모드 프로세스에서 사용할 수 없습니다. 주로 시스템을 충돌시키거나 데이터를 파괴할 수 있는 기능입니다.

프로세스가 시작되거나 커널 모드로 승격되면 운영 체제용으로 예약된 경우에도 시스템 리소스에 대한 전체 액세스 권한을 갖습니다. 따라서 이론적으로 운영 체제가 제대로 실행되는 데 필요한 중요한 데이터를 덮어쓸 수 있습니다.

트랩 및 예외

이 두 가지 모드는 CPU(CPU) 자체 에 의해 하드웨어 수준에서 시행된다는 것을 이해하는 것이 중요 합니다. 사용자 모드에서 실행 중인 응용 프로그램이 커널 모드 액세스가 필요한 작업을 수행하려고 하면 "트랩" 또는 "예외"가 생성됩니다. 그런 다음 운영 체제는 일반적으로 애플리케이션을 종료하고 충돌 로그를 생성하여 애플리케이션을 처리하므로 개발자가 문제가 잘못되었을 때 메모리에서 어떤 일이 발생했는지 확인할 수 있습니다.

커널 모드(Kernel Mode)위험(Dangers) : 죽음 의 블루 (Blue Screen)스크린(Death)

컴퓨터를 강제로 끄거나 다시 시작해야 하는 죽음 의 (Death)블루 스크린(Blue Screen) 을 경험한 적이 있다면 커널 모드 프로세스가 원인일 가능성이 높습니다.

커널 모드의 프로세스가 해서는 안 되는 일을 하면 운영 체제가 복구할 수 없고 전체 컴퓨터가 중지됩니다. 사용자 모드 프로세스가 엉망이 되면 응용 프로그램만 충돌하고 나머지 소프트웨어와 운영 체제는 문제 없이 계속될 수 있습니다.

이것은 커널 모드 권한을 요청 하는 API 이기 때문에 (API)API(APIs) 가 필수적인 역할을 하는 영역 중 하나입니다. 사용자 모드 응용 프로그램은 기본적으로 필요한 커널 모드 권한이 있는 요청을 API 에 위임합니다 .

이것이 커널 모드가 일반적으로 컴퓨터의 하드웨어에 직접 액세스해야 하는 저수준 시스템 프로세스에만 부여되는 이유입니다. 일반적으로 이 권한은 사용자 모드가 제공할 수 있는 것보다 더 많은 성능이 필요하기 때문에 프로세스로 확장됩니다. 일부 CPU 명령어는 커널 모드에서만 작동하므로 프로세스가 해당 기능을 사용해야 하는 경우 상승해야 합니다.

죽음 의 (Death)블루 스크린(Blue Screen) 에 문제가 있는 경우 Windows 10용 죽음의 블루 스크린 문제 해결 가이드(Blue Screen of Death Troubleshooting Guide for Windows 10) 를 읽으십시오 !



About the author

저는 10년 이상의 경험을 가진 전문 오디오 및 키보드 기술자입니다. 저는 기업 세계에서 컨설턴트 및 제품 관리자로 일했으며 가장 최근에는 소프트웨어 엔지니어로 일했습니다. 저의 기술과 경험을 통해 중소기업에서 대기업에 이르기까지 다양한 유형의 프로젝트를 수행할 수 있습니다. 저는 또한 Windows 11의 전문가이며 현재 2년 이상 새 운영 체제에서 작업하고 있습니다.



Related posts