메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

만들면서 배우는 OS 커널의 구조와 원리

만들면서 배우는 OS 커널의 구조와 원리

한빛미디어

집필서

절판

  • 저자 : 김범준
  • 출간 : 2005-03-16
  • 페이지 : 456 쪽
  • ISBN : 8979143257
  • 물류코드 :1325
  • 초급 초중급 중급 중고급 고급
4.5점 (11명)
좋아요 : 22

도대체 커널 책은 왜 그리 어려운가?

이 책의 가장 큰 목적은 방대한 커널을 이해하기 위한 토대를 마련해주는 것이다. 소프트웨어 개발자는 HelloWorld 소스코드를 컴파일하고 실행하는 것으로 시작한다. 그리고 하드웨어 개발자는 8비트 컴퓨터 회로를 제작하는 것으로 시작한다. 이처럼 커널 학습도 작은 커널을 자신이 직접 만들어 보며 배경지식을 습득하는 것으로 시작하여 방대한 OS의 커널에 도전해야 더욱 빠르고 수월하게 목표에 도달할 수 있을 것이다.
직접 만들어보며 OS 커널의 원리를 깨닫는다
HelloWorld 수준의 커널에서 핵심 기능을 단계별로 추가
Real Mode의 부트코드에서 메모리 페이징 기능까지
누구나 어셈블리어로 커널을 확장 개발해보고 시험해볼 수 있게 구성

어셈블리어와 C를 활용한 커널 프로젝트
인터럽트, 태스크 관리, 페이징 기능을 갖춤
[주요내용]
  • 부트스트랩 : 화면에 문자를 출력하는 부트코드 작성
  • 커널 로드 : 리눅스의 LILO와 같은 부트코드 제작
  • Protected Mode 커널 프로그램 작성과 이해 : Real Mode에서 Protected Mode로 전환
  • 인터럽트 예외 : 인터럽트 핸들러가 포함된 커널 제작
  • Task Switching : 스위칭 기능의 이해와 구현(TSS 등)
  • 보호 : 특권레벨에 관한 이해(CPL, DPL, RPL, 콜게이트)
  • 유저모드 Task Switching : 다수의 애플리케이션을 실행하는 커널 제작
  • 페이징 : 메모리 페이징 기능의 구현 및 개념의 이해
  • C 언어와 어셈블리어를 활용한 커널 프로젝트 : C와 어셈블러의 링크 방법 학습과 이를 활용한 통합 커널 제작
"나에게 또 다시 운영체제를 만들고 싶은 욕구를 불러 일으키는 책이다. i386이라는 프로세서에 대한 자세한 설명(정말 자세하다)과 운영체제를 만들고 실습할 수 있도록 설명하는 샘플소스와 시험 방식에 대한 설명은 자신만의 운영체제를 만들고 싶어 하는 사람들에게 어떻게 커널을 만들고 실험할 수 있는지를 안내해 주는 등불과도 같은 역할을 하리라 생각된다."
- 유영창("IT EXPERT 리눅스 디바이스 드라이버" 저자)


김범준 저자

김범준

