당신이 꿈꾸고 있다고 말하고 싶습니다. 주요 문제는 제한된 RAM입니다.
2004 년 Eric Beiderman 은 2.5MB의 RAM으로 커널 부팅 을했으며 많은 기능이 제거되었습니다.
그러나 그것은 x86에 있었고 ARM에 대해 이야기하고 있습니다. 그래서 나는 '다목적'플랫폼 (가장 간단한 것 중 하나)을 위해 가능한 가장 작은 ARM 커널을 만들려고했습니다. 나는 당신이 찾고있는 옵션 (USB, WiFi, SPI, I2C)을 포함하여 구성 가능한 모든 옵션을 꺼서 얼마나 작은 지 확인했습니다. 지금, 나는 여기 커널 말하는 겁니다, 이것은 포함하지 않는 모든 사용자 공간 구성 요소를.
좋은 소식은 플래시에 잘 맞는다는 것입니다. 결과 zImage는 383204 바이트입니다.
나쁜 소식 : 256kB의 RAM으로 부팅 할 수 없습니다.
$ size obj/vmlinux
text data bss dec hex filename
734580 51360 14944 800884 c3874 obj/vmlinux
.text 세그먼트는 사용 가능한 RAM보다 크므로 커널은 압축을 풀 수 없으며 부팅 할 메모리를 할당 할뿐만 아니라 유용한 것을 실행하지 않아도됩니다.
시스템에서 지원하는 경우 (즉, Flash에서 직접 명령을 페치 할 수있는 경우) 현장에서 실행 지원 (CONFIG_XIP)을 사용하는 것이 한 가지 해결 방법입니다. 그러나 이는 커널이 비 압축 플래시에 적합해야하며 734kB> 700kB 여야한다는 것을 의미합니다. 또한 .data 및 .bss 섹션은 총 66kB이며 다른 모든 것 (즉, 커널에서 동적으로 할당 된 모든 데이터 구조)에 대해서는 190kB를 남겨 둡니다.
그것은 단지 커널입니다. 필요한 드라이버 나 사용자 공간이 없으면
예, 약간 더 많은 RAM이 필요합니다.