ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS구조와원리] - 카와이 히데미
    Programming/OS : OSASK 2008. 11. 27. 11:46

                                                                          책표지


                                                                요롷게 생긴거 만든답니다

    대충 목차는 이렇다.. 초보가 하기엔 쉬운게 아닐듯.. OTL..
    Chapter 0  개발을 시작하기 전에
    1. 시작하기에 앞서
    2. OS란 무엇일까?
    3. OS 제작법 요모조모
    4. 모르면 모르는 대로
    5. OS를 만들려면 어떻게 해야 되나요?
    6. OS를 만들 때의 난점
    7. 1장 이후를 읽기 전에(중요!)
    8. 이후의 내용 흐름
    
    Chapter 1  PC 구조부터 어셈블리 입문까지
    1. 어쨌든 해 보는 거야!
    2. 결국 무엇을 한 것인가?
    3. 어셈블러 첫 체험
    4. 첫 체험의 어셈블러 다시 써 보기
    
    Chapter 2  어셈블러 학습과 Makefile 입문
    1. 텍스트 에디터 소개
    2. 개발 재개
    3. 부트섹터만 만들도록 정리
    4. 이후를 위한 Makefile 도입
    
    Chapter 3  32비트 모드 돌입과 C언어 도입
    1. IPL 만들기
    2. 에러가 나면 다시 하자
    3. 18섹터까지 읽어보기
    4. 10실린더만큼 읽어보기
    5. OS 본체 작성하기
    6. 부트섹터에서 OS 본체 실행시키기
    7. OS 본체의 동작 확인하기
    8. 32비트 모드 준비
    9. C언어 도입
    10. HLT 해 보기 (hrib00j)
    
    Chapter 4  C언어와 화면 표시의 연습
    1. C언어로 메모리에 쓰기 (harib01a)
    2. 줄무늬 (harib01b)
    3. 포인터에 도전 (harib01c)
    4. 포인터의 응용(1) (harib01d)
    5. 포인터의 응용(2) (harib01e)
    6. 색 번호 설정 (harib01f)
    7. 사각형 그리기 (harib01g)
    8. 완성 (harib01h)
    
    Chapter 5  구조체와 문자 표시와 GDT/IDT 초기화
    1. 부팅 정보 받기 (harib02a)
    2. 구조체 사용하기 (harib02b)
    3. 화살표 표기 사용하기 (harib02c)
    4. 문자 출력하기 (harib02d)
    5. 여러 문자 출력하기 (harib02e)
    6. 문자열 출력하기 (harib02f)
    7. 변수 값 표시하기 (harib02g)
    8. 마우스 커서 그리기 (harib02h)
    9. GDT와 IDT의 초기화 (harib02i)
    
    Chapter 6  분할 컴파일과 인터럽트 처리
    1. 소스 파일 분할 (harib03a)
    2. Makefile 정리 (harib03b)
    3. 헤더 파일 정리 (harib03c)
    4. 어제 남은 설명
    5. PIC 초기화 (harib03d)
    6. 인터럽트 핸들러 작성 (harib03e)
    
    Chapter 7  FIFO와 마우스 제어
    1. 키 코드 취득 (harib04a)
    2. 인터럽트 처리는 재빠르게 (harib04b)
    3. FIFO 버퍼 만들기 (harib04c)
    4. FIFO 버퍼 수정하기 (harib04d)
    5. FIFO 버퍼 정리하기 (harib04e)
    6. 마우스 (harib04f)
    7. 마우스로부터의 데이터 수신 (harib04g)
    
    Chapter 8  마우스 제어와 32비트 모드 전환
    1. 마우스 데이터 분석(1) (harib05a)
    2. 조금 정리 (harib05b)
    3. 마우스 데이터 분석(2) (harib05c)
    4. 움직여라 마우스 (harib05d)
    5. 32비트 모드의 길
    
    Chapter 9  메모리 관리
    1. 소스 정리 (harib06a)
    2. 메모리 용량 체크(1) (harib06b)
    3. 메모리 용량 체크(2) (harib06c)
    4. 메모리 관리에 도전 (harib06d)
    
    Chapter 10  겹치기 처리
    1. 메모리 관리 계속 (harib07a)
    2. 겹치기 처리 (harib07b)
    3. 겹치기 처리의 고속화(1) (harib07c)
    4. 겹치기 처리의 고속화(2) (harib07d)
    	
    Chapter 11  마침내 윈도우
    1. 마우스에 대해 좀 더 알아보기 (harib08a)
    2. 화면 밖의 지원 (harib08b)
    3. shtctl의 지정 생략 (harib08c)
    4. 윈도우 만들기 (harib08d)
    5. 조금 놀아보기 (harib08e)
    6. 고속 카운터 (harib08f)
    7. 깜박거림 해소(1) (harib08g)
    8. 깜박거림 해소(2) (harib08h
    
    Chapter 12  타이머 - 1
    1. 타이머 사용 (harib09a)
    2. 시간 재기 (harib09b)
    3. 타임아웃 기능 (harib09c)
    4. 복수 타이머 (harib09d)
    5. 인터럽트 처리(1) (harib09e)
    6. 인터럽트 처리(2) (harib09f)
    7. 인터럽트 처리(3) (harib09g)
    
    Chapter 13  타이머 - 2
    1. 간단하게 문자열 표시 (harib10a)
    2. FIFO 버퍼 수정(1) (harib10b)
    3. 성능 측정 (harib10c~harib10f)
    4. FIFO 버퍼 수정(2) (harib10g)
    5. 인터럽트 처리(4) (harib10h)
    6. Sentinel을 사용한 프로그램 작성 (harib10i)
    
    Chapter 14  고해상도와 키 입력
    1. 성능 측정 (harib11a~harib11c)
    2. 고해상도(1) (harib11d)
    3. 고해상도(2) (harib11e)
    4. 키 입력(1) (harib11f)
    5. 키 입력(2) (harib11g)
    6. 덤(1) (harib11h)
    7. 덤(2) (harib11i)
    
    Chapter 15  멀티태스크 - 1
    1. 태스크 스위치(1) (harib12a)
    2. 태스크 스위치(2) (harib12b)
    3. 간단한 멀티태스크 해 보기(1) (harib12c)
    4. 간단한 멀티태스크 해 보기(2) (harib12d)
    5. 스피드 업 (harib12e)
    6. 스피드 측정 (harib12f)
    7. 멀티태스크 좀 더 다루기 (harib12g)
    
    Chapter 16  멀티태스크 - 2
    1. 태스크 관리의 자동화 (harib13a)
    2. Sleeve 해 보기 (harib13b)
    3. 윈도우 늘리기 (harib13c)
    4. 우선순위 매기기(1) (harib13d)
    5. 우선순위 매기기(2) (harib13e)
    
    Chapter 17  콘솔
    1. IDLE 태스크 (harib14a)
    2. 콘솔 만들기 (harib14b)
    3. 입력 변환 만들기 (harib14c)
    4. 문자 입력하기 (harib14d)
    5. 기호 입력하기 (harib14e)
    6. 대문자와 소문자 (harib14f)
    7. Lock 키 대응 (harib14g)
    
    Chapter 18  dir 커맨드
    1. 커서 점멸 제어(1) (harib15a)
    2. 커서 점멸 제어(2) (harib15b)
    3. Enter키 대응 (harib15c)
    4. 스크롤 대응 (harib15d)
    5. mem 커맨드 (harib15e)
    6. cls 커맨드 (harib15f)
    7. dir 커맨드 (harib15g)
    
    Chapter 19  애플리케이션
    1. type 커맨드 (harib16a)
    2. type 커맨드 수정 (harib16b)
    3. FAT 대응 (harib16c)
    4. 소스 정리 (harib16d)
    5. 마침내 첫 애플리케이션 실행 (harib16e)
    
    Chapter 20  API
    1. 프로그램 정리 (harib17a)
    2. 한 글자 표시 API(1) (harib17b)
    3. 한 글자 표시 API(2) (harib17c)
    4. 애플리케이션 종료 (harib17d)
    5. OS의 버전이 바뀌어도 변함이 없는 API (harib17e)
    6. 애플리케이션의 이름을 자유롭게 (harib17f)
    7. 레지스터에 주의하기 (harib17g)
    8. 문자열 표시 API (harib17h)
    
    Chapter 21  OS 지키기
    1. 문자열 표시 API의 재도전 (harib18a)
    2. 애플리케이션을 C언어로 만들기 (harib18b)
    3. OS 지키기(1) (harib18c)
    4. OS 지키기(2) (harib18d)
    5. 예외 처리 서포트하기 (harib18e)
    6. OS 지키기(3) (harib18f)
    7. OS 지키기(4) (harib18g)
    
    Chapter 22  C언어로 애플리케이션을 만들자
    1. OS 지키기(5) (harib19a)
    2. 버그 발견 돕기 (harib19b)
    3. 애플리케이션의 강제 종료 (harib19c)
    4. C언어로 문자열 표시(1) (harib19d)
    5. C언어로 문자열 표시(2) (harib19e)
    6. 윈도우 표시하기 (harib19f)
    7. 윈도우에 문자나 사각형 그리기 (harib19g)
    
    Chapter 23  그래픽의 여러 가지
    1. malloc 만들기 (harib20a)
    2. 점 그리기 (harib20b)
    3. 윈도우 리프레시하기 (harib20c)
    4. 선 긋기 (harib20d)
    5. 윈도우 닫기 (harib20e)
    6. 키 입력 API (harib20f)
    7. 키 입력으로 놀기 (harib20g)
    8. 강제 종료로 윈도우 닫기 (harib20h)
    
    Chapter 24  윈도우 조작하기
    1. 윈도우 변환하기(1) (harib21a)
    2. 윈도우 변환하기(2) (harib21b)
    3. 윈도우 이동하기 (harib21c)
    4. 마우스로 윈도우 닫기 (harib21d)
    5. 애플리케이션 윈도우를 입력 모드로 변환하기 (harib21e)
    6. 마우스로 원하는 윈도우 선택하기 (harib21f)
    7. 타이머 API (harib21g)
    8. 타이머 취소 (harib21h)
    
    Chapter 25  콘솔 늘리기
    1. BEEP 사운드 (harib22a)
    2. 색 늘리기(1) (harib22b)
    3. 색 늘리기(2) (harib22c)
    4. 윈도우의 초기 위치 (harib22d)
    5. 콘솔 늘리기(1) (harib22e)
    6. 콘솔 늘리기(2) (harib22f)
    7. 콘솔 늘리기(3) (harib22g)
    8. 콘솔 늘리기(4) (harib22h)
    9. OS답게 만들기(1) (harib22i)
    10. OS답게 만들기(2) (harib22j)
    
    Chapter 26  윈도우 이동의 고속화
    1. 윈도우 이동을 빠르게(1) (harib23a)
    2. 윈도우 이동을 빠르게(2) (harib23b)
    3. 윈도우 이동을 빠르게(3) (harib23c)
    4. 윈도우 이동을 빠르게(4) (harib23d)
    5. OS 기동 시 콘솔을 하나만 표시하기 (harib23e)
    6. 콘솔을 좀 더 많이 만들기 (harib23f)
    7. 콘솔 닫기(1) (harib23g)
    8. 콘솔 닫기(2) (harib23h)
    9. start 커맨드 (harib23i)
    10. ncst 커맨드 (harib23j)
    
    Chapter 27  LDT와 라이브러리
    1. 먼저 버그를 고치자 (harib24a)
    2. 애플리케이션 실행 중에 콘솔 닫기 (harib24b)
    3. 애플리케이션 지키기(1) (harib24c)
    4. 애플리케이션 지키기(2) (harib24d)
    5. 애플리케이션 사이즈 조정하기 (harib24e)
    6. 라이브러리 (harib24f)
    7. make 환경 정리 (harib24g)
    
    Chapter 28  파일과 일본어 표시
    1. alloca(1) (harib21a)
    2. alloca(2) (harib21b)
    3. 파일 API (harib21c)
    4. 커맨드 라인 API (harib21d)
    5. 한글 표시(1) (harib21e)
    6. 한글 표시(2) (harib21f)
    7. 한글 표시(3) (harib21g)
    
    Chapter 29  압축과 간단한 애플리케이션
    1. 버그 수정 (harib26a)
    2. 파일 압축 (harib26b)
    3. 표준 함수 (harib26c)
    4. 비사각형 윈도우 (harib26d)
    5. bball (harib26e)
    6. 인베이더 게임 (harib26f)
    
    Chapter 30  고도의 애플리케이션
    1. 커맨드 라인 계산기 (harib27a)
    2. 텍스트 뷰어 (harib27b)
    3. MML 플레이어 (harib27c)
    4. 화상 뷰어 (harib27d)
    5. IPL 수정 (harib27e)
    6. CD-ROM 기동 (harib27f)
    
    Chapter 31  개발을 마친 후
    1. 앞으로는 혼자서 만들어가기
    2. OS의 크기에 대해
    3. OS를 잘 만드는 요령
    4. 다른 사람에게 사용하게 한다면
    5. CD-ROM 내의 소프트웨어에 대해
    6. 권장하는 오픈 소스
    7. 후서
    8. 작별(졸업식)
    9. 부록
    
    부록: 한글 입력
    
    칼럼
    1. 데이터도 '실행'할 수 있다? 기계어도 '표시'할 수 있다?
    2. 캐스트를 사용하면 p라는 것은 사용하지 않아도 됩니까?
    3. 역시 포인터는 잘 모르겠어~
    4. p[i]라는 것은 뭡니까?
    5. 구조체의 간단한 설명
    6. 10진수에서의 버림은?
    7. 기동 3초 후에 count를 0으로 하는 이유
    8. 이런 작은 개선에 의미가 있는 거야?
    9. return해선 안 돼?
    10. 키보드의 사양?
    11. FAT의 압축
    12. 이것으로 OS 만들기 입문이라니!

    댓글

Designed by Tistory.