BSP (리눅스 커널 BSP 드라이버 개발)이란..

전지현·2025년 2월 27일

리눅스 커널

목록 보기
2/2

https://m.blog.naver.com/crushhh/221597052551

시스템 SW 개발자의 스택: 부트로더 + 디바이스 드라이버

시스템 반도체 개발 과정

1. spec 확정, RTL 설계(verilog), 합성/검증
2. FPGA 검증, Back-end 개발
3. 공정개발, wafer 작업
---- 여기까지 하드웨어 -----
4. Packing, Bring-up, 특성평가
5. BSP 개발, System Integration
---- 위 2가지가 (시스템 반도체)개발자가 하는 일 ----

  • IP 란?
    일종의 라이브러리
    Intellectual Property의 약자로 재사용 가능하도록 기능을 모듈화해 설계한 Core Design - 이 여러 IP 각각을 설계하고 최적화 한다.

각각의 IP의 로직 설계, 그리고 각각의 IP별로 이를 제어하는 디바이스 드라이버가 있다.

  • 보드를 bring-up -> 부트로더에서부터 시작해서 리눅스 커널을 기반으로 리눅스 디바이스 드라이버 사용해 각각 IP를 제어하는 코드를 개발하게 된다.
  • ARM 아키텍쳐도 잘 알아야 한다..

리눅스의 가장 큰 매력은 누구나 리눅스 프로젝트에 참가해 자신이 작성한 코드를 배포할 수 있음.
커널은 물론 리눅스를 구성하는 대부분의 유틸리티 프로그램은 오픈소스라 누구나 소스코드를 볼 수 있음.



  • 운영체제란 무엇인가
    모든 코드를 실제로 실행하는 주체는 운영체제의 코어인 리눅스 커널
    리눅스 표준 함수를 호출하면 시스템 콜을 통해 실제 커널이 동작
    크게 보면 리눅스는 유저 공간/커널 공간이 있음
    리눅스 커널이 제공하고 있는 API를 사용해야 한다.


  • 운영체제의 계층
    하드웨어와 응용 프로그램 사이에 있는 계층
    세부 하드웨어를 관리하는 역할


  • 운영체제란
  1. 리소스 매니저 관점 : 물리적 리소스(CPU, 메모리) / 추상 리소스(물리적 리소스를 객체화) (process, thread, page, file socket, interrupt 등)
  2. 실행 환경 제공 : fork(), open(), close(), brk() 여러 API들을 System Call 인터페이스를 통해 제공한다. / 하드웨어 디바이스를 하나의 파일로 객체화해서 접근할 수 있는 환경을 제공한다.

위 두 가지 관점으로 운영체제를 설명할 수 있다.


김동현, 리눅스 소개와 리눅스 커널 Overview [저자직강 1부-1] 강의 참고

0개의 댓글