IT 기술을 이용해 어떤 것을 만들고 누군가에게 무언가를 가르치는 것이 좋아서 꾸준히 관련 활동을 여러 가지 하고 있는 풀스택 웹 개발자입니다. 여러 회사를 거쳐 Sendbird(https://sendbird.com/)라는 글로벌 B2B 회사에서 근무하다가 현재는 미국에서 새로운 도전을 준비하고 있습니다.
 

시작하기 전에 준비해야 할 것들
1. NASM 다운로드
2. NASM 환경 변수 추가
3. Rawrite 툴 다운로드

제1장  부트스트랩
1. OS 없이 프로그램을 실행시킨다
2. boot.txt 프로그램 소스의 해설

제2장  커널을 로드한다.
1. 부트로더와 커널 프로그램 작성
2. 실행
3. 소스 해설

제3장  Protected Mode로 변환
1. 커널 프로그램의 작성
2. 16비트 Real Mode
3. Protected Mode
4. GDT
5. Protected Mode의 주소 지정 방법	
6. 16비트 Real Mode에서 32비트 Protected Mode로 이동

제4장  인터럽트와 예외
1. 실행
2. IDT 만들기
3. PIC의 초기화
4. 타이머 인터럽트 핸들러 구현
5. 키보드 인터럽트 핸들러 구현
6. 예외(Exception)

제5장  Task Switching
1. 실행
2. Task Switching과 TSS
3. CALL 명령에 의한 Task Switching	

제6장  보호
1. CPU의 체크 포인트
2. 특권 레벨
3. 특권 레벨 변동 시의 스택의 변화

제7장  유저 모드 Task Switching
1. 유저 모드와 콜게이트
2. 여러 개의 유저 모드 태스크 실행

제8장  페이징
1. A20 게이트
2. 페이징 구현
3. 페이징 실험

제9장  C 언어로 커널을 만든다.
1. GCC의 다운로드
2. C와 어셈블리의 링크
3. C 언어로 커널 만들기
4. 소스의 해설

안녕하십니까?
이책 정말 잘 보고 있습니다.
원리가 잘 이해가고 설명도 잘 되있더군요 ^^

제 환경은 VMWare Player 최근것 다운받아
사용하고 있습니다.
쳅터 1~2 까지는 무난히 잘 되더군요

그런데 챕터 3 부터
프로텍트 예제부터 이상하게 무한리부팅이 일어납니다....
그래서 혹시나..
VMWare Player 상에서 실행하는것이라...
뭐... 특성타나 라고 생각해서

그래서 가상FDD 사용해서 RaWrite 툴로 이미지 파일을
만들어서 네로의 부팅CD 만들기해서
부팅CD 제작하여 부팅해봐도 역시 무한 리부팅이 일어나더군요.

그래서 인터넷을 찾던도중.....
http://www.cyworld.com/bhythmmaker/2706511
에의 답변글에서....

jmp $+2 부분을 지우라고 하더군요... 이부분에서 문제발생한다고
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

아......
저도 약간씩 전진하면서 실행했는데.
전 db ox66, db 0x67 부근인줄 알고....
여기서 계속 삽질하고 있었습니다....... 거의 하루동안 뻘짓했죠.

뭐.... 이책 3쇄 발행일자를 보니.. 2006년인데...
이때는 작동 되었나봐요....

암튼 도움되길 바랍니다.

nasm 2.07 버전으로 컴파일 했을 경우 어째서인지는 모르겠지만,
vmware에서 돌렸을 때 자꾸 재부팅이 되는 오류가 있었습니다.
그 이하의 버전으로 컴파일 하시면 될 듯 합니다.
이거 질문하려고 들어왔는데 독자서평보고 해결되었네요;
남창우님 말씀 감사합니다. 큰 도움 되었습니다. (_ _

실습 중 문자가 출력되지 않거나 계속 재부팅되는 비정상적인 동작이 일어날 경우 nasm 버전을 바꾸어 보세요. 2.07버전에서는 계속 비정상 동작하여 2.05버전으로 컴파일하였더니 정상적으로 돌아갑니다.

또 VirtualBox에서 img파일을 mount해서 사용하는 경우도 올바르게 동작하지 않았습니다. Virtual Floppy Drive를 이용해 가상 플로피 드라이브를 만든 후 RawWriteWin으로 이미지를 씁니다. 그 다음 이 가상드라이브로 부팅합니다.

리눅스에서도 virtualbox 이용할 때 16비트 부분은 정상적으로 동작하지만 32비트 Protected mode 부분은 실행되지 않습니다.

지레 겁먹지 말고 일단 시작하세요.
OS가 궁금했던 분들, 커널에 대해 공부했지만 너무 어려워 포기하신 분들...이 책 내용은 꽤 괜찮습니다.

레이아웃이나 활자가 맘에 안들어 살까말까 고민했지만 읽어 보면 공부하기는 참 좋습니다.
특히 카와이 히데미씨가 지은 "OS구조와 원리" 를 보고 대실망한 분들이라면 추천해 드립니다.

플로피 디스크가 없어서 따라할 수 없는데 usb를 이용하다던가

그런 방법은 없나요?;

컴퓨터를 공부하는 사람으로서 운영체제는 나에게 막연한 동경의

대상이었다.

"만들면서 배우는 OS 커널의 구조와 원리" 라는 책은 이러한

막연했던 동경을 목표로 바꾸어 준 의미 있는 책이라고 생각

한다.

NASM이라는 어셈블러는 내 주관적인 생각일지 모르겠지만

코드가 명확하고, 상대적으로 가독성이 좋아 흐름파악이 쉬운

언어라고 생각한다.

부팅을 시작으로 16비트 RealMode에서 32비트의 Protected Mode

로 진입하고, TASK 스위칭으로 프로세스를 전환하고,

페이징까지 이론적으로만 알고 있었던 단편적인 지식들을

실제적으로 구현해 보여준다.

운영체제의 굵은 줄기를 한눈에 볼 수 있는 맥을 짚어주는

하지만 친절한 설명으로 독자들을 배려해 주는 정말 좋은 책

이라고 생각하고 있다.

운영체제에 관심이 있었지만 막연하게 생각했던 모든 사람들에게

사막의 한줄기 오아시스 같은 책이 되리라 생각한다.

어셈블리를 제대로 모른다면 어려운 책입니다..



저도 고등학교때 나름대로 배웠다고 생각하고 덜컥 해버렸는데



생각보다 머리가 둔해서 그런지 버겹군요..



한 10번 쳐다보니까.. 조금씩 이해되서.. 더디지만 하고 있습니다..



후훗.. 계속 한번 가보겠습니다 아자 아자 파이팅

모든 프로그램이 일반적으로 Hello World!로 시작하듯 운영체제 제작에 있어서도 Hello World!로 시작하는 길이 가장 빠른 길입니다. 이 책은 ABC123으로 시작하고 We are in kernel program으로 이어갑니다. 사실상 Hello World로 시작하는 것과 같은 단계이지요. (본인은 SooYeon is the best로 시작했습니다.^^)



이 책은 그 이후로 커널로드, 프로텍티드 모드, 인터럽트 예외, 태스크 스위칭, 특권 레벨, 유저 모드 태스크 스위칭, 메모리 페이징으로 이어갑니다. 마지막으로 어셈블리로 만들어 둔 부분을 단계적으로 C언어로 대체합니다.



이 책은 위의 단계에서 끝이나게 됩니다. 하지만 이 책이 운영체제 제작의 초급단계에서 끝난다고 실망하실 필요는 없습니다. 이 책을 다 읽을 때가 되면 고기를 잡는 법을 배우게 되는 것이기 때문입니다.

저같은경우는 리눅스의 이해 를 먼저 읽고 이후

리눅스커널의 이해 를 읽었습니다.

무지 삽질하면서 오래동안 읽었쬬.

lxr.linux.no 홈피에서 소스를 들쳐가면서 몇번을 졸았는지 모르겠네요.

그런데 이 책을 먼저 읽고 공부를 했으면 더 좋았겠따는 생각이 듭니다.

여러분들은 저같은 실수를 되풀이하지 마시길~~

물론 삽질도 많은 추억(?)이 된다는것을 알 고 있기에 그나마 웃을수 있네요~

저는 커널 공부를 맨 처음 시작할때, 어려움을 많이 느꼈습니다.

특히, 인터넷 상에 있는 자료를 통해 공부를 하려고 했을때, 생소한 용어들과, 영어의 미숙으로 정말 고전을 면치 못했습니다.

그럴때, 이책을 보게 되었습니다.

책의 느낌을 말씀드리자면, 초급자를 위한 책입니다.

솔찍히 제가 생각하기에, 커널의 공부는 다른 프로그램 공부보다, 진입장벽이 너무도 큽니다.

그것은 어셈블리어와 C 그리고, 80x86에 관한 전반적 이해가 부족한 상태에서 덤벼들었다가는

보호모드부분에서 좌절하기 쉽상입니다.

이 책은 그런 진입장벽을 쉽게 깨부수는데 많은 도움을 줍니다.

그러나, 어느정도의 지식을 가지신 분들이 보기에는 너무도 쉽고, 새로운것을 배우기에는 부족한감이 많습니다.

아마도 저자님은 이책을 통해서 아주 초보(저같은 경우)들에게 되도록 쉽고 자세하게 설명하려고 노력한 흔적이 여기저기서 보이더군요...

자질구레한 어셈블러까지 일일이 설명을 통해 이해시키려고 합니다.

어떻게 보면 너무 자세하다 싶을때까지요..(저는 이점에서 높은 평점을 주려 합니다.)

시중에 OS 제작원리와 Code라는 책이 있는데욤..

OS 제작원리와 Code는 좀 딱딱하며 너무도 많은 내용을 다룹니다. 어찌보면, 이점이 강점인 반면에 초급자들의 진입장벽을 더욱 높여버립니다.

이에 비해 이책은 그런점에서 많은 점수를 따게 됩니다.

제 생각에는 이책을 통해서 개념을 잡으시고, 80x86책을 통해서 전체적인 맥락을 얻으신후...

OS 제작의 원리와 Code라는 책으로 넘어가시면, 얼마정도의 커널의 대한 지식을 얻으실 거라는 생각을 하게되네욤... 모두들.. 즐공하세욤...^^

아직 다 따라하지는 못했지만 시간이 지나 점점 끝이 되가면서

컴퓨터를 부팅시킬때 부터 궁금했던 것들이 하나하나씩 풀리는

이 기분은 .. 저 같은 경우는 컴퓨터가 부팅이 될때 부터 학교에서

배우는 이론으로는 도저히 실전에는 적용이 안되는 개념 상태였으나

책을 읽고 나서 이론과 실전이 합쳐진 기분입니다 한단계 업그레이드

된 기분이군요..

이 책을 보신다면 꼭 말씀드리고 싶습니다. 꼭 끝까지 보세요..

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
만들면서 배우는 OS 커널의 구조와 원리
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
만들면서 배우는 OS 커널의 구조와 원리
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
만들면서 배우는 OS 커널의 구조와 원리
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실