Part2. 커널 개발시 꼭 알아야할 몇가지

원문 : http://kkamagui.springnote.com/pages/339543

 

들어가기 전에...

 

0.시작하면서...

 커널 개발 시에 알아야할 것이 프레임워크를 사용하면 많이 줄어든다고 이야기 했었다. 그렇다면 프레임워크를 사용해서 개발하면 정말 콜백(Callback)만 구현하는 방식으로 커널 개발을 완료할 수 있을까?

 글쎄... 이건 한번 생각해볼 문제인 것 같다. 초보라면 콜백과 API를 사용하는 것 만으로 충분하다. 하지만 프레임워크의 API는 시스템 또는 CPU Architecture의 특수한 기능을 수행하는 명령어를 사용하기 쉽도록 Wrapping 해놓은 것이기 때문에 시스템에 대한 어느정도 지식이 있으면 API를 '더욱 잘' 사용할 수 있다. 프레임워크(Framework)의 기능을 수정하거나 새로운 기능을 추가하려면 역시 시스템에 대한 지식이 필요하다.

 

 

1.권장 지식

 그럼 '꼭' 알아야 하는 것은 과연 무엇일까??
 내가 생각하는 꼭 알아야하는 것은 아래와 같다.

 

1. 기본적인 어셈블리어 명령 몇가지
2. C 언어의 호출 규약(Calling Convention)
3. OS의 역할 및 간단한 동작 원리
4. 인터럽트(Interrupt) 종류 및 처리 방법

 

 적어도 이 정도는 빠삭(??) 하게 알고 있는 편이 커널 제작에 도움이 된다. 위 항목은 시스템 프로그래밍에 기초가 되는 부분이기도 하니, 저 정도의 지식은 갖추고 있는 사람이 꽤 될 것이다.

 적어놓고 나니, 아까 몰라도 된다고 했던 어셈블러는 갑자기 1번으로 등극해있고... CPU Architecture도 몰라도 된다면서 Interrupt 처리에 대한 내용이 나와있는건 또... ㅜ_ㅜ

 뭐.. 어디까지나 중급자를 위한 코스~!!! 라는 점을 강조하면서 마무리해야 겠다. 초급자는 프레임워크를 돌려 실행하기도 빠듯할 터이니 그냥 읽고만 넘어가자.
 그럼 고급자는?? 고급자는 이 글을 보지 않아도 이미 커널을 만들 수 있는 실력을 갖추고 있을 터이니 더더욱 패스...(왜 이걸 보고있을까.. ㅡ_ㅡa...)

 여튼 각설하고 중급자로 올라가려면 저정도의 지직은 갖추도록 하자.

 

 

이 글은 스프링노트에서 작성되었습니다.

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts