Computer Science
탄탄한 기반 실력을 위한
전공과 이론 지식 모음
Today I Learned!
배웠으면 기록을 해야지
TIL 사진
Flutter 사진
Flutter로 모바일까지
거꾸로캠퍼스 코딩랩 Flutter 앱개발 강사
스파르타코딩클럽 즉문즉답 튜터
카카오테크캠퍼스 3기 학습코치
프로필 사진
박성민
임베디드 세계에
발을 들인 박치기 공룡
임베디드 사진
EMBEDDED SYSTEM
임베디드 SW와 HW, 이론부터 실전까지
ALGORITHM
알고리즘 해결 전략 기록
🎓
CAU 소프트웨어학부
텔레칩스 차량용 임베디드 스쿨 3기
애플 개발자 아카데미 1기
깃허브 사진
GitHub
프로젝트 모아보기
Instagram
인스타그램 사진

TIL

[251016] Day 66 - 또다시 시작되어버린 임베디드와의 전쟁

sm_amoled 2025. 10. 18. 15:24

들어가며

컴퓨터시스템설계 과목 들었던거 다시 한 번 복습해볼 때가 된 것 같다. 사실 이게 OS 내용이기도 한데, 다시 한 번 보면서 메모리와 캐시 등의 동작과정을 한 번 살펴볼 필요가 있을 것 같다.

사실 나는 오늘 펌웨어라는 키워드가 어떤 의미인지 처음 알았다. 내 기본기가 부족하다는 것을 여실히 느낀 순간. 임베디드 준비할거면 채용공고들도 좀 살펴보면서 저 단어 하나하나, 기술스택 하나하나가 어떤 의미인지 꿰고 있어야 할텐데. 쌓아놨던 키워드들에 대해서 공부하는 시간도 좀 가져야겠다.

오늘의 키워드

키워드 정리하기

  • 계층 키워드
    • 하드웨어
    • 펌웨어
      • HW에 대한 제어를 OS 위에서 돌리지 않고 application 프로그램으로 제어하는 경우의 프로그램.
      • 펌웨어는 CPU, Memory, I/O 등의 HW의 조작 + Application 단의 기능을 제공하는 하나의 프로그램.
      • HW Dependent 한 프로그램이라고 생각하자!
      • 메모리(ROM)에 그냥 실어서 업데이트가 어렵기 때문에 SW라 보기 어렵 → 그래서 이걸 Firmware라고 부른다.
      • 커피 자판기 → 버튼 조작 + 결제 + 물끓이기 + 프로세서 조작 을 모두 처리할 수 있는 프로그램.
    • 미들웨어
    • 소프트웨어
    • OS
      • 하나의 프로그램(펌웨어)으로 모든 HW를 제어하기 너무 어려움.
      • 운영체제가 스케줄링을 해서 여러 프로그램을 실행할 수 있게 제어함.
      • OS는 HW에 의존적임. (아닌 곳도 있어서, HW 의존인 영역은 모아뒀음.)
      • RTOS는?
      • 커널은?
    • 플랫폼
      • 다양한 형태로 발전시킬 수 있는 틀(체계)
      • HW 플랫폼, SW 플랫폼 단위의 개발 → 개발기간 단축 및 일정 수준의 품질을 보장할 수 있음

프로그램

  • 프로그램
  • 프로세스

HW의 구성

  • 프로세서
  • 메모리
  • I/O
  • 리눅스의 구성을 보면 프로세서를 다루는 모듈, 메모리를 다루는 모듈, I/O를 다루는 모듈로 분리된다.

커널

  • 라이브러리의 코드가 HW에 접근해서 제어하기 위해서는 커널의 system call을 호출해야한다.
  • System call = Software interrupt, Trap, Supervisor Call 이라는 이름으로 부른다.
  • 그러면 커널은 하드웨어를 제어하는 코드를 호출해서 라이브러리가 원하는 동작을 수행한다.

C의 빌드과정

배워가야 할 것

강의 통해서 배우는 것들

  • 펌웨어
  • RTOS
  • Linux

반드시 배워야 할 것

  • C언어
    • C언어 문법 뿐 아니라 C언어로 프로그램 실행하는 전체 흐름을 파악하기
  • ARM 프로세서 아키텍처
    • HW 구조, Exception, ASM 등
  • OS
    • 운영체제의 뼈대를 잡기 (리눅스에 의존하지 않아도 됨)
  • 네트워크
    • 통신이 결국 항상 나오는 키워드.
320x100