size가 커져버린 kernel을 위해 GDT phase1에서 허가하는 size
글쓴이: kodol / 작성시간: 목, 2003/07/03 - 5:36오후
안녕하세요
소프트웨어를 kernel mode에서만 동작하도록 코딩하다보니
size가 커져버려서 7Mbyte를 넘어버리더니 bootstrap code를 수행하는 도중에 reset이 되어버리는데요..
kernel 책에는 GDT setup routine의 첫번째 phase에서
허가하는 영역이 0x100000 - 0x800000 인걸로 나왔는데요..
혹시 이 영역을 더 늘릴 수 있는 방법이 없나요?
아시고 계시는 분은 좀 가르쳐주시면 감사하겠습니다
Forums:
Re: size가 커져버린 kernel을 위해 GDT phase1에서 허가하는 si
사용하시는 기종이 x86이라면, 그런 제한은 없습니다. 부트스트랩 루틴의 버그 같군요.
x86 맞고요이런 제한이 있는 건 맞습니다Provisional
x86 맞고요
이런 제한이 있는 건 맞습니다
Provisional kernel Page Table을 초기화시 linear address, physical address 8Mbyte 영역에 대해서 initialize한다고 Linux kernel
책(by Daniel P. Bovet & Marco Cesati)에 나오더군요..
그리고 실제로 bootstrap과 상관없이 전체 size가 8Mbyte를 넘어가느냐 마느냐에 따라서 죽고살고 있습니다
[quote="kodol"]x86 맞고요이런 제한이 있는 건 맞습
그 제한은 부트스트랩 루틴에서 임의로 설정해 놓은 것이고, x86 구조 자체에는 8MB와 연관된 어떠한 제한도 존재하지 않습니다. 가령 책 1판에는 그 숫자가 4MB로 나옵니다. 4MB였다가 어느 순간 8MB로 점프했으니 다시 12MB로 점프하지 말란 법이 없겠지요. 다른 운영 체제에서는 커널을 0x100000-0x800000 영역이 아닌 부분에 로드하기도 하므로 꼭 그 부분만을 써야 한다는 제한도 물론 없습니다.
그렇다면 그 임의로 설정해놓은 값을 바꾸려면 어떻게 하지요?부트스트랩
그렇다면 그 임의로 설정해놓은 값을 바꾸려면 어떻게 하지요?
부트스트랩 코드를 들여다봤는데 마땅히 쎄팅해놓을만한데가 보이지 않는데요..
혹시 아신다면 말씀해주시겠어요?
댓글 달기