본문 바로가기

Project/OS

OS 개발 11챕터


오늘은 드디어 처음 IA-32e 모드로 들어와서 키보드 디바이스 드라이버를 만들었다. 이번 챕터에서는 느낄 수 있던 점이 몇 가지 있었다. 먼저 키보드와 마우스가 컴퓨터와 어떻게 통신을 하는지와 scan code라는 것에 대해서 확실하게 알았다. 그리고 예전에 Reversing.kr의 Windows Kernel 문제를 풀 때에는 단순히 커널 디버깅만 하면서 엄청 노가다를 해서 풀었었다. 그 때에는 왜 키보드 입력은 0x60 포트로 받아 들이는 지도 몰랐었고 scan code의 존재도 몰랐었다. 그 때는 그냥 아 커널은 이런가 보다 하면서 scan code도 직접 수작업으로 노가다 해서 테이블 만들어 풀었었는데 지금 생각해 보니까 정말 많은 노가다 였던 것 같다.. 머리가 나쁘면 몸이 고생한다는 말이 역시 맞는거 같다. 그래도 이번 챕터에서 얻을 수 있는게 많아서 좋았다. 그리고 이제 문법 오류는 꽤 잘 찾는거 같은데 아직 논리 오류에 약한 것 같다. ==을 =으로 쓰고, &&을 ||으로 쓰고 이런 사소한 거 때문에 노가다를 더 하는거 같다. 

그래도 하나하나 점점 배워가는게 있고 OS가 점점 만들어 지는거를 보니까 정말 신기한 것 같다.

'Project > OS' 카테고리의 다른 글

OS 개발 13챕터  (0) 2016.04.14
OS 개발 12챕터  (0) 2016.04.12
OS 개발 10챕터  (0) 2016.04.10
OS 개발 9챕터  (0) 2016.04.08
OS 개발 8챕터  (0) 2016.04.08