Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- linux
- #
- command
- KASAN
- vim
- BEST of the BEST
- 인터럽트
- C++11
- Overwatch League SaberMetrics
- vi 외부 명령어
- libpcap
- Network
- Find
- FTZ 레벨2
- Sqix
- #Best of the Best #OS #MINT64 #Sqix
- vi
- #MINT64 #Sqix
- >
- ftz
- #IntelManual #segment Descriptor #세그먼트 디스크립터 #MINT64 #Sqix
- 오버워치 세이버메트릭스
- 오버워치
- #IntelManual
- #Qt Creator
- libtins
Archives
- Today
- Total
목록#MINT64 #Sqix (1)
Sqix
64bit 멀티코어 OS 제작하기 [5] - 3 : 보호 모드의 커널 이미지를 작성하자
이제 우리는 보호 모드에서 사용할 코드를 작성해야 합니다. 16비트의 레지스터를 32비트로 변경해 주고, 스택 크기 역시 4바이트로 크기가 증가하였기 때문에 파라미터들에 대한 오프셋 역시 +4n으로, 즉 4의 배수로 늘려주어야 합니다. 이전에 플래그 부분에서 언급했던 내용이기도 하지만, 32비트 오프셋을 이용하기 때문에 우리는 4GB의 메모리 영역에 마음껏 접근할 수 있기 때문에, 비디오 메모리를 접근할 때 굳이 ES 레지스터를 사용할 필요가 없기도 합니다. 지금까지 우리가 한 과정을 Linux Boot Protocol을 기준삼아서 정리해 보겠습니다. 부트 로더를 이용해서 코드 영역, 데이터 영역, 스택 영역을 설정 및 초기화해 주고, 16비트 커널 이미지를 로드하여 주었습니다. 이제 우리가 할 일은 3..
MINT64 OS
2018. 6. 5. 01:26