추천의 글
지은이의 글
1장 임베디드 운영체제
1.1 운영체제
1.1.1 프로세스 관리
1.1.2 저장장치 관리
1.1.3 네트워킹
1.1.3 사용자 관리
1.1.5 디바이스 드라이버
1.2 임베디드 운영체제
1.3 나빌눅스
1.4 실습 : 임베디드 개발 환경 구성
1.4.1 목표 플랫폼 정하기
1.4.2 리눅스에서 크로스 컴파일 환경 설정
1.4.3 윈도에서 임베디드 개발 환경 구성
1.5 정리
2장 부팅하기
2.1 개발보드 선정하기
2.1.1 EX-X5 보드
2.2 이지보드에 나빌눅스 이미지를 올리는 방법
2.3 에뮬레이터 환경 구성
2.3.1 qemu
2.3.2 u-boot 설치
2.4 실습 : 이지보드에서 hello world를 출력하자
2.4.1 이지부트의 소스코드 재활용
2.4.2 커널 이미지 부팅하기
2.4.3 링커 스크립트 수정
2.5 실습 : 에뮬레이터에서 hello world를 출력하자
2.5.1 UART 주소 수정
2.5.2 에뮬레이터에서 부팅하기
2.5.3 uImage 만들기
2.5.4 램 디스크 이미지 만들기
2.5.5 플래시 이미지 만들어 부팅하기
2.6 실습 : 윈도 환경에서 에뮬레이터 실행시키기
2.6.1 시그윈에서 플래시 이미지 만들기
2.6.2 윈도용 에뮬레이터 실행
2.7 정리
3장 LED 켜기
3.1 부트로더 코드 재활용
3.2 실습 : 1초마다 LED를 켜 보자
3.2.1 이지부트에서 LED 관련 코드 분석
3.2.2 나빌눅스에 LED 점멸 코드 추가
3.3 정리
4장 exception vector table 구성하기
4.1 ARM의 exception과 프로세서 동작 모드
이 책은, 불필요한 설명은 이론서에 맡기고, 담백하게 개발 위주로 설명한다. 시대의 흐름이 유비쿼터스와 모바일 중심으로 흘러가는 시점에, 임베디드 환경에서 동작하는 운영체제를 개발해 보는 것은 충분한 가치와 의미가 있다고 본다.
- 숭실대학교 컴퓨터학부 김명호 교수
이 책은 작고 간단한 임베디드 운영체제를 만들어 보면서 운영체제의 원리를 가르쳐준다. 어려운 전공 서적에나 나올 법한 설명들은 잠시 제쳐두고, 일단 코딩을 하면서 작동 방식을 파악해 보면 이론 역시 쉽게 이해하게 된다. 학교에서 배운 ‘운영체제 이론’만으로는 부족한 학생부터 운영체제가 어떻게 작동하는지 궁금한 사람, 임베디드 펌웨어를 개발해야 하는 개발자에 이르기까지, 이 책을 따라가다 보면 어느덧 작은 운영체제를 완성하게 될 것이다.
이 책에서 다루는 내용
- ARM 아키텍처의 기본
- 부트로더 재활용
- exception 핸들링
- 컨텍스트 스위칭
- 메모리 관리
- 외부 인터럽트 제어
- 시스템 콜
- 태스크 간 통신
- 동기화
- 디바이스 드라이버
- 에뮬레이터용 실습 코드
1~3장은 임베디드 운영체제에 대한 간략한 설명과 EZ-X5 보드의 부팅, LED 점멸 등 간단한 작업을 통해 임베디드 개발에 필요한 기본적인 환경을 구축한다.
4~6장에서는 ARM의 exception, 동작 모드, 레지스터 조작 등을 설명하면서 exception vector table과 Software Interrupt Handler, IRQ 핸들러(타이머 등을 구현한다.
7~10장에서는 메모리와 태스크를 관리하는 관리자 함수를 구현하고, 여기에 태스크 스케줄러를 합하여 멀티태스킹 운영체제로 나아가는 과정을 설명한다.
11~13장에서는 임베디드 기기 외부의 입력을 처리하는 외부 인터럽