int XX 명령이 실행되면 cpu는 메모리에 있는 인트럽트 벡터 테이블 참조해서 인터럽트 핸들부를 처리하는건가???
댓글 19
못해.. 운영체제의 커널을 통해야하지.. 커널이 보호모드를 만들어주고 보호모드위의, 즉 커널을 통하는 프로그램들은 커널을 통해야 바이오스든 하드웨어든 접근가능
익명(218.52)2015-05-02 17:56
리얼모드에선 프로그램은 하나밖에 실행을 못해 커널이 최소한의(OS기능을 다할) 프로그램이 되서 그걸 컴퓨터에 로드하면 나머지는 그 커널 프로그램이 이것저것 그 프로그램 안에서 멀티태스킹 하는것 당연히 그 작업들은 중간계층인 커널을 통해야하는 프로그램 아닌 프로그램이니깐 직접적인 제어가 불가능하지 물론 컴퓨터도 소프트웨어도 발전했고 커널 바이패스도 가능함
익명(218.52)2015-05-02 18:00
하지만 커널 바이패스에는 한계가 있다고 알고 또 그 부분부턴 나도 잘 몰러
익명(218.52)2015-05-02 18:01
dosbox로도 불가능하냐? 책에 "보호모드로 동작하더라도 가상 86 모드의 태스크를 생성하여 그것을 통하여 모든 입출력을 수행하는 방법을 사용" 하면 롬 바이오스 인터럽트를 이용할 수 있다고 나와있는데
수크라제(inviolable)2015-05-02 18:01
그렇군 답변 고마워
수크라제(inviolable)2015-05-02 18:03
도스박스는 에뮬레이터로 도스를 "보호 모드" 위에서 "소프트웨어"로 구현한거야 동작은 네이티브 도스 처럼 돌아갈지 몰라도 내부적으로는 에뮬레이션일 뿐임 인터럽트도 당연히 소프트웨어로 구현되는거지
익명(218.52)2015-05-02 18:03
커널 바이패스도 아닌걸로 알어
익명(218.52)2015-05-02 18:04
아 그렇군
수크라제(inviolable)2015-05-02 18:05
인터럽트를 소프트웨어로 구성할 수 있는건 어떻게든 인터럽트를 걸 수 있는 방법이 있다는거네? 프로그래밍 적으로??
수크라제(inviolable)2015-05-02 18:06
그리고 가상 86모드의 태스크라는게 뭘까....ㅠㅠ
수크라제(inviolable)2015-05-02 18:06
가상 8086 모드가 정확한 말이고 그냥 그것의 작업을 할수있다는걸 번역본이지? 그걸 병신같이 번역해놓은거
익명(218.52)2015-05-02 18:10
그리고 인터럽트가 소프트웨어로 구현 ㅡ> 인터럽트가 아닌데 인터럽트인거 처럼 속임
익명(218.52)2015-05-02 18:10
정확힌 거기서의 인터럽트가 에뮬레이터 안에서의 조작일 뿐임
익명(218.52)2015-05-02 18:10
os를 직접 만드신 분의 책인데 지금은 절판된 "고급 개발자들만이 알고 있던 OS 제작의 원리 그리고 Codes"라는 책이거든 거기 26페이지에 -> 32비트 보호 모드라는 의미는 롬 바이오스 인터럽트를 이용하지 않는다는 것으로 사용되었다. 롬 바이오스를 이용하려면 리얼 모드에서 동작하거나 보호 모드로 동작하더라도 가상 86 모드의 태스크를 생성하여 그것을 통하여 모든 입출력을 수행하는 방법을 써야하는데, 내가 관심을 가지고 있는 부분은 PC용 운영체제이고 도스가 사라져버린 지금 다시 16비트 운영체제를 개발할 이유는 없다고 생각한다. 그래서 의도적으로 롬 바이오스 인터럽트 서비스는 사용하지 않는 것으로 했다. 다만 커널이 부팅될 때 부트 이미지를 읽는 부분과 GUI 화면 모드 전환을 위해 롬 바이오스
수크라제(inviolable)2015-05-02 18:15
서비스를 이용할 뿐이다
수크라제(inviolable)2015-05-02 18:15
라고 나와있어
수크라제(inviolable)2015-05-02 18:15
그 책은 Windows 구조와 원리(정덕영 저)의 옛날 판본이네. Virtual 8086 Mode(가상 8086 모드)가 맞아. 가상 86이라는 건 없음.
ㅅㅅㅅ(125.128)2015-05-02 19:31
그리고 32비트 보호 모드에서는 인터럽트 벡터 테이블(물리 주소 0)을 쓰지 않음. IDTR 레지스터에 의해 지시되는 Interrupt Descriptor Table(IDT)에 인터럽트 핸들러 주소를 보관한다.
못해.. 운영체제의 커널을 통해야하지.. 커널이 보호모드를 만들어주고 보호모드위의, 즉 커널을 통하는 프로그램들은 커널을 통해야 바이오스든 하드웨어든 접근가능
리얼모드에선 프로그램은 하나밖에 실행을 못해 커널이 최소한의(OS기능을 다할) 프로그램이 되서 그걸 컴퓨터에 로드하면 나머지는 그 커널 프로그램이 이것저것 그 프로그램 안에서 멀티태스킹 하는것 당연히 그 작업들은 중간계층인 커널을 통해야하는 프로그램 아닌 프로그램이니깐 직접적인 제어가 불가능하지 물론 컴퓨터도 소프트웨어도 발전했고 커널 바이패스도 가능함
하지만 커널 바이패스에는 한계가 있다고 알고 또 그 부분부턴 나도 잘 몰러
dosbox로도 불가능하냐? 책에 "보호모드로 동작하더라도 가상 86 모드의 태스크를 생성하여 그것을 통하여 모든 입출력을 수행하는 방법을 사용" 하면 롬 바이오스 인터럽트를 이용할 수 있다고 나와있는데
그렇군 답변 고마워
도스박스는 에뮬레이터로 도스를 "보호 모드" 위에서 "소프트웨어"로 구현한거야 동작은 네이티브 도스 처럼 돌아갈지 몰라도 내부적으로는 에뮬레이션일 뿐임 인터럽트도 당연히 소프트웨어로 구현되는거지
커널 바이패스도 아닌걸로 알어
아 그렇군
인터럽트를 소프트웨어로 구성할 수 있는건 어떻게든 인터럽트를 걸 수 있는 방법이 있다는거네? 프로그래밍 적으로??
그리고 가상 86모드의 태스크라는게 뭘까....ㅠㅠ
가상 8086 모드가 정확한 말이고 그냥 그것의 작업을 할수있다는걸 번역본이지? 그걸 병신같이 번역해놓은거
그리고 인터럽트가 소프트웨어로 구현 ㅡ> 인터럽트가 아닌데 인터럽트인거 처럼 속임
정확힌 거기서의 인터럽트가 에뮬레이터 안에서의 조작일 뿐임
os를 직접 만드신 분의 책인데 지금은 절판된 "고급 개발자들만이 알고 있던 OS 제작의 원리 그리고 Codes"라는 책이거든 거기 26페이지에 -> 32비트 보호 모드라는 의미는 롬 바이오스 인터럽트를 이용하지 않는다는 것으로 사용되었다. 롬 바이오스를 이용하려면 리얼 모드에서 동작하거나 보호 모드로 동작하더라도 가상 86 모드의 태스크를 생성하여 그것을 통하여 모든 입출력을 수행하는 방법을 써야하는데, 내가 관심을 가지고 있는 부분은 PC용 운영체제이고 도스가 사라져버린 지금 다시 16비트 운영체제를 개발할 이유는 없다고 생각한다. 그래서 의도적으로 롬 바이오스 인터럽트 서비스는 사용하지 않는 것으로 했다. 다만 커널이 부팅될 때 부트 이미지를 읽는 부분과 GUI 화면 모드 전환을 위해 롬 바이오스
서비스를 이용할 뿐이다
라고 나와있어
그 책은 Windows 구조와 원리(정덕영 저)의 옛날 판본이네. Virtual 8086 Mode(가상 8086 모드)가 맞아. 가상 86이라는 건 없음.
그리고 32비트 보호 모드에서는 인터럽트 벡터 테이블(물리 주소 0)을 쓰지 않음. IDTR 레지스터에 의해 지시되는 Interrupt Descriptor Table(IDT)에 인터럽트 핸들러 주소를 보관한다.
아 그렇군 답변 땡큐