728x90
반응형
[ 프로젝트 생명주기 ]
이 책은 프로젝트 단계에 따라 네 부분으로 나뉘어 있으며 각 단계가 반드시 순차적인 것은 아니다.
- 1장 ~ 6장 : 보드 브링업 단계. 개발 환경을 설정하고 플랫폼을 만드는 데 필요한 요소들
- 7장 ~ 11장 : 시스템 아키텍처와 설계 선택. 프로그램과 데이터의 저장소, 시스템을 어떻게 초기화할지
- 12장 ~ 13장 : 응용 프로그램 작성. 프로세스와 스레드 모델을 효과적으로 사용하는 방법과 메모리 관리 방법
- 14장 ~ 15장 : 디버깅과 성능 최적화. 응용 프로그램과 커널의 코드를 추적, 프로파일, 디버깅 방법
- 16장 : 실시간 프로그래밍
임베디드 리눅스 4요소
모든 프로젝트는 이 4요소를 구하고 수정하고 배포하면서 시작한다.
- 툴체인 (toolchain) : 타깃 장치를 위한 코드를 만드는 데 필요한 컴파일러와 기타 도구로 구성. 나머지는 모두 툴체인에 의존한다.
- 부트로더 (bootloader) : 보드를 초기화하고 리눅스 커널을 로드하는 프로그램이다.
- 커널 (kernel) : 시스템의 심장부로 시스템 자원을 관리하고 하드웨어와의 접점이다.
- 루트 파일시스템 (root filesystem) : 커널이 초기화를 끝낸 뒤 실행되는 라이브러리와 프로그램을 담고 있다.
그 외
전체 과정을 자동화하는 두 가지 도구
- Buildroot
- Yocto
[오픈 소스]
오픈소스 라이센스는 크게 두 가지로 나뉜다.
- GPL (General Public License) 같은 copyleft 라이선스
- BSD (Berkeley Software Distribution), 아파치 재단 등에서 나온 좀 더 허용적인 라이선스
허용적인 라이센스는 본질적으로 라이센스의 조건을 변경하지 않는 한 소스 코드를 수정하고 사용하는 것을 허용한다.
GPL 라이센스는 소스 코드를 공유해야 하는 조항을 담고 있다. 라이브러리도 GPL 라이센스되어 있다면, 해당 라이브러리와 링크된 모든 프로그램도 GPL이 된다.
하지만 대부분의 라이브러리는 LGPL(Lesser General Public License)로 라이센스 된다.
↓ 오픈 소스 라이센스 ↓
2023.02.24 - [Study/etc] - [etc] GPL, LGPL, BSD (오픈 소스 라이센스)
728x90
반응형