From cpu to os

TAEWOO HA·2023년 8월 27일
0

리눅스 시스템

부팅 시나리오

작은시스템인 경우 persistent한 스토리지가 없는 경우가 많다.
ex) IoT디바이스 , 센서

  • 처음에는 Boot Flash에 모두 저장이 되어있다.
  • 파워 => 부트 플래시

NAND vs NOR Flash memory

  • NOR은 반도체 셀이 병렬로 배열, 소스라인이 DRAM처럼 주소 하나마다 Random access
  • NAND는 여러 비트에 하나만 존재한다. 여러비트를 한 번에 읽게된다.
  • NOR : 밀도를 높이기 어렵다, 지우는속도가 어마어마하게 느리다. ROM으로 쓰는 이유
  • NAND : 밀도를 높이기 쉽다.

부팅시나리오 - SoC

  • 부팅이되면 부트롬에있는 부트로더가 동작 => 여러 정보를 Mass 스토리지에서 읽어서 램에 적재 , 하드웨어를 초기화하고 커널에게 컨트롤을 넘겨줌. 커널이 초기화를 하게 함

부트로더 오퍼레이션

파워가 켜진 순간

  • cpu 수행 , 처음에 정해져 있는 메모리 위치로 점프
  • 0번지에 가면 부트로더가 있다.
  • 0x0000_AFFF로 점프를 해서 부트로더 수행 => cpu의 ram 메모리 컨트롤러를 초기화함
  • 스택과 힙을 램에 설정 , 디바이스 트리 , 커널을 ram에 복사
  • 부트로더의 마지막 일 : 스타트 커널로 점프

0개의 댓글

관련 채용 정보