임베디드 시스템 정리 - booting system! linux와 embedded system!


컴퓨터의 부팅이 어떤 방식으로 시행되는 지 간단하게 알아보고자 한다. 리눅스기준으로.

1. pc를 키면 ROM의 BIOS가 하드웨어를 초기화하고 boot device를 찾는다. 
* BIOS : 컴퓨터의 입출력을 담당하는 SW로 OS와 주변장치간의 data 흐름을 관리한다.

2. boot device를 찾기 위해선 드라이브로부터 MBR(Master Boot Recoder)을 read 해서 수행해야한다.
왜냐면 bootloader 이 다음과 같이 MBR에 리스트형태로 연결되 있기 때문

MBR - Boot loader(window) - Boot loader(linux)

3. boot loader에서는 HDD 로부터 OS 를 memory로 load해오고, OS가 실행되면서 컴퓨터가 켜진다.




임베디드 시스템도 뭐 거의 유사한데 위 그림과 같이 약간의 차이가 있다. 아래그림은 임베디드 시스템에서의 부팅과정이다.


파워가 켜지면 flash에 저장된 MBR이 시작될거고, Bootloader을 memory에 read / 수행하겠지? 그럼 boot loader에서는 OS를 로드하지, 즉 kernel image 와 ram disk image를 ram에 로드할거야. 그러면 kernel 이 수행되면서 시스템이 돌아갈거야.

여기서 Ram disk가 뭐냐?? 를 정리해보자고.

<출처 : https://namu.wiki/w/%EB%9E%A8%20%EB%94%94%EC%8A%A4%ED%81%AC>


보통 메모리 용량이 남을 때 우리가 램디스크를 할당해서 쓰는데, 이녀석은 남는 램을 기억장치로 돌려 쓰는 것이다. 속도가 삐까뻔쩍한 램님을 디스크로 쓰니, read/write 속도가 상당히 올라가겠지? 따라서 temp data에 대한 처리를 하드가 아닌 이녀석으로 잘 써주면 성능이 향상된다.

램디스크에 우리가 토렌토로 영화를 다운받기도 하는데 SSD수명보호에 좋다고하나, SSD수명은 생각보다길기 떄문에 별 도움이 안될듯함. 그리고 휘발성이라 껐다키면 다 지워져부린다.

임베디드시스템은 램디스크이미지를 굳이 올리는 만큼, 상당히 중요한 역할을 하는 듯 한데, 이걸 잘 모르겠다..ㅠㅠ 포맷, 파일시스템 등을 담당한다고 필기되있는데 이해안감. 아시는분??











댓글

가장 많이 본 글