Part2. 커널 개발시 꼭 알아야할 몇가지
원문 : http://kkamagui.springnote.com/pages/339543
들어가기 전에...
- 이 글은 kkamagui에 의해 작성된 글입니다.
- 마음껏 인용하시거나 사용하셔도 됩니다. 단 출처(http://kkamagui.tistory.com, http://kkamagui.springnote.com)는 밝혀 주십시오.
- 기타 사항은 mint64os at gmail.com 이나 http://kkamagui.tistory.com으로 보내주시면 반영하겠습니다.
- 상세한 내용은 책 "64비트 멀티코어 OS 구조와 원리"를 참고하기 바랍니다.
0.시작하면서...
커널 개발 시에 알아야할 것이 프레임워크를 사용하면 많이 줄어든다고 이야기 했었다. 그렇다면 프레임워크를 사용해서 개발하면 정말 콜백(Callback)만 구현하는 방식으로 커널 개발을 완료할 수 있을까?
글쎄... 이건 한번 생각해볼 문제인 것 같다. 초보라면 콜백과 API를 사용하는 것 만으로 충분하다. 하지만 프레임워크의 API는 시스템 또는 CPU Architecture의 특수한 기능을 수행하는 명령어를 사용하기 쉽도록 Wrapping 해놓은 것이기 때문에 시스템에 대한 어느정도 지식이 있으면 API를 '더욱 잘' 사용할 수 있다. 프레임워크(Framework)의 기능을 수정하거나 새로운 기능을 추가하려면 역시 시스템에 대한 지식이 필요하다.
1.권장 지식
그럼 '꼭' 알아야 하는 것은 과연 무엇일까??
내가 생각하는 꼭 알아야하는 것은 아래와 같다.
1. 기본적인 어셈블리어 명령 몇가지
2. C 언어의 호출 규약(Calling Convention)
3. OS의 역할 및 간단한 동작 원리
4. 인터럽트(Interrupt) 종류 및 처리 방법
적어도 이 정도는 빠삭(??) 하게 알고 있는 편이 커널 제작에 도움이 된다. 위 항목은 시스템 프로그래밍에 기초가 되는 부분이기도 하니, 저 정도의 지식은 갖추고 있는 사람이 꽤 될 것이다.
적어놓고 나니, 아까 몰라도 된다고 했던 어셈블러는 갑자기 1번으로 등극해있고... CPU Architecture도 몰라도 된다면서 Interrupt 처리에 대한 내용이 나와있는건 또... ㅜ_ㅜ
뭐.. 어디까지나 중급자를 위한 코스~!!! 라는 점을 강조하면서 마무리해야 겠다. 초급자는 프레임워크를 돌려 실행하기도 빠듯할 터이니 그냥 읽고만 넘어가자.
그럼 고급자는?? 고급자는 이 글을 보지 않아도 이미 커널을 만들 수 있는 실력을 갖추고 있을 터이니 더더욱 패스...(왜 이걸 보고있을까.. ㅡ_ㅡa...)
여튼 각설하고 중급자로 올라가려면 저정도의 지직은 갖추도록 하자.
이 글은 스프링노트에서 작성되었습니다.
이 글은 스프링노트에서 작성되었습니다.
'OS Kernel > 32bit OS Framework' 카테고리의 다른 글
Part5. Intel Architecture에 대한 소개 (2) | 2007.11.14 |
---|---|
Part4. 어셈블리어(Assembly Language)와 C 그리고 호출 규약(Calling Convention) (0) | 2007.11.14 |
Part3. 인터럽트(Interrupt) (0) | 2007.11.14 |
Part1. 커널 개발이 힘든 이유 (7) | 2007.11.14 |
00 KKAMA OS (0) | 2007.11.14 |