"만들면서 배우는 OS 커널의 구조와 원리/김범준 저" 책이 집에 있어서 보고 있는데
  
  오늘 공부하면서 아리송했던 내용들이 이해하기 쉽게 써져있네요.

  참고하시면 좋을듯합니다.

  간략하게 정리하자면...
  1. Real Mode와 Protected Mode
  - Real Mode란 컴퓨터에 전원이 들어온 후 CPU가 처음 움직이기 시작하면서 활동하는 모드이다. 예전의 MS-DOS의 시스템같은... 현재는 거의 사용하지 않고있음.
  - 그런데 Real Mode를 아직까지 사용하고 있는 이유는 예전에 사용되던 8086 CPU용의 DOS 프로그램을 현재에도 사용할 수 있도록 하는 호환성 문제 때문이다. 486을 사용하든지 Pentium을 사용하든지 Real Mode로 동작하고 있을때에는 CPU가 모두 하드웨어적으로 8086이 되어 있다고 생가하고 프로그램을 작성해야 한다.
- 따라서 모든 커널은 컴퓨터의 전원이 들어온 후 리얼모드에서 여러가지 하드웨어적인 세팅을 마친후 Protected Mode로 CPU를 전환한다.

  2. 세그먼트와 오프셋
  - 일반적으로 0x07C00번지는 0x07C0:0000, 0x0000:7C00, 0x0700:0C00 등 많은 방법으로 표현할 수 있습니다. 여기서 0x07C00번지를 물리주소라고 부르고, 0x07C0:0000등을 논리주소라도 합니다.
  - 변환시킬때에는 세그먼트에 있는 값에 16을 곱하여 오프셋을 더한다.
    예) 0x07C0:000 이라하면..
         0X7C00 + 0x000 = 0x7C00 = 0x07C00
  - 위에서 설명한 것은 Real Mode에서의 주소지정방식입니다.
  - 즉, 우리가 웹페이지로 봐왔던 부분은 인텔 CPU가 Real Mode에서 주소를 지정하는 방식에 대해서 확인을 한것이고, Protected Mode에서는 리눅스는 리눅스 나름대로 윈도우는 윈도우 나름대로의 주소지정 방식을 사용한다는 내용인것 같네요.

  3. GDT (Global Descriptor Table)
  - Protected Mode에서 주소지정을 하기 위해서는 Real Mode -> Protected Mode로 전환하기 전에 미리 하나의 테이블(GDT)을 준비해야 합니다. 이 테이블은 어떤 형식이 있는 데이터의 나열이고, RAM영역 중 어디든지 기입해 놓을 수 있습니다.
    이렇게 기입해 놓은 테이블은 Protected Mode로 변환 후 컴퓨터의 전원이 내려질때까지 그 자리에 있어야 합니다.
    이 테이블에는 각 세그먼트 영역에 대해 이것들을 어떻게 사용할 것인지에 대해 설명해 놓습니다. 이것은 "커널이 이제부터 메모리를 어떻게 사용하겠다"라고 하는 설계서와 흡사한 것입니다.

4. IDT (Interrupt Descriptor Table)
   - Protected Mode에서 인터럽트를 구현하기 위해서는 테이블이 하나 필요한데 이 테이블이 IDT라고 합니다.
   - IDT도 GDT와 마찬가지로 RAM상에 저장되며, 메모리 중 어느 곳에라도 저장이 가능합니다. 이 테이블은 256개의 GDT의 디스크립터와 비슷하게 생긴 디스크립터로 구성되어 있습니다.
   - GDT의 디스크립터는 메모리의 세그먼트 영역을 포함하고 있었지만, IDT는 해당 인터럽트가 발생하였을 때 어느 루틴을 실행시켜야 하는지에 대한 정보를 담고있습니다.

  이상 4부분에 대해서 아리송했던 점을 책에서 발췌해서 정리해봤습니다.
  좋은 참고가 되셨으면...
번호 제목 글쓴이 날짜 조회 수
공지 [공지] 커널 스터디 관련 Q&A 게시판 입니다. [5] woos 2016.04.09 2197
1745 x86 interrupt & instruction table file 백창우 2007.02.23 9190
1744 x86 linux booting 과정 file 백창우 2007.02.23 12734
1743 아키텍쳐에 관련된 내용입니다. [6] file 원민수 2007.02.25 7234
1742 논의사항 [7] 백창우 2007.02.26 4657
1741 Power architecture roadmap이라네요. [17] 정필섭 2007.02.26 4817
1740 첫째날에 공부한 내용 정리한번 해보는게 어떨까요?? 여러분의 의견을 묻습니다. [8] file 김정수 2007.02.26 7255
1739 [re] 제본 신청 하실분 댓글 달아 주세요. [17] 정필섭 2007.02.28 4870
1738 Power ISA 2.03 외 기타 문서. [6] 김형진 2007.02.28 5294
1737 [수정] 스터디 문서 분량을 나누겠습니다. [3] 정필섭 2007.03.02 5190
1736 제송.... 제가 이번에 스터디 그룹에 참여하는데 아직 공부할 부분을 할당받지 못했는데요... [2] 강형석 2007.03.02 5261
1735 power architecture의 역사와 미래 [2] file 백창우 2007.03.03 5179
1734 3월 3일 LKSAS 두번째 모임 즐거웠습니다. [7] file 김정수 2007.03.04 5046
1733 x86 아키텍쳐에 관한 동영상 강좌 링크입니다. [6] 남현우 2007.03.04 4413
1732 EM64T_Guide [2] file 이종우 2007.03.04 3502
» "만들면서 배우는 OS 커널의 구조와 원리/김범준 저"에 오늘 공부했던 내용에 대해 쉽게 적혀있네요. [4] 김정수 2007.03.04 5380
1730 메신저 주소 공유합시다!! [8] 김정수 2007.03.04 3672
1729 [질문] POSIX 표준 함수들의 소스 [4] 김강년 2007.03.05 5602
1728 분담2 MOVLHPS ~ MOVUPD 까지입니다 선준규 2007.03.06 4851
1727 asm 강좌 문서 file 맥주 2007.03.06 4147
1726 lilo 공부하실때 참고 할만한 자료 입니다. [5] 강형석 2007.03.07 3034
XE Login