임베디드 OS 개발 프로젝트를 읽고 작성하였습니다.
시작하기 전에
임베디드 시스템은 컴퓨터의 일종이므로 하드웨어와 소프트웨어로 이루어진다. 임베디드 시스템의 소프트웨어를 펌웨어라고 따로 부르며, 제한된 환경에서 동작하는 소프트웨어 개발해야 하므로 더 많은 것을 알아야 한다.
OS를 만들기 위해 필요한 기술
- 개발 환경 설정
- 컴파일러에 대한 이해
- 링커에 대한 이해
- 부트로더에 대한 이해
- 레지스터 사용에 대한 이해
- 인터럽트 처리
- 메모리 관리
- 주변장치 제어
- 멀티코어 동기화
- 멀티코어 간 메시지 처리
이 책은 바로 이 기본 기술을 설명한다. 아무것도 없는 상태에서 어떻게 펌웨어를 만드는지 설명하는 책입니다.
⭐ 펌웨어 개발 과정을 점진적으로 이해해가면서 RTOS(Real Time Operating System)을 만드는 것 ⭐
1장 임베디드 운영체제
- 운영체제
- 임베디드 운영체제 : 하드웨어에 내장되어 있는 운영체제
따라서 상위 범주인 운영체제의 일반적인 기능을 모두 구현하지 않는다.
=> 임베디드 시스템에 최적화된 효율적인 운영체제를 만드는 것이 임베디드 운영체제의 목적이기 때문
1.1 운영체제
하드웨어를 관리하고, 응용프로그램과 하드웨어 사이에 인터페이스 역할을 하며 시스템의 동작을 제어하는 시스템 소프트웨어
1. 프로세스 관리
: 운영체제에서 작동하는 응용프로그램을 관리하는 기능, 프로세서(CPU)를 관리하는 것
- 태스크, 프로세스, 스레드 관리
- 스케쥴링
- 동기화
- IPC (Inter Process Communication)
2. 저장장치 관리
: 1차 저장장치인 시스템 메인 메모리와 2차 저장장치인 스토리지 디바이스(SSD 혹은 HDD) 등을 관리하는 기능
- 메모리
- 가상 메모리
- 파일 시스템
3. 네트워킹 관리
- TCP/IP 프로토콜 지원
- 기타 다른 네트워크 프로토콜
4. 사용자 관리
: 운영체제가 한 컴퓨터를 여러 사람이 사용하는 환경을 지원하기 위해 각 계정을 관리하는 기능이 필요
- 일반 사용자 또는 root 사용자 등 계정 관리
- 접근 권한 관리
5. 디바이스 드라이버
: 운영체제 안에서 하드웨어를 추상화하는 계층
- 순차 접근 장치
- 임의 접근 장치
- 네트워크 장치
1.2 임베디드 운영체제와 펌웨어
- 펌웨어 : 임베디드 운영체제를 포함하는 임베디드 시스템용 전체 소프트웨어
1.3 RTOS
실시간 운영체제, 운영체제 응답과 동작이 즉각적이고 실시간이여야 함
임베디드 운영체제는 대부분 RTOS임
1.4 나빌로스
아주 작은 임베디드 운영체제로 이 책에서 구현하고자 하는 목표임
1.5 에뮬레이터 개발 환경
임베디드 소프트웨어를 개발할 때는 대상이 되는 하드웨어 장비가 있어야 함.
보통 개발 보드를 구입해서 해당 개발 보드에 맞춰 펌웨어를 만들면서 연습을 함.
QEMU라는 에뮬레이터를 사용해서 임베디드 개발보드를 가상으로 동작시킬 예정임.
QEMU로 공부한 뒤 실제 보드를 구입하는게 좋다 (비쌈)
1.6 깃허브 리포지토리에서 아카이브 다운받기
'개발 > 임베디드 os 개발 프로젝트' 카테고리의 다른 글
5장 UART (3) | 2023.06.15 |
---|---|
임베디드 OS 개발 프로젝트 부록 A.1장 (0) | 2023.06.04 |
4장 부팅하기 (0) | 2023.06.04 |
3장 일단 시작하기 (0) | 2023.04.17 |
2장 개발 환경 구성하기 (0) | 2023.04.16 |