[Linux] 임베디드 리눅스 부팅 타임 최적화
·
Embedded Systems/리눅스
임베디드 리눅스 프로젝트를 수행하며 좋은 아티클이 있어 번역해보았다.https://medium.com/@therealcomtom/reducing-linux-booting-time-b5d0a061e05a임베디드 장치들은 어떻게 그렇게 빠르게 부팅되는지 궁금해본 적 있는가?그런 기기들은 자원이 매우 제한적임에도 불구하고, 데스크탑이나 노트북 컴퓨터와 비교했을 때 부팅 시간을 상당히 줄여낸다. 물론, 기본적으로 임베디드 장치들은 단 하나의 작업만 수행하도록 설계되어 있기 때문에, 운영체제가 불필요한 기능이 제거된 축소 버전이며, 거의 항상 리눅스 기반이다. 그리고 그 운영체제는 특정 하드웨어를 대상으로 빌드되기 때문에, 일반적인 리눅스 배포판처럼 다양한 기종을 지원할 필요도 없다. 그렇다면 이런 장치들에서 사..
[논문 리뷰] Enhanced Configurable Snapshot: Snapshot-based Fast Booting on NAND Flash with Lifetime Control
·
Embedded Systems
Abstract연구 배경: 빠른 부팅 방식인 영구 메모리 부팅은 아직 상용화 하기엔 이르다>많은 소비자 전자기기에서 사용자 경험을 개선하기 위한 빠른 boot time은 이제 주된 이슈가 되었다. 영구 메모리를 사용한 즉각적인 on/off는 1초 미만의 부팅을 주장하지만, 기술적 성숙도는 여전히 진행중이고 가격은 현실적인 수준에 도달하지 못하였다. 따라서, NAND flash를 사용한 스냅샷 기반 부팅은 현재 소비자 산업에서 매력적인 솔루션이다. 그러나 스냅샷 기반 부팅 기술은 스냅샷 이미지를 저장할 때 NAND flash 메모리와 같은 기본 스토리지 장치에 추가적인 write를 발생시킨다. 따라서 NAND flash 메모리에 이 기술을 나이브하게 적용하면 NAND flash의 제한된 수명으로 신뢰성 문..
[Linux] BBB Linux boot time 최적화 #0
·
Embedded Systems/리눅스
Udemy의 임베디드 리눅스 강의와, '임베디드 리눅스 프로그래밍 완전정복' 책을 병행해 공부해보며, 단순히 지식을 주입받고있는 것 같다는 느낌을 받았다.더 효율적으로 공부할 수 있는 방법이 뭐가 있을까 생각해보다가, 일단 프로젝트를 해보면서 부딪히는게 좋겠다는 생각이 들어 임베디드 리눅스 관련 프로젝트를 수행해보기로 마음먹었다. 과제는 내가 가장 관심있는 커널 영역의 지식을 활용해야하는, 비글본 블랙의 리눅스 커널 부팅타임을 감소시키는 것이다. 가장 먼저 선행연구 자료를 조사하였다.https://bootlin.com/doc/training/boot-time/boot-time-slides.pdf (이어서 작성 예정)
[Linux] U-boot 가 리눅스 커널을 로드하는 구체적인 과정 정리(1)
·
Embedded Systems/리눅스
리눅스 부팅시, 부트로더는 구체적으로 어떤 절차를 거쳐 메모리에 리눅스 커널을 로드하는 건지 알아보았다. 실행되는 파일로 구분해본 리눅스 부팅과정 flow-chartU-boot가 리눅스의 bootstrap loader에 있는 `head.s` 파일에게 제어를 넘긴다.`head.s`는 압축된 커널 이미지의 압축 해제를 위해, 같은 bootstrap loader에 위치한 `misc.c` 파일을 호출한다.다음으로 제어권은 리눅스 커널에 위치한 또다른 `head.s`파일로 넘어간다.제어권은 `head-common.c` 파일을 거쳐, 리눅스 커널의 `main.c` 파일로 넘어간다.`main.c` 로부터, 리눅스 커널의 첫번째 appliction인 `init`이 실행된다!U-boot(bootloader)가 linux..
[Linux] 임베디드 리눅스 부팅 순서 + 비글본 블랙(BBB) 부팅 순서
·
Embedded Systems/리눅스
https://www.youtube.com/watch?v=DV5S_ZSdK0s&t=359s임베디드 리눅스 부팅 순서를 정리한 훌륭한 강의의 내용을 정리해보았다!1. "대부분의 리눅스 시스템"에서의 부팅 순서1. SoC ROM Bootloader의 역할보드에 파워를 넣으면, 제어가 reset vector라는 곳으로 넘어간다. 이 부분은 제조사가 보드에 사전 프로그래밍한 기능이다.reset vector 로 제어가 넘어간 뒤에는 일반적으로 SoC의 boot ROM 로더가 존재하기 때문에, ROM 부트로더가 executing 을 시작할 것이다.이제, ROM 부트로더의 할일은 기본적인 하드웨어를 설정하고 boot device에서 First stage bootloader을 찾는 것이다. 이 boot device는..