안녕하세요.
리버싱을 공부하다가 운영체제나 컴퓨터구조에 조금만 깊게 들어가면 헷갈려서 질문 드립니다.
1. 커널이 메모리, 프로세스, 입출력을 관리할때에 본질적으로는 CPU가 커널의 특정명령어(메모리를 할당하라, 이제 다른 프로세스로 넘어가서 작업하라 등등)를 실행함으로써 추상적으로 커널이 관리한다! 라고 정의내린건가요?
2. 운영체제의 커널 또한 하나의 소프트웨어이지요. 헌데, 어떻게 이 소프트웨어가 CPU를 제어하여 메모리를 관리하고, 프로세스를 관리하고, 입출력을 관리할 수 있게 되는거지요?? (커널 내 코드의 예시를 들어주시면 더 감사합니다!)
3. 가상메모리를 공부하면서 커널영역에 대해 듣게되었습니다. 32비트 기준으로 각 프로세스마다 4GB의 메모리가 할당이 되고, 그 중 2GB가 커널영역으로 할당이 된다고 알고 있습니다. 그럼 실제 메모리에 로딩되어있는 커널 프로세스는, 커널 프로그램 전체가 로딩이 되어있는 상태이고 가상메모리에 있는 부분은 전체 커널 프로세스 중 일부분만 저장되어있는건가요?
알려주십쇼,,