반응형


1. 커널 모드와 유저 모드

-메모리 영역은 사용자에 의해서 할당되는 메모리 공간인 유저 영역과 운영체제라는 하나의 소프트웨어를 실행시키기 위해서 필요한 메모리 공간인 커널 영역으로 나뉜다.

-사용자가 사용하는 메모리 영역은 유저 영역이지만 C언어는 메모리 참조가 용이하기 때문에 안정성 제공 측면에서 커널 모드와 유저 모드가 사용된다.

-기본적으로 유저 모드로 동작하다가 Windows 커널이 실행되어야 하는 경우에 커널 모드로의 전환이 일어난다.

-커널 모드와 유저 모드의 차이는 유저 모드에서 동작할 때 커널 영역으로의 접근이 금지된다. 커널 모드일 때는 모든 영역의 접근이 허용된다.

-Windows 에서 운영체제 차원에서 제공되는 시스템 함수들 중 일부는 호출시 커널 모드로 동작한다.

-주의할 점은 모드의 전환은 시스템에 부담을 준다.

-커널 모드와 유저 모드를 제공하는 대상은 Windows운영체제가 아닌 프로세서(Process)이다. 즉 메모리 보호 기능이 CPU에 달려있다.


http://blog.naver.com/cmw1728/220475950348


리눅스 시스템콜

리눅스는 유저 모드와 커널 모드 두개의 실행영역을 가진다. 유저 모드는 일반 응용 프로그램이 실행되는 영역이고, 커널 모드는 커널(:12) 명령이 실행되는 영역이다. 하드웨어에 대한 모든 제어는 커널 모드에서 이루어진다. 두개의 모드로 나눈 이유는 다중 사용자 / 다중 프로세스 운영체제에서 자원에 대한 관리와 보안 을 위함이다.

응용 프로그램은 커널 모드에 진입을 할 수 없으므로 하드웨어에 대한 접근을 할 수 없다. 이는 메모리 할당, 파일 읽기/쓰기와 같은 주요한 작업을 할 수 없음을 의미한다. 하지만 이래서는 제대로 된 응용 프로그램을 만들 수 없 을 것이다.

리눅스 커널은 "간접 접근 방식"으로 이 문제를 해결 한다. 직접 하드웨어에 접근하는 대신 커널에게 자원의 사용을 요청을 하고, 커널이 자원의 사용을 허락하는 방식이다.

이때 커널이 응용 프로그램에 제공하는 함수가 시스템콜이다.


http://www.joinc.co.kr/w/man/12/%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%BD%9C







커널모드란??


커널모드를 검색하다가 이해가 안되던 도중 pdf 파일을 하나 발견하고 내용이 쉽게 이해되 바로 설명하며 포스팅을 써보았습니다.


일단 커널모드란?


리눅스 커널은 프로그램을 실행할 때 크게 두 가지의 모드에서 실행을 한다. 커널 모드 (kernel mode)와 사용자 모드(user mode)가 그것인데, 이 두 모드에 대해서 간단히 설명 을 하자면 커널 모드에서의 프로그램들은 직접적인 하드웨어 요청이나 중요한 시스템 요 청을 할 때 사용되는 모드이다. 일반적으로 사용자가 직접적으로 하드웨어 장치를 사용한 다면 큰 문제가 발생할 수도 있는 데 이것을 방지하기 위해서 커널 모드로 프로그램이 실 행되면서 하드웨어 제어를 커널에서만 할 수 있도록 한 것이다. 원래 사용자가 어느 한 프로그램을 실행하면 사용자 모드에서 실행이 되다가 그 프로그 램이 하드웨어 장치를 사용해야 할 경우 사용자 모드에서 실행되고 있던 프로그램이 커널 모드로 제어권이 넘어가서 하드웨어 장치를 사용하게 된다. 하드웨어 장치를 다 사용하게 되면 다시 프로그램은 사용자 모드로 다시 제어권이 넘어가서 나머지 프로그램을 실행하 게 된다.


설명이 쉽게 나와있는데 이걸로 이해가 안된다면

아래를 보자

*혼자 이해한거라 틀릴 수도 있어요.


1.일반 사용자가 프로그램을 사용한다.



2.일반 사용자는 하드웨어를 직접 제어하게되면 문제가 발생할수 있기에 커널 모드로 프로그램이 실행되면서 하드웨어 제어를 커널에서만 할 수 있도록 하였다.



3.프로그램이 하드웨어 사용이 다 끝나면 다시 그 프로그램은 사용자 모드로 제어권이 넘어가게 된다.


대충 이해 됬으면 개념도를 보도록 하자




이해가 다 되었어도 개념도를 보니 다시 멍해지는 기분이다...

천천히 한번 보도록하자

자료사진과 보고 참고한 곳은 : http://www.scitech.co.kr/upload/book_image/s_402/ESDP-Ch06.PDF

이걸로 많이 참고했습니다.


포스팅은 여기까지.

http://blog.naver.com/stillstick/220463132509



반응형

+ Recent posts