안녕하세요? 커널을 공부하고 싶은 초보 학생입니다.
아임루트 사이트에서 커널 공부에 도움이 되는 책중에 김범준 님의 만들면서 배우는 OS커널의 구조와 원리라는 책이 마음에 들어
구매를 하게 되었습니다. 헌데 첫챕터부터 막히는 부분이 있어 위 책을 이미 보신 분들께 도움을 얻고자 질문드립니다..
질문 1. 어셈블러 질문
부트스트랩 코드를 책에 있는데로 작성해 보았는데 오류가 나면서 컴파일이 되지 않았습니다.
파이썬과 같이 들여쓰기를 잘 해주어야 하는것인가요? 혹시 기본적으로 어셈블리어 코드를 작성할때 지켜야 하는 규칙들이 있으면 알고싶습니다.
질문 2. nasm 관련 질문
책에서 다루는 버전이 0.98.38 이던데요.. 현재는 2.10rc8 버전이 최근자료로 배포되고 있더군요. 우선은 0.98.38 버전을 다운받아서 이용하고 있는데 메이저 버전 등급에서 2나 차이가 나고 엄청나게 오랜시간이 지났는데 현재에 사용되는것이 책에서 다루는것과 많이 다를까봐 걱정이 되는데 실재로는 어떤가요? (공부한 내용이 일부 수포가 될까 우려되어 .. ;)
질문 3. 플로피디스크
제 1장에서 다루는 내용이 부트스트랩을 작성해서 플로피디스켓에 로라이트 한후 그걸로 부팅을 하는것인데요.. 제 작업 환경은 맥os 라이온 상에서 돌고 있는 vmware fusion 입니다. 이러한 환경에서 플로피 이미지를 만들고 가상의 이미지로 부팅하게 할수 있는 방법이 있을까요???? 혹시 플로피디스크가 없는 상태에서 해당 챕터의 내용을 진행해 보신 분 있으시면 답변 부탁드립니다. 궂이 맥이 아니라 윈도에서 해결 방법 등 알고 싶습니다.
댓글 6
-
한승후
2012.01.28 17:23
-
한승후
2012.01.28 17:27
1.
해당 책에서 사용하는 어셈블리어는 Intel-Based Computer에서 주로 사용되는 어셈블리어 문법이에요, nasm도 해당 문법 형식에 맞게 작성된 어셈블리어를 컴파일할때 자주 사용되구요, 기본적인 어셈블리어 코드 작성 규칙은 문법책을 보시는편이 더 좋을거 같구요.
컴파일러가 알려주는 에러 메시지를 참고해서 찾아보시면 좋을거 같습니다.
-
한승후
2012.01.28 17:34
한가지 조언을 드리자면 나중에 리눅스 커널을 공부하실때는 AT&T 어셈블리 문법에 익숙해지셔야 할겁니다.
두 가지 문법 형식이 조금 다를 뿐이니 나중에 공부하셔도 무방하구요
-
pororo
2012.01.29 00:44
소스를 돌려보지는 않았지만..
제가 알기로 nasm에 들여쓰기 규칙은 없습니다.
http://www.hanb.co.kr/book/look.html?isbn=89-7914-325-7
링크에 소스도 제공하고 독자리뷰에 돌려본 분도 있는것 같네요.
오타가 없는지 소스와 비교해 보시고 버전을 바꿔보시면 되지 않을까 싶네요.
virtualbox에서는 boot+kernel 합쳐서 나온 파일을 floppy로 잡고 섹터단위(512)만 맞춰주면 됐던걸로 기억합니다.
소스의 드라이브 번호만 수정하면 hdd나 usb 방식으로도 동작할 겁니다. -
박세한
2012.01.29 19:19
답변 감사합니다!!! 많은 도움이 되었네요^^ -
김용욱
2012.02.01 08:19
꽤 오타가 많았던 걸로 기억하는데, 막히는 것이 있을 때 바로 사람들에게 물어보시는게 좋을 수도 있을 것 같습니다.
그리고 저는 http://www.hanb.co.kr/book/look.html?isbn=978-89-7914-482-6 이 책 쪽이 훨씬 편하게 볼 수 있더군요.
.
3.
플로피 이미지는 책에 나온데로 부트로더 코드 작성하시고 컴파일할 때 파일 포멧 붙이지 말고 raw 형식으로 만드신걸 사용하시면 되요,
nasm을 사용하신다면 -f bin 옵션을 붙이면 raw한 이미지가 나옵니다.