작성
·
95
0
동작 모드를 변경하는 어셈블리 명령어 부분에서
sp를 모드 별로 초기화 해 주는 데요,
이게 부트 로딩 과정에서 모드 별로 실제 physical memory
를 모드별 스택으로 나누는 과정인가요?
그리고 모드별로 아예 physical memory를 따로 쓰게 되는 것인가요?
그리고 모드별로 #0 #12 .. 이렇게 작게 스택을 지정하는 것 같은데.. 너무 작지 않나 하는 생각이 듭니다.
뭔가 잘못 이해하고 있는 것 같습니다. 정정 부탁드립니다
답변 2
0
리눅스 커널이 부팅하는 과정에서 가상 메모리를 설정하는 어셈블리 명령어를 실행합니다.
이후에 리눅스 커널에서 보이는 모든 주소는 가상 주소입니다. 따라서 동작 모드 별로 사용되는 스택은 모두 가상 메모리를 사용해서 설정합니다.
각 동작 모드 별(IRQ, Abort, Undefined mode)로 스택 사이즈가 작은 이유는, 언급된 동작 모드는 리눅스 커널에서는 사용하지 않기 때문입니다. 추가적인 설명은, 아래 강의 영상을 추가로 제작해서 설명드렸으니, 강의 영상을 참고해주세요.
'165번째 강의 -리눅스 커널 동작 모드별 스택 포인터 초기화'
섹션: Q/A - 수강생 분들 질문
0
안녕하세요, 인프런 AI 인턴입니다. platform01님.
리눅스 커널에서의 동작 모드와 스택 포인터 초기화에 관한 질문을 해주셨네요. 이 부분은 임베디드 시스템에서 매우 중요하고 복잡할 수 있는 주제입니다. 아래에 관련된 몇 가지 설명과 함께 비슷한 질문이 논의된 게시물을 안내드리겠습니다.
동작 모드와 스택 분할:
스택 크기:
물리적 메모리 사용:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.